我有一个带谷歌地图的Android应用程序。 任何人都能告诉我如何根据用户当前的行走方向旋转地图吗?我已经阅读了很多信息,但仍然有点困惑。
由于
答案 0 :(得分:1)
您可以通过比较两个点来计算方位。你说你的用户会走路,所以不应该太难以让两个点相距一段距离。
如果你有这两点,你可以做一些数学计算
lon1 = degToRad(lon1);
lon2 = degToRad(lon2);
lat1 = degToRad(lat1);
lat2 = degToRad(lat2);
double a = Math.Sin(lon2 - lon1) * Math.Cos(lat2);
double b = Math.Cos(lat1) * Math.Sin(lat2) - Math.Sin(lat1) * Math.Cos(lat2) * Math.Cos(lon2 - lon1);
double c = radToDeg(Math.Atan2(a, b)); // c is our bearing //
这些是我们的转换功能
public static double degToRad(double deg){
return deg * Math.PI / 180.0;
}
public static double radToDeg(double rad){
rad = rad * (180.0 / Math.PI);
if (rad < 0) rad = 360.0 + rad;
return rad;
}
获得方位后,您可以使用CameraUpdateFactory将其传递到地图。
map.moveCamera(CameraUpdateFactory.newCameraPosition(new CameraPosition(LatLng, zoom, tilt, bearing)));