1

没有对任何定位服务进行编程,所以让我描述一下我的问题,您可以告诉我定位服务是否可以提供帮助。

我有一个移动用户1(long1,lat1,altitude1)想要面对另一个移动用户2(long2,lat2,altitude2)。

高度是可选的。

我想向 user1 提供反馈:左/右 (<- ->),向上/向下倾斜 (^ v) 直到设备顶部指向 user2。

User2 可以在地球上的任何地方。

简而言之:计算 2 个设备之间的直接站点线(您可以看穿地球),然后提供反馈(方向箭头)以将设备放在站点线上。

感谢所有指针。

4

1 回答 1

0

iOS 和 Android 都没有提供这种功能。在大多数用例中,在处理确定我们在世界各地旅行的距离时,这并不是一个真正需要的功能。

但是,您可以使用 3D 数学来计算这个角度和距离。

为此,您首先需要在 3D 空间中的球体上绘制纬度/经度位置,该球体的大小与地球大致相当(或按比例缩放,您有准确的距离比例)。

由于以下原因,您将失去执行此计算的准确性:

  • 因为地球不是一个真正的球体
  • 通过排除高度,您会失去更多的准确性
  • 如果球形大小不等于地球大小(您也可以按比例缩小并推断)
  • 如果您的距离单位对于球体不准确(如果球体被缩放)

然后,一旦您将两个点放在球体上(在 3D 空间中),您就可以使用勾股定理(两次)计算两者之间的最短距离。

下面是两个 SO 链接,它们专门涵盖了执行此操作所需的 3D 数学,因为您已经在 3D 空间中绘制了纬度/经度。

相关链接:

于 2016-12-28T14:45:51.647 回答