1

我通过测试发现,设置较低的所需精度CLLocationManager会导致该组件出现错误行为。

这是我进行的 2 个测试:

  1. 将所需精度设置为kCLLocationAccuracyHundredMeters。然后设备无法如我所愿准确地找到我的位置。以下是我CLLocationManager的代表的日志:

    Accuracy is 1500.000000 (desired accuracy is 100.000000)
    Accuracy is 1500.000000 (desired accuracy is 100.000000)
    

    就是这样。30 秒内发生两个事件,水平精度为 1500。

  2. 将期望精度设置为kCLLocationAccuracyBest。然后设备找到我!相同的日志:

    Accuracy is 1500.000000 (desired accuracy is -1.000000)
    ...
    Accuracy is 162.957953 (desired accuracy is -1.000000)
    ...
    Accuracy is 76.356886 (desired accuracy is -1.000000)
    ...
    Accuracy is 47.421634 (desired accuracy is -1.000000)
    

    我在测试 1 的同一地点,但这次,设备能够以我首先想要的精度(即 100.0)找到我的位置。

我已经多次重复这两个测试,结果相同。

我的问题是:

“有人知道为什么当我将精度设置为 时,iPhone 设备不会更努力地找到我的位置kCLLocationAccuracyHundredMeters吗?”</p>

我假设将精度设置为kCLLocationAccuracyBest可能会打开一些不同的硬件传感器,但这不能被视为错误吗?我在互联网上找不到与这个问题相关的东西。

感谢您分享自己的经验。(测试是使用 3GS 设备通过 Wi-Fi 和电话网络进行的)

4

1 回答 1

1

更精细的设置将尝试仅通过 Cell 和 Wi-Fi 三角测量来定位您,这并不准确。kCLLocationAccuracyBest 将打开 GPS 模块并使用它,它应该在几英尺内。这不是错误,您在两种情况下都获得了您要求的准确性。

不同之处在于 GPS 比三角测量更消耗电池,这就是为什么如果您只需要将设备放置在粗糙区域内就不会使用它的原因。

于 2010-10-05T20:05:24.897 回答