我希望将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)]
); 发布于 2018-04-26 15:37:45
首先,你可以对你想要显示的默认位置进行硬编码:
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));在用户位置更新时,方法名为lastWhere的方法被调用一次。如果您想要跟踪用户的移动,可以使用listen。
在此之后,您只需要定义一个函数,将摄像头位置更改为用户当前位置:
onUserLocationUpdated(position,MapView mapview)async {
double zoomLevel = await mapview.zoomLevel;
mapview.setCameraPosition(position.latitude, position.longitude, zoomLevel);
}在上面的代码中,我们得到了用户的缩放级别,所以每次移动都不会改变用户的当前缩放级别。
https://stackoverflow.com/questions/49441918
复制相似问题