我是新手,正在尝试将我的位置设置为应用程序在屏幕上绘制的地图的中心点
我正在使用statefulwidget作为我的应用程序的根目录,并添加以下代码:
class MyMap extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return MyMapState();
}
}
class MyMapState extends State<MyMap> {
GoogleMapController googleMapController;
LocationData currentLocation;
LocationData distinationLocation;
Location location;
@override
void initState() {
location = Location();
setInitSourceAndDestination();
super.initState();
}
setInitSourceAndDestination() async {
currentLocation = await location.getLocation();
}
@override
Widget build(BuildContext context) {
CameraPosition initialCameraPosition = CameraPosition(
target: LatLng(currentLocation.latitude, currentLocation.longitude),);
return GoogleMap(
initialCameraPosition: initialCameraPosition,
onMapCreated: (GoogleMapController controller) => googleMapController = controller,
mapType: MapType.normal,
tiltGesturesEnabled: false,
compassEnabled: true,
myLocationEnabled: true,
);
}
}
但是有一个我无法解决的问题:
[setInitSourceAndDestination方法执行完后,如何使应用绘制地图?让我感到困惑的是,这种形式的构建方法的代码将在setInitSourceAndDestination方法完成之前被执行,但是如果我添加setState并更改其中的currentLocation值以重建屏幕,我会注意到setState在构建函数之前执行了,但仍然没有显示我的位置
添加条件以检查状态。如果状态为null,则绘制一个加载指示器。如果不为null,请绘制地图