propriedade mkmapview.userslocation definido para 0,0 após permitindo aplicativo para usar localização atual

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

Pergunta

Na primeira vez que o usuário tenta usar o local atual da propriedade map.userslocation tem coordenadas de 0,0. A próxima vez que eu carregar a exibição que contém o mapa da localização dos usuários é sempre encontrado.

Eu estou definindo a propriedade map.showsUserLocation para YES em viewDidLoad e quando o mapa carregar na tela o ponto azul está lá, mas quando tento obter as coordenadas com map.userlocation.coorinate são 0,0.

O fluxo do programa vai - (void) viewDidLoad: 1) showUserLocation conjunto para SIM 2) Definir um temporizador para chamar um método 6 segundos depois que agarra a usuários localização da propriedade map.userLocation

- (void) getUsersLocation 1) imprimir o local usuários

Este processo funciona muito bem após a primeira vez que eu carregar a vista, mas a primeira vez que a visão é laoded e o utilizador tem de conceder permissão para utilizar a sua localização as coordenadas voltar 0,0

Alguém tem alguma idéia de por que isso acontece e como posso resolver isso?

Obrigado!

Foi útil?

Solução

em vez de arbitrariamente esperando seis segundos, você deve estar implementando CLLocationManagerDelegate e perceber quando

locationManager:didUpdateToLocation:fromLocation:

é chamado para dar-lhe a atualização primeiro local, o que pode demorar mais ou menos tempo do que isso.

Outras dicas

David é certo, mas tenho notado que eu às vezes se que o método chamado com um local de 0,0. Você deve ignorar qualquer dessas chamadas, a menos que você acha que seu aplicativo pode estar sendo usado no mar ao largo da costa oeste da África.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top