我想知道如何可视化指向某个坐标(纬度,经度)的箭头而我却拿着手机四处走动
我已经计算了所需位置的俯仰和偏航。现在我想知道如何在移动时保持指向这个位置。
认为,
一般来说,你可以用这个公式计算方位角(你当地的子午线和连接你当前位置和从北方测量的目标位置的大圆之间的角度):
double y = Math.sin(long2-long1)*Math.cos(lat2);
double x = Math.cos(lat1)*Math.sin(lat2) - Math.sin(lat1)*Math.cos(lat2)*Math.cos(long2-long1);
double bearing = Math.atan2(y, x);
注意lat1
, long1
, lat2
, long2
和bearing
都以弧度为单位。这个公式假设地球是完全球形的。
bearingTo()
方法
然后你可以使用指南针,在计算出的南北方向线的方位角上画箭头,或者你可以假设北方位于手机屏幕的顶部。如果要显示地图,第二种方法很有意义,因为大多数人习惯将北方放在顶部。