mkmapview.userslocation propriété est définie sur 0,0 après avoir laissé application d'utiliser l'emplacement actuel

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

Question

La première fois que l'utilisateur essaie d'utiliser l'emplacement actuel de la propriété map.userslocation a des coordonnées de 0,0. La prochaine fois que je charge la vue contenant la carte l'emplacement des utilisateurs se trouve toujours.

Je suis en train de la propriété map.showsUserLocation OUI sur viewDidLoad et lorsque les charges de carte sur l'écran le point bleu est là, mais lorsque je tente d'obtenir les coordonnées avec map.userlocation.coorinate ils sont 0,0.

Le déroulement du programme passe - (void) viewDidLoad:  1) fixé à showUserLocation OUI  2) Régler une minuterie pour appeler une méthode 6 secondes plus tard, qui saisit l'emplacement des utilisateurs de la propriété map.userLocation

- (void) getUsersLocation  1) imprimer l'emplacement des utilisateurs

Ce processus fonctionne très bien après la première fois que je charge la vue, mais la première fois la vue est laoded et l'utilisateur doit accorder la permission d'utiliser leur emplacement les coordonnées reviennent 0,0

Quelqu'un a une idée pourquoi cela se produit et comment je peux travailler autour d'elle?

Merci!

Était-ce utile?

La solution

plutôt que d'attendre arbitrairement six secondes, vous devriez implémentez CLLocationManagerDelegate et en remarquant quand

locationManager:didUpdateToLocation:fromLocation:

est appelé à vous donner la première mise à jour de localisation, ce qui pourrait prendre plus ou moins de temps que cela.

Autres conseils

David est juste, mais je l'ai remarqué que je ne reçois parfois cette méthode appelée avec un emplacement de 0,0. Vous devez ignorer tels appels, sauf si vous pensez que votre application peut être utilisé dans la mer au large de la côte ouest de l'Afrique.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top