Tratando de trazar un mapa usando lat, lng para una base de datos sqlite, pero no puedo obtener mi ubicación antes de que dibuje el mapa. UGGG!

votos
0

Lo que puedo hacer: tomar una base de datos sqlite de 100 puntos lat y lng, y soltar esos pines en un mapa. ¡Se ve muy bien!

Lo que me gustaría hacer es obtener mi ubicación, ANTES de dibujar mi mapa. Pero parece que:

  • (void) locationManager: (CLLocationManager *) gestor didUpdateToLocation: (CLLocation *) newLocation fromLocation: (CLLocation *) oldLocation

SIEMPRE dispara DESPUÉS (vacío) de que se ejecute viewDidLoad. NO IMPORTA donde lo inserte.

Lo que tengo que hacer es tener una pantalla de inicio, DETENGASE allí hasta que obtenga una ubicación, use ese lat y lng para buscar en mi base de datos sqlite ubicaciones a tantas millas de mí.

Aquí mi rastro:

Ingresando - [RootViewController initWithTabBar]

Ingresando - [RootViewController viewDidLoad]

Ingresando - [RootViewController locationManager: didUpdateToLocation: fromLocation:]

Y esto es lo que realmente quiero:

Ingresando - [RootViewController initWithTabBar]

Ingresando - [RootViewController locationManager: didUpdateToLocation: fromLocation:]

Ingresando - [RootViewController viewDidLoad]

Ahora estoy pensando (trabajando con un tabbarcontroller), ¿de alguna manera tengo que empujar todo esto de regreso a mi delegado de aplicaciones? Congelar la aplicación completa hasta que obtenga una ubicación? Esos son mis últimos pensamientos.

gracias por cualquier consejo, pistas, fragmentos ... !!! He estado buscando días, sin suerte en absoluto.

¡¡¡¡Gracias!!!!

Publicado el 25/10/2009 a las 17:06
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
1

Definitivamente no desea "congelar" la aplicación, y definitivamente desea hacer el mínimo trabajo posible en el applicationDidFinishLaunching:método de delegado de su aplicación . Lo que podría recomendar:

  • Tener dos vistas: una es la vista "real" con el mapa, (presumiblemente) controlada por algún controlador de vista. La otra es solo una simple vista de "espera" con un mensaje para el usuario y a UIActivityIndicatorView, o algo así.
  • Cuando la aplicación se inicie, cargue y muestre la vista de espera en la ventana de su aplicación y ejecute el administrador de ubicación para encontrar la ubicación actual del usuario.
  • Cuando tenga suficiente información de ubicación, cargue la vista real, agréguela a la ventana y elimine la vista de espera. (Tal vez con una buena animación de desvanecimiento cruzado o algo así.)

También puede agregar ambas vistas, y simplemente voltear sus hiddenpropiedades en el momento correcto. Pero el objetivo es darle al usuario algo que mirar, sin tratar de luchar contra la naturaleza inherentemente asíncrona de Core Location.

Respondida el 25/10/2009 a las 17:24
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more