immobili mkmapview.userslocation impostata su 0,0 dopo aver consentito all'applicazione di utilizzare posizione corrente

StackOverflow https://stackoverflow.com/questions/1905286

Domanda

La prima volta che l'utente tenta di utilizzare la posizione corrente della proprietà map.userslocation ha coordinate di 0,0. La prossima volta che passo per caricare la vista contenente la mappa della posizione degli utenti è sempre trovato.

sto impostando la proprietà map.showsUserLocation su YES sul viewDidLoad e quando i carichi della mappa sullo schermo il punto blu è lì, ma quando cerco di ottenere le coordinate con map.userlocation.coorinate loro sono 0,0.

Il flusso del programma va - (void) viewDidLoad:  1) impostare showUserLocation YES  2) Impostare un timer per chiamare un metodo 6 secondi dopo che afferra la posizione degli utenti dalla proprietà map.userLocation

- (void) getUsersLocation  1) stampare la posizione degli utenti

Questo processo funziona alla grande dopo la prima volta che carico della vista, ma la prima volta la vista è laoded e l'utente dispone di concedere il permesso di utilizzare la loro posizione le coordinate tornano 0,0

Qualcuno ha idea del perché questo accade e come posso lavorare intorno ad esso?

Grazie!

È stato utile?

Soluzione

piuttosto che arbitrariamente attendere sei secondi, si dovrebbe essere implementando CLLocationManagerDelegate e notando quando

locationManager:didUpdateToLocation:fromLocation:

è chiamato a dare il primo aggiornamento posizione, che potrebbe richiedere più o meno tempo di quello.

Altri suggerimenti

David è giusto, ma ho notato che io a volte ottenere che metodo chiamato con una posizione di 0,0. Si dovrebbe ignorare tali chiamate, a meno che non pensi che la tua applicazione può essere utilizzato nel mare al largo della costa occidentale dell'Africa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top