0

我试图将我的当前位置作为我在谷歌地图中的初始位置颤动..但我总是收到这样的错误消息......initialCameraPosition !=null is not true到目前为止,我已经尝试使用异步等待来获取我的当前位置..这是代码

static LatLng _initialPosition;

@override
  void initState() {
    _getLocation();
    super.initState();
  }
void _getLocation() async {
    LocationData currentLocation;
    currentLocation = await location.getLocation();
    setState(() {
      _initialPosition =
          LatLng(currentLocation.latitude, currentLocation.longitude);
    });
  }

static final CameraPosition initialLocation = CameraPosition(
    target: _initialPosition,
    zoom: 14.4746,
  );

我需要从我的代码中添加什么吗?这是我的小部件

GoogleMap(
            mapType: MapType.normal,
            initialCameraPosition: initialLocation,
            markers:...,
            circles:...,
            onMapCreated: (GoogleMapController controller) {
              _controller = controller;
            },
          ),
4

1 回答 1

1

_getLocation 是一个异步函数。当您启动 GoogleMap 时,它可能没有填充 _initialPosition。

给 _initialPosition 一个起始值,然后在 _initialPosition 更新后更新 GoogleMap。

于 2020-05-12T05:32:05.657 回答