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