Pregunta

¿Existe alguna biblioteca (o mejor aún, servicio web) disponible que pueda convertir de latitud/longitud a zona horaria?

¿Fue útil?

Solución

Analicé con bastante profundidad esta pregunta para un proyecto en el que estoy trabajando.GeoNames.org y EarthTools.com son buenas opciones para muchas situaciones, pero con los siguientes defectos graves:

  • GeoNames.org encuentra la zona horaria buscando el punto más cercano en su base de datos que contenga un campo de zona horaria.Esto conduce a menudo a resultados erróneos cerca de las fronteras.También es tremendamente lento, lo que genera tiempos de consulta del orden de un par de segundos por solicitud.Tampoco devuelve una zona horaria válida si no hay ningún elemento en su base de datos cerca del punto de consulta.GeoNames también restringe la cantidad de consultas que se pueden realizar por día, lo que dificulta las operaciones masivas.
  • EarthTools.org utiliza un mapa y puede devolver consultas rápidamente, pero no tiene en cuenta el horario de verano para la mayoría de las ubicaciones y devuelve un desplazamiento sin procesar en lugar de un ID de zona horaria (es decir, devuelven "GMT-7 " en lugar de "América/Chicago").Además, miré su página mientras preparaba esta publicación y Google Chrome advirtió sobre malware en su sitio.Esto es nuevo para mí y puede cambiar, pero obviamente es motivo de preocupación.

Estas fallas significaron que estas herramientas existentes no eran adecuadas para mis necesidades, por lo que implementé mi propia solución y la publiqué para uso general.Lo puedes encontrar aquí:

http://www.askgeo.com/

AskGeo se basa en un mapa de zonas horarias del mundo, por lo que devuelve una zona horaria válida para cada latitud y longitud válida.Devuelve el ID de zona horaria estándar (por ejemplo, "América/Los_Angeles") utilizado en Linux y la mayoría de los demás sistemas operativos y marcos de programación.También devuelve la compensación actual, teniendo en cuenta el horario de verano.

Es extremadamente fácil de usar y su uso está documentado en la página principal del sitio.La API admite consultas por lotes, por lo que si necesita realizar muchas búsquedas, utilice la interfaz por lotes en lugar de atascar nuestros servidores con solicitudes en serie.Las consultas masivas también son mucho más rápidas, por lo que todos ganan.

Cuando lo lanzamos por primera vez, lo creamos en Google App Engine (GAE) y lo hicimos gratuito para todos los usuarios.Esto fue posible porque los precios de GAE eran muy bajos en ese momento.Desde entonces, la carga de nuestros servidores ha aumentado sustancialmente y los precios de GAE subieron considerablemente.Ambos factores combinados nos llevaron a cambiar a Amazon Web Services para el alojamiento y comenzar a cobrar por el uso comercial, mientras manteníamos el servicio gratuito para investigadores y proyectos de código abierto sin fines de lucro y no comerciales.Para los usuarios comerciales, ofrecemos 1000 consultas gratuitas para que los clientes potenciales evalúen la API y se aseguren de que satisface sus necesidades.Consulte el sitio web para conocer los precios y los términos.

La biblioteca subyacente fue escrita en Java y, debido a la demanda popular, también lanzamos la biblioteca bajo una licencia comercial.La documentación completa de la biblioteca y los detalles de precios se encuentran en el sitio web.

Espero que esto sea útil.Ciertamente fue útil para el proyecto en el que estaba trabajando.

Otros consejos

Echa un vistazo a Geonames.org

Es un servicio web gratuito que le permite obtener mucha información de una latitud larga.

También proporcionan un cliente Java gratuito (y de código abierto) para la biblioteca de servicios web GeoNames (también se proporciona una biblioteca para otros idiomas:rubí, pitón, perl, lisp...)

Aquí hay información que puede obtener de largo/latitud: (lista completa de servicios web aquí)

  • Encuentra la dirección más cercana
  • Encuentra la intersección más cercana
  • Encuentra calles cercanas
  • Elevación
  • Zona horaria

Las zonas horarias ahora están disponibles a través de la API de Google

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

La API de Yahoo Places proporciona información de zona horaria mediante geolocalización inversa.

Échale un vistazo.

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

¿Cuánta precisión necesitas?Dividir la longitud por 15 sería casi correcto :p

Proyecto muerto :-/

Estos parecen bastante prometedores.

Enlace de archivo:

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

Eric Muller ha hecho mapas de archivos de forma para las zonas horarias de la base de datos tz (Olson).Sin embargo, algunas advertencias menores:

  1. Los límites utilizados suelen ser no oficiales.
  2. No se actualiza con tanta regularidad como la propia base de datos tz, por lo que es posible que falten algunas zonas recién formadas o ajustadas.

Aparte de eso, sin embargo, parece ser muy preciso para la mayoría de los propósitos.

Motor DRT toma una latitud, longitud y fecha y hora local y devuelve un desplazamiento de zona horaria.Esto se puede utilizar para establecer la zona horaria de una ubicación particular en un futuro fecha.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top