Pergunta

Existe alguma biblioteca (ou melhor ainda, serviço web) disponível que possa converter de latitude/longitude em fuso horário?

Foi útil?

Solução

Analisei bastante profundamente essa questão para um projeto em que estou trabalhando.GeoNames.org e EarthTools.com são boas opções para muitas situações, mas com as seguintes falhas graves:

  • GeoNames.org encontra o fuso horário procurando o ponto mais próximo em seu banco de dados que contém um campo de fuso horário.Isto muitas vezes leva a resultados errados perto das fronteiras.Também é dolorosamente lento, levando a tempos de consulta da ordem de alguns segundos por solicitação.Ele também não retorna um fuso horário válido se não houver nenhum item no banco de dados próximo ao ponto de consulta.GeoNames também restringe o número de consultas que podem ser feitas por dia, dificultando operações em massa.
  • EarthTools.org usa um mapa e é capaz de retornar consultas rapidamente, mas não leva em consideração o horário de verão para a maioria dos locais e retorna um deslocamento bruto em vez de um ID de fuso horário (ou seja, eles retornam "GMT-7 " em vez de "América/Chicago").Além disso, acabei de olhar a página deles enquanto preparava esta postagem e o Google Chrome alertou sobre malware em seu site.Isto é novo para mim e pode mudar, mas é obviamente motivo de preocupação.

Essas falhas significavam que as ferramentas existentes não eram adequadas às minhas necessidades, então criei minha própria solução e a publiquei para uso geral.Você pode encontrá-lo aqui:

http://www.askgeo.com/

AskGeo é baseado em um mapa de fuso horário do mundo, portanto, retorna um fuso horário válido para cada latitude e longitude válidas.Ele retorna o ID de fuso horário padrão (por exemplo, "América/Los_Angeles") usado no Linux e na maioria dos outros sistemas operacionais e estruturas de programação.Ele também retorna o deslocamento atual, levando em consideração o horário de verão.

É extremamente fácil de usar e o uso está documentado na página principal do site.A API suporta consultas em lote, portanto, se você precisar fazer muitas pesquisas, use a interface em lote em vez de sobrecarregar nossos servidores com solicitações seriais.As consultas em massa também são muito mais rápidas, então todos ganham.

Quando lançamos isso pela primeira vez, nós o construímos no Google App Engine (GAE) e o disponibilizamos gratuitamente para todos os usuários.Isto foi possível porque os preços do GAE eram muito baixos naquela época.Desde então, a carga do nosso servidor aumentou substancialmente e os preços do GAE subiram muito.Ambos os fatores combinados nos levaram a mudar para a Amazon Web Services para hospedagem e a começar a cobrar pelo uso comercial, mantendo o serviço gratuito para projetos e pesquisadores de código aberto sem fins lucrativos e não comerciais.Para usuários comerciais, oferecemos 1.000 consultas gratuitas para permitir que clientes em potencial avaliem a API e garantam que ela atenda às suas necessidades.Consulte o site para preços e condições.

A biblioteca subjacente foi escrita em Java e devido à demanda popular, também lançamos a biblioteca sob uma licença comercial.A documentação completa da biblioteca e detalhes de preços estão no site.

Espero que isso seja útil.Certamente foi útil para o projeto em que estava trabalhando.

Outras dicas

Dê uma olhada Geonames.org

É um webservice gratuito que permite obter muitas informações de uma latitude longa/lat.

Eles também fornecem um cliente Java gratuito (e de código aberto) para a biblioteca de serviços da Web GeoNames (biblioteca para outra linguagem também fornecida:rubi, python, perl, lisp...)

Aqui estão algumas informações que você pode obter de long/lat: (lista completa de webservices aqui)

  • Encontre o endereço mais próximo
  • Encontre o cruzamento mais próximo
  • Encontre ruas próximas
  • Elevação
  • Fuso horário

Os fusos horários agora estão disponíveis por meio da API do Google

https://developers.google.com/maps/documentation/timezone/

A API do Yahoo Places fornece informações de fuso horário por meio de geolocalização reversa.

Confira.

http://developer.yahoo.com/geo/placefinder/guide/requests.html

Quanta precisão você precisa?Dividir a longitude por 15 seria quase certo :p

Projeto morto :-/

Estes parecem muito promissores-

Link do arquivo:

https://web.archive.org/web/20150503145203/http://www.earthtools.org/webservices.htm

Eric Muller fez mapas de shapefile para os fusos horários do banco de dados tz (Olson).Algumas pequenas advertências, no entanto:

  1. Os limites usados ​​muitas vezes não são oficiais.
  2. Ele não é atualizado tão regularmente quanto o próprio banco de dados tz, portanto, algumas zonas recém-formadas ou ajustadas podem estar faltando.

Deixando isso de lado, no entanto, parece ser muito preciso para a maioria dos propósitos.

Motor DRT pega uma latitude, longitude e data e hora local e retorna um deslocamento de fuso horário.Isto pode ser usado para estabelecer o fuso horário de um local específico em um futuro data.

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