无法在扑扑的Google地图上设置我的位置

问题描述 投票:0回答:1

我是新手,正在尝试将我的位置设置为应用程序在屏幕上绘制的地图的中心点

我正在使用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,
    );
  }
}

但是有一个我无法解决的问题:

  • 在设置currentLocation之前在屏幕上绘制地图我尝试了setState,但问题尚未解决。

[setInitSourceAndDestination方法执行完后,如何使应用绘制地图?让我感到困惑的是,这种形式的构建方法的代码将在setInitSourceAndDestination方法完成之前被执行,但是如果我添加setState并更改其中的currentLocation值以重建屏幕,我会注意到setState在构建函数之前执行了,但仍然没有显示我的位置

flutter maps
1个回答
0
投票

添加条件以检查状态。如果状态为null,则绘制一个加载指示器。如果不为null,请绘制地图

© www.soinside.com 2019 - 2024. All rights reserved.