我正在尝试开发一个使用iPhone的GPS和指南针的应用程序,以便指向某个特定位置的指针(如指南针始终指向北方)。
位置是固定的,无论用户位于何处,我总是需要指针指向该特定位置
我有这个位置的Lat / Long坐标,但不知道如何使用指南针和GPS指向该位置...任何帮助将不胜感激。
Netanel
答案 0 :(得分:1)
假设您拥有当前点和目的地点的纬度和经度。我们称目的地为“Q”,当前点为“P”。
首先,计算P和Q之间的纬度和经度距离(增量):
dx = q.lat - p.lat
dy = q.lon - p.lon
然后计算用户为了从P到达Q而需要行进的角度。这只是基本的三角形几何:
float angleRadians = atan2(dy,dx);
接下来,我们要将该角度与iPhone指南针提供的当前角度进行比较。您希望箭头的标题相对于用户的当前标题,以便应用程序显示“将当前标题向左转10º”而不是说“从北方转56º”。这可以这样完成:
float relativeRadians = angleRadians - currentHeadingRadians
这样的事应该做到!这是一些沉重的伪代码,但我认为这是基本的想法。希望有所帮助!
答案 1 :(得分:0)
上面的答案假设是一个平坦的地球,它可以在很短的距离内正常工作,但对于较长的距离来说可能是不可接受的,就像你想制作一个指向麦加的祈祷指南针一样。