CLLocationManager didUpdateToLocation по сравнению с didUpdateUserLocation MKMapView - PullRequest
5 голосов
/ 10 июня 2011

Я получаю местоположение пользователя как из CLLocationManager, так и из MKMapView. Какой из них я должен использовать, чтобы установить координату центра карты?

Кроме того, два метода в симуляторе отличаются по своим ответам. CLLocationManager возвращает правильное местоположение, тогда как didUpdateUserLocation MKMapview возвращает офис Apple в Купертино.

Ответы [ 3 ]

2 голосов
/ 08 мая 2012

Я бы использовал местоположение MapKit при работе с картой.

Подпрограммы карты предназначены для использования при работе с картой;в то время как подпрограммы CoreLocation предназначены для использования независимо от карты.MapKit будет сообщать об изменениях местоположения, которые влияют на карту (didUpdateUserLocation вызывается, если showUserLocation имеет значение YES или режим отслеживания - MKUserTrackingModeFollowWithHeading).Службы CoreLocation способны сообщать об изменениях, когда приложение находится в фоновом режиме.

Суть в том, что вы должны использовать опцию, которая подходит для того, что вы делаете.В моем приложении я использую оба сервиса: MapKit, когда карта отображается, и CoreLocation, когда карта не отображается или приложение является фоновым.

Анекдотически, начиная с выпуска iOS 5, симулятор поддерживает рядвариантов расположения;посмотрите в меню «Отладка» для приложения-симулятора, я также описал некоторые из этих опций на https://stackoverflow.com/a/8175468/338468.

0 голосов
/ 09 июля 2016

Если вы имеете дело с местоположениями в материковом Китае, я бы порекомендовал местоположение MapKit.Он обрабатывает вычисление смещения GPS (которое добавлено законом по соображениям национальной безопасности) для вас.Подробнее об этой проблеме на https://en.wikipedia.org/wiki/Restrictions_on_geographic_data_in_China

0 голосов
/ 10 июня 2011

Я использую CLLocationManager, именно из-за центрирования на 1 бесконечном цикле Dr. Он также дает вам больше возможностей, вы можете использовать startMonitoringSignificantChanges ... и т.д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...