propriedade mkmapview.userslocation definido para 0,0 após permitindo aplicativo para usar localização atual
-
19-09-2019 - |
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!
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.