【问题标题】:CoreLocation CLLocationManagerDelegate returns cached/delayed locations in mid-flightCoreLocation CLLocationManagerDelegate 在飞行途中返回缓存/延迟的位置
【发布时间】:2019-03-15 04:57:52
【问题描述】:

CLLocationManagerDelegate 方法locationManager:didUpdateLocations: 是否有可能在使用过程中返回缓存值?

或者是否存在 CoreLocation 无法在高速或高海拔地区正常工作的已知错误?

我有飞机跟踪应用程序,一些使用旧 iPad 设备的用户通知我,应用程序显示其位置不正确(大约延迟 3-4 分钟)。我还实现了文本日志,它会立即显示正确的时间戳。

应用程序在获得新位置后立即呈现视图并记录数据,并且不可能排队,所以这应该不是问题。

CoreLocations 可以如此糟糕(CPU 问题?)以如此巨大的延迟启动委托吗?速度可以成为它的原因吗?正如我所说的它用于小型飞机,因此速度比汽车大得多。

编辑:明确地说,我正在检查实际时间戳,并且总是从 didUpdateLocations 获取数组的最后一个元素

【问题讨论】:

  • 下面可能会帮到你。顺便说一句,我不确定stackoverflow.com/questions/34111459/…
  • 您还可以检查 locationManager 实例中的 verticalAccuracy 属性。
  • @AbuUlHassan 谢谢你的链接!问题是:我收到的数据是正确的,并且具有很好的准确性。所以这个决议不会做任何事情。唯一的问题是延迟:我会延迟 3-4 分钟。对于verticalAccuracy:我同时检查vertical Accuracy 和horizo​​ntalAccuracy,如果它们不正确则关闭位置。
  • 那么这可能是由于遵循类似的场景flightradar24.com/how-it-works它首先去卫星......反之亦然。
  • 这与我的问题无关。恐怕我描述得不好。这个问题可以理解吗?

标签: ios ipad core-location cllocationmanager


【解决方案1】:

经过苹果支持(大帮助)的一些挖掘和帮助后,看起来原因是 ios12 的变化。

必须在 ios12 之前为 .otherNavigation 设置 activityType,为 ios12+ 设置 .airborne

以前这个选项似乎没有任何影响...

【讨论】:

    【解决方案2】:

    您无法在没有运营需要的情况下获取实时数据,并且收到实时数据的组织不能合法地公开重新分发这些数据,但 FAA 批准的其他组织除外。运营需求几乎意味着您必须成为航空公司或商业运营商的航班调度员,而不仅仅是对跟踪航班感兴趣。更多细节 检查以下 check here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-17
      • 2019-05-17
      • 2012-08-16
      • 1970-01-01
      • 2011-01-16
      相关资源
      最近更新 更多