如果您查看地圖,精度半徑開始變大,然後變得更小,因爲它變得更加準確。但是,locationManager:didupdateLocations:在更改時不會再次調用。準確度提高時,是否有CoreLocation通知或委託方法?
在那個事件中是否有被調用的東西?
如果您查看地圖,精度半徑開始變大,然後變得更小,因爲它變得更加準確。但是,locationManager:didupdateLocations:在更改時不會再次調用。準確度提高時,是否有CoreLocation通知或委託方法?
在那個事件中是否有被調用的東西?
我認爲didUpdateLocations:
回調實際上會在更新精度時再次調用。根據這一Apple docs on Core Location:
除了位置對象的時間戳,您還可以使用 準確性由對象報告,以確定是否要接受 事件。由於它接收到更準確的數據,位置 服務可能會返回其他事件,準確度值 會相應地反映這些改進。拋棄不太準確的事件意味着您的應用浪費的時間更少,無論如何都無法有效地使用 。
您嘗試過哪些測試來提高準確度?你在iPhone上試過了嗎?你是否正確設置了代理和desiredAccuracy
屬性?
如果您提供以下代碼,您將獲得非常頻繁的位置更新。
self.locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
但據蘋果公司,建議在充電器插入到iOS設備,而位置管理是有效的。這是因爲電池電量快速消耗,同時獲得更多的位置更新。
有精度的其他水平CLLocationManager(CLLocationManager爲kCLLocationAccuracyBestForNavigation,kCLLocationAccuracyBest,kCLLocationAccuracyKilometer,kCLLocationAccuracyHundredMeters等)
有什麼被稱爲該事件?
不可以。您可以繼續獲得相同的回調,但每個位置的準確性(可能)會提高。 「精度提高」沒有回調。
您在回調中收到的CLLocation
包含垂直和水平精度信息。