這兩種方法哪一種在確定用戶位置方面更準確?哪個給出了更準確的位置?
// First
[locationManager startUpdatingLocation]
// Second
[locationManager startMonitoringSignificantLocationChanges]
這兩種方法哪一種在確定用戶位置方面更準確?哪個給出了更準確的位置?
// First
[locationManager startUpdatingLocation]
// Second
[locationManager startMonitoringSignificantLocationChanges]
按照Apple CoreLocation documentation,startUpdatingLocation
更準確。從文檔:
您通過調用startUpdatingLocation方法啓動標準位置服務。此服務最適合需要對位置事件傳遞進行更精細控制的應用程序。具體來說,它會考慮desiredAccuracy和distanceFilter屬性中的值以確定何時傳遞新事件。這對導航應用程序或任何需要高精度位置數據或定期更新流的應用程序來說是最合適的。
與startMonitoringSignificantLocationChanges
對比這一點,其中,根據該文件,更粗,不太準確:
對於應用程序不需要定位事件的常規流,你應該考慮使用startMonitoringSignificantLocationChanges方法來開始交付事件。這種方法更適合於大多數只需要初始用戶位置修復的應用程序,只有在用戶移動了很長距離時才需要更新。該接口僅在檢測到設備關聯蜂窩塔的更改時纔會發佈新事件,從而導致更新頻率更低,功耗更高。
您可以使用CLLocationManager
類的desiredAccuracy
屬性來控制位置更新的準確性。
第一個會給你更新在CLLocationManager
類上設置的desiredAccuracy
。另請注意,distanceFilter
也很重要。
如果移動「顯着」距離,意味着非常少的更新,重要的位置更改纔會被觸發。