2009-12-27 58 views
1

我正在尝试开发一个应用程序,它使用iPhone的GPS和指南针来指向特定位置的某种指针(如指南针始终指向北)。
该位置是固定的,我总是需要指针指向该特定位置,而不管用户位于何处。
我有这个位置的纬度/经度坐标,但不知道如何使用指南针和GPS指向那个位置......任何帮助将不胜感激。iPhone SDK指向特定位置

Netanel

+0

嗨。你能解决这个问题吗?请让我知道你是否是。谢谢。 – Animesh 2010-10-07 21:37:50

回答

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 

这样的事情应该这样做!这是一些沉重的伪代码,但我认为这是基本的想法。希望有所帮助!

+0

虽然这个解决方案没有考虑到地球是地球,但它正是我短距离应用所需要的。好答案。 – Accatyyc 2011-04-26 12:38:29

0

上面的答案假设了一个平坦的地球,它适用于很小的距离,但对于较长的距离可能是不可接受的,就像你想制作一个指向麦加的祈祷指南针一样。

+0

这正是我想要的,但在我的情况下,麦加,但耶路撒冷:)你有任何指针? – lnetanel 2011-03-31 15:35:25