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