gpt4 book ai didi

google-maps - Google map 需要花费大量时间才能加载 Flutter 中的当前位置

转载 作者:行者123 更新时间:2023-12-04 12:36:38 26 4
gpt4 key购买 nike

我正在尝试使用当前位置打开谷歌地图。为此,我使用了一个有状态的小部件。但是 map 加载需要很多时间,有时甚至无法加载。这是因为 Future函数(用于获取当前位置)还是我的实现是错误的?我正在使用 google_maps_flutter map 插件。这是我的代码:

@override
Widget build(BuildContext context) {
return Scaffold(
body: Stack(
children: <Widget>[
FutureBuilder(
future: _getCurrentLocation(),
builder: (context, snapshot) {
if (snapshot.hasData) {
print("map loaded");
Placemark placemark = snapshot.data;
var json = placemark.toJson();
selectedLocation = TheLocation.fromJson(json);
_markers.add(
Marker(
markerId: MarkerId('homeMarker'),
position: LatLng(
selectedLocation.latitude, selectedLocation.longitude),
icon: BitmapDescriptor.defaultMarker,
infoWindow: InfoWindow(title: selectedLocation.name),
draggable: false,
),
);
return GoogleMap(
initialCameraPosition: CameraPosition(
target: LatLng(placemark.position.latitude,
placemark.position.longitude),
zoom: 18,
),
markers: _markers,
onMapCreated: onMapCreated,
onCameraMove: ((_position) => _updatePosition(_position)),
);
} else {
print("loading map");
return Container(
child: Center(
child: Text("Loading map. Please Wait ... ..."),
),
);
}
},
),
],
),
);
}

使用 geolocator获取当前位置的插件:
Future<Placemark> _getCurrentLocation() async {
List<Placemark> placeMarks;
await geolocator
.getCurrentPosition(desiredAccuracy: LocationAccuracy.best)
.then((Position position) async {
placeMarks = await Geolocator().placemarkFromCoordinates(
position.latitude,
position.longitude,
localeIdentifier: "en_US",
);
}).catchError((e) {
print("Location error $e");
});
return placeMarks[0];
}
onMapCreated功能 :
void onMapCreated(GoogleMapController controller) {
setState(() {
googleMapController = controller;
});
}

最佳答案

似乎这是一个已知问题。检查这个 Git Issue link .正如最后一条评论中所建议的,作为一种解决方法,您可以创建一个 FutureBuilder以模拟延迟作为 future ,然后使用进度指示器来显示加载。

关于google-maps - Google map 需要花费大量时间才能加载 Flutter 中的当前位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60910887/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com