【问题标题】:CLLocationManager timestamp and coordinatesCLLocationManager 时间戳和坐标
【发布时间】:2023-03-28 02:57:01
【问题描述】:

我在 IOS 中使用核心位置时遇到了一些问题。我无法弄清楚整个事情是如何运作的......请帮忙。

场景:iPhone 开启了定位服务。无线和 3G 未开启。 iPhone 在 GPS 无法到达的建筑物中。

我已经创建了自己的程序,并按照 LocateMe 示例使用了核心定位功能。我知道在调用 startUpdatingLocation 后,didUpdateToLocation 将使用最后收到的 GPS 坐标调用,即使它已过时。我有两个问题:

1) 在 didUpdateToLocation 中,当我打印出 newLocation.timestamp 时,它会显示 iphone 系统时间。我通过更改 iphone 设置中的日期时间来验证这一点。激活该功能后,newLocation.timestamp 将存储 iphone 系统日期时间。为什么 newLocation 无法检索 GPS 位置时存储系统时间?无论如何要确定时间戳的有效性并检查它是来自 GPS 还是系统?

2) 由于我收到的时间戳是系统时间,我如何确定坐标是否是更新的时间戳? LocateMe 的例子足以解决这个问题吗?

谢谢!

【问题讨论】:

    标签: iphone ios core-location cllocationmanager


    【解决方案1】:

    核心位置在从任何来源接收到新位置更新时插入当前系统时间。 iPhone不使用卫星发送的GPS时间。

    通常,您计算“现在”和 CLLocation 时间戳之间的时间差,以了解更新的新鲜程度。 IME,为所有三种位置检测技术发送缓存结果(只要可用)。

    没有直接指示位置更新的来源。但是,有一些提示:高度、垂直精度和速度仅为 GPS 更新设置。 WiFi 更新通常在 60 m 水平精度范围内,而蜂窝塔更新则 > 500 m。

    【讨论】:

      猜你喜欢
      • 2014-07-12
      • 1970-01-01
      • 2011-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多