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