2010-02-23 28 views
17

Quiero utilizar un MKMapView para mostrar la ubicación actual del usuario usando el pin azul respirable predeterminado y quiero registrar el movimiento del usuario al mismo tiempo. ¿Hay alguna forma de que pueda usar el administrador de GPS (no estoy seguro de si esto es un CLLocationManager) que usa MKMapView cuando lo habilitamos para mostrar la ubicación del usuario?MKMapView y CLLocationManager

Sé que puedo crear mi propio CLLocationManager. Pero esto se siente como agregar una sobrecarga a mi aplicación y me gustaría que el mapa y mi seguimiento permanezcan sincronizados.

ya que exploraron las siguientes ideas sin éxito:

  • Uso del [MKMapView showUserLocation:YES] y añadir MVA en el campo userLocation. Esto no funciona y me pregunto si esto se debe al hecho de que el campo userLocation es de solo lectura.
  • Utilice [MKMapView showUserLocation:YES], cree un MKMapViewDelegate y agregue el seguimiento cuando se solicite la vista de anotación para la ubicación del usuario. Esto no funciona, porque la vista de anotación aparentemente solo se solicita una vez ???
  • Usa un CLLocationManager e intenta agregar el pin azul manualmente. Lamentablemente, no encontré el pin azul en los tipos de pin disponibles, así que traté de crear una anotación de usuario manualmente sin éxito.

¿Alguien tiene alguna idea de cómo puedo lograr esto y aún así beneficiarme del pin azul o es mi única solución para usar un CLLocationManager y crear mi propio pin?

Respuesta

18

CLLocationManager utiliza los mismos datos en todas sus instancias. MKMapView utiliza CLLocationManager's datos internamente. Dicho esto, la solución para hacer lo que quiere hacer es dejar que MKMapView haga lo suyo con respecto al showUserLocation:. Al mismo tiempo, crea una instancia de CLLocationManager y su delegado.

Los mensajes de delegado le darán la ubicación de coordenadas GPS de MKMapView's pin azul. Todo estará sincronizado el uno con el otro.

+1

Gracias Giao. Supongo que "CLLocationManager utiliza los mismos datos en todas sus instancias" es lo que necesitaba escuchar;) – Patrice

+1

+1 por darme warm fuzzies – scord

+3

¿Estás seguro de que CLLocationManager usa los mismos datos en todas sus instancias? Si ese fuera el caso, ¿Apple no lo hubiera convertido en una aplicación única como UIA? –

Cuestiones relacionadas