我通过测试发现,设置较低的所需精度CLLocationManager
会导致该组件出现错误行为。
这是我进行的 2 个测试:
将所需精度设置为
kCLLocationAccuracyHundredMeters
。然后设备无法如我所愿准确地找到我的位置。以下是我CLLocationManager
的代表的日志:Accuracy is 1500.000000 (desired accuracy is 100.000000) Accuracy is 1500.000000 (desired accuracy is 100.000000)
就是这样。30 秒内发生两个事件,水平精度为 1500。
将期望精度设置为
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 和电话网络进行的)