Google maps api 3 如何在Flatter中使用map_视图查找用户的当前位置?
我想将initialCameraPosition设置为指向用户的当前位置,而不是硬编码经度和纬度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
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);
}
在上面的代码中,我们得到了用户的缩放级别,所以每次移动都不会改变用户当前的缩放级别