Согласно документации Apple CoreLocation , startUpdatingLocation
является более точным. Из документации:
Стандартные службы определения местоположения запускаются путем вызова метода startUpdatingLocation. Этот сервис наиболее подходит для приложений, которым требуется более детальный контроль над доставкой событий местоположения. В частности, он учитывает значения в свойствах requiredAccuracy и distanceFilter, чтобы определить, когда следует доставлять новые события. Это наиболее подходит для навигационных приложений или любых приложений, где требуются высокоточные данные о местоположении или регулярный поток обновлений.
Сравните это с startMonitoringSignificantLocationChanges
, что, согласно документации, является более грубым и менее точным:
Для приложений, которым не требуется регулярный поток событий местоположения, вам следует рассмотреть возможность использования метода startMonitoringSignificantLocationChanges, чтобы вместо этого начать доставку событий. Этот метод больше подходит для большинства приложений, которые просто нуждаются в первоначальном исправлении местоположения пользователя и требуют обновлений только тогда, когда пользователь перемещается на значительное расстояние. Этот интерфейс доставляет новые события только тогда, когда он обнаруживает изменения в связанных вышках сотовой связи устройства, что приводит к менее частым обновлениям и значительно лучшему энергопотреблению.
Вы можете контролировать точность обновлений местоположения, используя свойство desiredAccuracy
класса CLLocationManager
.