我已經通過測試發現,設置爲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