【问题标题】:iPhone SDK Point to a specific locationiPhone SDK 指向特定位置
【发布时间】:2009-12-27 21:39:33
【问题描述】:

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

内塔内尔

【问题讨论】:

  • 嗨。你能解决这个问题吗?如果你是,请告诉我。谢谢。

标签: iphone gps compass-geolocation


【解决方案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

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

【讨论】:

  • 虽然这个解决方案没有考虑到地球是一个球体,但这正是我短距离应用所需要的。很好的答案。
【解决方案2】:

上面的答案假设地球是平坦的,它适用于短距离,但可能不适用于长距离,比如如果你想制作一个指向麦加的祈祷指南针。

【讨论】:

  • 这正是我想要的,但就我而言,去麦加但去耶路撒冷 :) 你有什么建议吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-13
  • 1970-01-01
  • 2011-07-25
  • 1970-01-01
相关资源
最近更新 更多