我有2个点,静态地图注释和移动的用户设备。对于这两个点,我有Lat和Long,对于移动设备,我有一个过程,给出0度为N,90给E,依此类推。如何判断静止的第二个点是否位于我的位置的N,E,W,S?
答案 0 :(得分:0)
假设您的设备位于(x,y)
点,静态点位于(xs,ys)
。
考虑这两点之间的直角三角形。它具有长度为xs-x
和ys-y
的catheti,因此x轴和斜边之间的角度为arctan((ys-y)/(xs-x))
。请注意,斜边指向(xs,ys)
方向,因此该角度会告诉您该点的方向。
如果角度为0
,则静态点位于东边。
如果角度为pi/2
,则静态点位于北方。
如果角度为pi
,则静态点位于西侧。
如果角度为3*pi/2
,则静态点位于南方。
如果你希望这个角度转换成0度是北,90度是东等,那只是计算(360 + 90 - angle * 180/pi) % 360