Google maps api 3 如何在Flatter中使用map_视图查找用户的当前位置?

Google maps api 3 如何在Flatter中使用map_视图查找用户的当前位置?,google-maps-api-3,flutter,Google Maps Api 3,Flutter,我想将initialCameraPosition设置为指向用户的当前位置,而不是硬编码经度和纬度 showMap() { mapView.show( new MapOptions( mapViewType: MapViewType.normal, showUserLocation: true, initialCameraPosition: new CameraPosition( ne

我想将initialCameraPosition设置为指向用户的当前位置,而不是硬编码经度和纬度

  showMap() {
     mapView.show(
      new MapOptions(
          mapViewType: MapViewType.normal,
          showUserLocation: true,
          initialCameraPosition: new CameraPosition(
              new Location(23.2599, 77.4126), 10.0),
          title: "Parking Spaces"),
      toolbarActions: [new ToolbarAction("Close", 1)]
      ); 

首先,您可以硬编码要显示的默认位置:

  MapView  mapView = new MapView();
  mapView.show(
      new MapOptions(
        title: 'map title',
        showUserLocation: true,
        initialCameraPosition: CameraPosition(new Location(35.7050274, 51.364935),11.92)
      )
    );
然后将函数绑定到地图视图,以便在gps查找用户位置时更新相机位置:

mapView.onLocationUpdated.lastWhere((position)=>this.onUserLocationUpdated(position,mapView));
方法名
last,其中
在用户位置更新时被调用一次。如果要跟踪用户移动,可以使用
listen

之后,您只需定义一个函数,将相机位置更改为用户当前位置:

onUserLocationUpdated(position,MapView mapview)async {
  double zoomLevel = await mapview.zoomLevel;
  mapview.setCameraPosition(position.latitude, position.longitude, zoomLevel);
}
在上面的代码中,我们得到了用户的缩放级别,所以每次移动都不会改变用户当前的缩放级别