这两种方法中的哪一种在确定用户位置时更准确?
// First
[locationManager startUpdatingLocation]
// Second
[locationManager startMonitoringSignificantLocationChanges]
答案 0 :(得分:1)
根据Apple CoreLocation documentation,startUpdatingLocation
更准确。来自文档:
通过调用startUpdatingLocation方法启动标准位置服务。此服务最适合需要对位置事件传递进行更细粒度控制的应用程序。具体来说,它会考虑desiredAccuracy和distanceFilter属性中的值,以确定何时传递新事件。这最适用于导航应用程序或需要高精度位置数据或常规更新流的任何应用程序。
将此与startMonitoringSignificantLocationChanges
进行对比,根据文档,{{1}}更粗略,更准确:
对于不需要常规位置事件流的应用程序,您应该考虑使用startMonitoringSignificantLocationChanges方法来开始传递事件。此方法更适合大多数仅需要初始用户位置修复的应用程序,并且仅在用户移动较远距离时才需要更新。此接口仅在检测到设备关联的蜂窝塔的更改时才会发送新事件,从而降低更新频率并显着提高功耗。
您可以使用desiredAccuracy
类的CLLocationManager
属性来控制位置更新的准确性。
答案 1 :(得分:0)
第一个会在desiredAccuracy
课程的CLLocationManager
设置中为您提供更新。另请注意,distanceFilter
也很重要。
如果移动“显着”距离,则只会触发重要的位置更改,这意味着更新很少。