【发布时间】:2019-11-13 01:26:09
【问题描述】:
我正在尝试做的事情: 使用 google map api 获取数据,然后将数据传递到下一个屏幕。
出了什么问题:它在 iOS 模拟器上运行良好,它设法进入下一个屏幕并用数据填充地图(打印位置、“yay”、http 状态代码和“循环”)。但在 android 模拟器上,它只打印位置和“耶”,并挂在那里,不导航到下一个屏幕。
出了什么问题? :/ 请帮帮我..
class _LoadingScreenState extends State<LoadingScreen> {
void getUserLocation() async {
try {
Position position = await Geolocator()
.getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
print(position);
Set<Marker> markers = {};
String url =
'https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=${position.latitude},${position.longitude}&maxprice=4&radius=1500&type=restaurant&keyword=cruise&key=AIzaSyDVzxxxxxxxxxxxxxxxxxxx';
print('yay');
http.Response data = await http.get(url);
print(data.statusCode);
var resultList = jsonDecode(data.body)['results'];
for (Map i in resultList) {
var coords = (i['geometry']['location']);
print('loopyay');
markers.add(Marker(
markerId: MarkerId(i['name']),
position: LatLng(coords['lat'], coords['lng'])));
}
Navigator.push(context, MaterialPageRoute(builder: (context) {
return UserLocationScreen(
userLocation: position,
markers: markers,
);
}));
} catch (e) {
print(e);
}
}
我的配置
- 我在我的谷歌控制台上激活了
androidmapsdk - 在我的 androidmanifest 中,
< meta-data android:name="com.google.android.geo.API_KEY"
android:value="AIzaSyDVzbjC2hViOnxxxxxxxxxx"/>
- 在我的 build.gradle 中
dependencies {
classpath 'com.android.tools.build:gradle:3.3.1'
classpath 'com.google.gms:google-services:4.2.0'
}
- 在我的 gradle.properties 中
android.enableJetifier=true
android.useAndroidX=true
org.gradle.jvmargs=-Xmx1536M
【问题讨论】:
-
您的 androidManfifest.xml 文件是否包含
<uses-permission android:name="android.permission.INTERNET"/>? -
您使用的是 Android 9 派吗?
-
您为什么使用网络 API 而不是 Google Maps Android SDK?
-
@Muldec 是的