Pergunta

Lembro -me de ler em algum lugar (esqueço onde), se um aplicativo para iPhone simplesmente executou o CllocationManager uma vez, ele não apresentou os resultados mais precisos.

Isso é preciso e, se sim, como posso combater esse problema? Quero criar os resultados mais precisos do GPS e me pergunto se apenas uma vez criará os melhores resultados.

Obrigado por qualquer ajuda!

Foi útil?

Solução

CLLocationManager *locationManager.desiredAccuracy = kCLLocationAccuracyBest;

Retornará o melhor resultado possível para você. O método delegado

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation

Continuará retornando a localização do usuário com base nas preferências de precisão que você definiu.

Se você precisar apenas do local uma vez, precisa se lembrar de ligar stopUpdatingLocation sobre self. Se você precisar atualizar a localização do usuário continuamente, não ligue stopUpdatingLocation

Estou usando o Corelocation para obter a localização de um usuário e é bastante preciso para o meu uso.

Outras dicas

O que você leu provavelmente foi do Guia de programação de aplicativos para iPhone:

Para recuperar o local atual do usuário, crie uma instância da classe CllocationManager e configure -a com a precisão desejada e os parâmetros de limite. Para começar a receber notificações de localização, atribua um delegado ao objeto e chame o método StartUpDatingLocation para iniciar a determinação do local atual do usuário. Quando novos dados de localização estão disponíveis, o gerenciador de localização notifica seu objeto Delegate atribuído. Se uma atualização de localização já foi entregue, você também poderá obter os dados de localização mais recentes diretamente do objeto CllocationManager sem esperar que um novo evento seja entregue.

[...]

Verificar o registro de data e hora de um evento é recomendado porque o serviço de localização geralmente retorna o último evento de localização em cache imediatamente. Pode levar vários segundos para obter uma correção de localização aproximada, para que os dados antigos servem simplesmente como uma maneira de refletir o último local conhecido. Você também pode usar a precisão como um meio de determinar se deseja aceitar um evento. Como recebe dados mais precisos, o serviço de localização pode retornar eventos adicionais, com os valores de precisão refletindo as melhorias de acordo.

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