Вопрос

Я хочу использовать MKMapView для отображения текущего местоположения пользователя с использованием синего штифта по умолчанию, и я хочу одновременно записывать движение пользователя.Есть ли способ использовать менеджер GPS (не уверен, что это CLLocationManager), который MKMapView использует, когда мы включили его, чтобы показывать местоположение пользователя?

Я знаю, что могу создать свой собственный CLLocationManager.Но это похоже на добавление дополнительных ресурсов в мое приложение, и мне бы хотелось, чтобы карта и мое отслеживание оставались синхронизированными.

Я уже безуспешно исследовал следующие идеи:

  • Использовать [MKMapView showUserLocation:YES] и добавьте KVO на userLocation поле.Это не работает, и мне интересно, связано ли это с тем, что userLocation поле доступно только для чтения.
  • Использовать [MKMapView showUserLocation:YES], создать MKMapViewDelegate и добавьте отслеживание, когда запрашивается представление аннотаций для местоположения пользователя.Это не работает, потому что просмотр аннотации видимо запрашивается только один раз???
  • Использовать CLLocationManager и попробуйте добавить синюю булавку вручную.К сожалению, я не нашел синюю булавку среди доступных типов булавок, поэтому безуспешно пытался создать пользовательскую аннотацию вручную.

Есть ли у кого-нибудь идеи, как я могу добиться этого и при этом получить выгоду от синей булавки, или это мое единственное решение - использовать CLLocationManager и создать свой собственный пин-код?

Это было полезно?

Решение

CLLocationManager использует одни и те же данные во всех своих экземплярах. MKMapView использует CLLocationManager's данные внутри.Тем не менее, решение делать то, что вы хотите, - это позволить MKMapView делать свое дело в отношении showUserLocation:.В то же время создайте экземпляр CLLocationManager и его представитель.

Сообщения делегатов дадут вам GPS-координаты местоположения MKMapView's синяя булавка.Все будет синхронизировано друг с другом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top