如何在 google 地图上进行地图旋转?
How do I get map rotation on google maps flutter?
我正在尝试获取地图旋转(方位角),但无法使用地图控制器找到它。
当前使用 google_maps_flutter:^1.1.1 和 flutter:1.22
发现:CameraPosition 有方位角:
controller.animateCamera(
CameraUpdate.newCameraPosition(
CameraPosition(
bearing: location.heading.value,
target: LatLng(location.latitude ?? 51.4,
location.longitude ?? 4.4),
zoom: 18),
),
您可以使用这个 geolocator 插件来做到这一点,然后您可以通过以下方式获得您的位置:
Position position = await Geolocator.getCurrentPosition();
然后更新地图:
controller.animateCamera(
CameraUpdate.newCameraPosition(
CameraPosition(
target: LatLng(position.latitude, position.longitude),
zoom: 16,
bearing: position.heading,
),
),
),
实际上我找到了我要找的东西。 GoogleMap
构造函数上有 onCameMove
回调,它接收当前 CameraPosition
作为参数。它具有方位、目标、倾斜和缩放字段。
这样我就可以随时了解地图方位的变化。
PS:该函数在用户移动地图时重复执行,不应执行昂贵的操作。
您可以在 Google 地图库的 CameraPosition
函数的属性中找到它。
_googleMapController!.animateCamera(CameraUpdate.newCameraPosition(CameraPosition(
target: LatLng(cLoc.latitude!, cLoc.longitude!),
bearing: cLoc.heading!,
tilt: 30,
zoom: 18,
)))
您也可以从 location.onLocationChanged.listen((LocationData cLoc) {}
调用它
就是这样。
您可以通过以下步骤获取实时更新的方位:
使用以下方式监听位置变化:
double mainBearing = 15.0;
location.onLocationChanged.listen((locationLib.LocationData cLoc) {
//You can get the bearing of current location by using
mainBearing = cLoc.heading
//Or you can do newCameraPoistion here with new bearing
_controller.animateCamera(
CameraUpdate.newCameraPosition(
CameraPosition(
target: LatLng(cLoc.latitude, cLoc.longitude),
zoom: zoomCamera,
bearing: cLoc.heading,
),
),
);
}
我正在尝试获取地图旋转(方位角),但无法使用地图控制器找到它。
当前使用 google_maps_flutter:^1.1.1 和 flutter:1.22
发现:CameraPosition 有方位角:
controller.animateCamera(
CameraUpdate.newCameraPosition(
CameraPosition(
bearing: location.heading.value,
target: LatLng(location.latitude ?? 51.4,
location.longitude ?? 4.4),
zoom: 18),
),
您可以使用这个 geolocator 插件来做到这一点,然后您可以通过以下方式获得您的位置:
Position position = await Geolocator.getCurrentPosition();
然后更新地图:
controller.animateCamera(
CameraUpdate.newCameraPosition(
CameraPosition(
target: LatLng(position.latitude, position.longitude),
zoom: 16,
bearing: position.heading,
),
),
),
实际上我找到了我要找的东西。 GoogleMap
构造函数上有 onCameMove
回调,它接收当前 CameraPosition
作为参数。它具有方位、目标、倾斜和缩放字段。
这样我就可以随时了解地图方位的变化。
PS:该函数在用户移动地图时重复执行,不应执行昂贵的操作。
您可以在 Google 地图库的 CameraPosition
函数的属性中找到它。
_googleMapController!.animateCamera(CameraUpdate.newCameraPosition(CameraPosition(
target: LatLng(cLoc.latitude!, cLoc.longitude!),
bearing: cLoc.heading!,
tilt: 30,
zoom: 18,
)))
您也可以从 location.onLocationChanged.listen((LocationData cLoc) {}
就是这样。
您可以通过以下步骤获取实时更新的方位:
使用以下方式监听位置变化:
double mainBearing = 15.0;
location.onLocationChanged.listen((locationLib.LocationData cLoc) {
//You can get the bearing of current location by using
mainBearing = cLoc.heading
//Or you can do newCameraPoistion here with new bearing
_controller.animateCamera(
CameraUpdate.newCameraPosition(
CameraPosition(
target: LatLng(cLoc.latitude, cLoc.longitude),
zoom: zoomCamera,
bearing: cLoc.heading,
),
),
);
}