找出一个点是否在CLLocationCourse的过程中

时间:2012-07-17 12:06:50

标签: objective-c ios xcode navigation coordinates

我有2个点,静态地图注释和移动的用户设备。对于这两个点,我有Lat和Long,对于移动设备,我有一个过程,给出0度为N,90给E,依此类推。如何判断静止的第二个点是否位于我的位置的N,E,W,S?

1 个答案:

答案 0 :(得分:0)

假设您的设备位于(x,y)点,静态点位于(xs,ys)

考虑这两点之间的直角三角形。它具有长度为xs-xys-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

的问题