Pergunta

Eu tenho algumas perguntas sobre o local central.

1) O usuário deve recusar a permissão para que meu aplicativo use a localização principal, ou o local central não está disponível por algum motivo, existe um retorno? (Local de dispositivo, por exemplo?)

2) Posso armazenar em cache a localização de um dispositivo para a próxima vez? A localização principal faz isso por conta própria?

3) Eu realmente preciso do tempo do pôr-do-sol na área do usuário durante a temporada intermediária e tenho uma função para fazer isso, uma vez que tenho a latitude e a longitude do dispositivo. Talvez eu possa apenas supor sobre o tempo com base no local? (Exemplo: nos EUA, assuma aproximadamente 19:00.)

EDITAR:

Eu realmente estou tentando calcular o pôr do sol na área de usuários para um aplicativo. Nada a ver com o mapa. Estou considerando a seguinte sequência de eventos:

  • Verifique a disponibilidade de localização principal. Se sim, use -o e armazene -o em NSUserPreferências. Se a localização principal não estiver disponível, vá para os fallbacks.
  • Verifique se há um local armazenado. Se for armazenado, use -o. Caso contrário, continue ...
  • Verifique o tempo escolhido pelo usuário.
Foi útil?

Solução

1) Estritamente falando, se o usuário não permitir o uso do Corelocation ou, se a permissão foi fornecida, mas o Corelocation não estiver disponível, não há outro fallback para obter a localização do usuário como um par de longitude e latitude. Usar o local pode não funcionar em todos os casos. Primeiro, ele apenas lhe dará uma aproximação que pode estar muito longe da realidade. No entanto, cabe a você julgar se essa aproximação é boa para o seu aplicativo. Além disso, existem alguns usuários usando um local diferente daquele relacionado ao seu país. E você não tem garantia de que as pessoas que viajam para o exterior ajustem a data/hora sempre.

2) Cache de localização central Por padrão, o último local recuperado da unidade GPS. No entanto, para pessoas que viajam para o exterior, esse local em cache certamente estará errado (mesmo para pessoas que viajam a poucos quilômetros de distância) e, em geral, você deve descartar o valor em cache e localizar novamente o usuário de cada vez. Entendo que, para as pessoas que viajam em seu país, isso não criará grandes problemas. Mas depende apenas do país: viajar na Itália não mudará o tempo, mas viajar pelos EUA pode mudar o tempo até 3 horas.

3) Eu sugiro tentar usar o local central e, em caso de problemas, basta pedir ao usuário que insira sua hora ou local local (a cidade deve ser suficiente para o seu objetivo). Se você optar por solicitar a localização do usuário, poderá obter o par de latitude/longitude correspondente, mas isso exigirá uma conexão de rede de trabalho.

Outras dicas

2) dos documentos on -line para CllocationManager:

O serviço de localização retorna um local inicial o mais rápido possível, retornando informações em cache quando disponíveis.

Você pode verificar o registro de data e hora do Cllocation para ver se é um valor em cache ou não.

3) Se você decidir usar a localidade para uma aproximação inicial da TZ, lembre -se de que os usuários viajam e não poderão redefinir seu local imediatamente. Você pode obter o objeto TZ atual com:

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