【问题标题】:How to calculate direct line of site with ios Location Services?如何使用 ios Location Services 计算站点的直接线路?
【发布时间】:2013-05-23 09:47:45
【问题描述】:

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

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

高度是可选的。

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

User2 可以在全球任何地方。

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

感谢所有指针。

【问题讨论】:

  • 那是视线吗?还是网站?
  • 任你选择 ;-) Sight 是正确的拼写
  • 这篇文章展示了如何获得方向。(stackoverflow.com/questions/8502795/…) 有人知道如何获得角度吗?

标签: ios objective-c geolocation location core-location


【解决方案1】:

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

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

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

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

  • 因为地球不是一个真正的球体
  • 排除高度会降低准确性
  • 如果球形大小不等于地球大小(您也可以按比例缩小并外推)
  • 如果您的距离单位对于球体不准确(如果球体已缩放)

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

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

相关链接:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    • 2017-11-17
    • 2013-05-31
    • 1970-01-01
    • 2014-05-05
    相关资源
    最近更新 更多