MKMapView и CLLocationManager - PullRequest
       20

MKMapView и CLLocationManager

17 голосов
/ 23 февраля 2010

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

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

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

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

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

1 Ответ

18 голосов
/ 23 февраля 2010

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

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

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