如何获得用户当前位置作为扑谷歌地图的初始位置

时间:2020-05-12 01:49:47

标签: flutter asynchronous async-await google-maps-flutter

我正在尝试将自己的当前位置作为我在Google Map扑动中的初始位置。.但是我总是会收到这样的错误消息:initialCameraPosition !=null is not true到目前为止,我一直在尝试使用async等待来获取我的当前位置位置..这是代码

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;
            },
          ),

1 个答案:

答案 0 :(得分:1)

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

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