我已经通过测试发现,设置为CLLocationManager
的低期望精度会导致此组件的错误行为。为什么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)。
我已经多次重复这两个测试很多次,为同样的结果。
我的问题是:
“有谁知道为什么当我设置的kCLLocationAccuracyHundredMeters
精度的iPhone设备不加倍努力找到我的位置?”
我假设的准确性设置为kCLLocationAccuracyBest
可能会打开一些不同的硬件传感器,但不能认为这是一个错误?相对于这个问题,我找不到网上的东西。
感谢您分享您的经验。 (测试是通过Wi-Fi和电话网络通过3GS设备进行的)
嗨,谢谢你的回答。它可能不是一个错误,因为你在最后得到了一个值,但是示例代码“LocateMe”被窃听了,因为你可以看到类似这样的内容:“if(location.accuracy
2010-10-08 10:49:25
您正在请求特定的准确性。根据硬件和当前位置的不同,您可能会也可能不会得到它,因此您需要决定在这种情况下应采取的措施。例如,你可能在密集的城市中使用细胞三角测量的准确性比在中间不到的地方更好。 LocateMe把它扔掉了,你可以使用它(例如用一个更大的位置圆圈),或者稍后决定是否尝试一次更精确的读数,这需要权衡。 – 2010-10-08 19:35:40