¿hay alguna posibilidad de determinar la zona horaria del punto (lat/lon) sin utilizar los servicios web? Geonames.org no es lo suficientemente estable como para que lo use :( Necesito que esto funcione en PHP.
Gracias
¿hay alguna posibilidad de determinar la zona horaria del punto (lat/lon) sin utilizar los servicios web? Geonames.org no es lo suficientemente estable como para que lo use :( Necesito que esto funcione en PHP.
Gracias
Tuve este problema hace un tiempo e hice exactamente lo que sugirió adam:
Recuerdo que tardaba menos de 1 segundo en rellenar el R-Tree, y luego podía realizar miles de búsquedas por segundo (ambos en un PC de 5 años).
Me encontré con este problema mientras trabajaba en otro proyecto y lo investigué a fondo. Encontré que todas las soluciones existentes tenían grandes carencias.
Descargar los datos de GeoNames y utilizar algún índice espacial para buscar el punto más cercano es definitivamente una opción, y dará el resultado correcto la mayor parte del tiempo, pero puede fallar fácilmente si un punto de consulta está en el lado equivocado de una frontera de zona horaria desde el punto más cercano en la base de datos.
Un método más preciso es utilizar un mapa digital de las zonas horarias y escribir un código para encontrar el polígono de ese mapa que contiene un punto de consulta determinado. Afortunadamente, existe un excelente mapa de los husos horarios del mundo disponible en http://efele.net/maps/tz/world/ (no se mantiene más ). Para escribir un motor de consulta eficiente, es necesario:
Cada una de ellas merece su propia página de preguntas/respuestas en Stack Overflow.
Tras llegar a la conclusión de que ninguna de las soluciones existentes satisfacía mis necesidades, escribí mi propia solución y la puse a disposición aquí:
AskGeo utiliza un mapa digital y tiene un índice espacial altamente optimizado que permite ejecutar más de 10.000 consultas por segundo en mi ordenador en un solo hilo. Y es un hilo seguro, por lo que es posible un rendimiento aún mayor. Se trata de una pieza de código seria, y nos ha llevado mucho tiempo desarrollarla, por lo que la ofrecemos bajo licencia comercial.
Está escrito en Java, por lo que usarlo en PHP implicaría usar:
http://PHP-java-bridge.sourceforge.net/doc/how_it_works.PHP
También estamos abiertos a portarlo por una recompensa. Para más detalles sobre el precio, y para una documentación detallada, vea http://askgeo.com .
Espero que esto sea útil. Desde luego, fue útil para el proyecto en el que estaba trabajando.
Sé que esto es viejo, pero he pasado un tiempo buscando esta respuesta. Encontré algo muy útil. Google hace búsquedas de zonas horarias por largo/lat. Ya no hay nivel gratuito :-/
Para las zonas en tierra, hay algunas mapas shapefile que se han realizado para las zonas horarias de la base de datos tz (Olson). No se actualizan con tanta regularidad como la propia base de datos tz, pero es un buen punto de partida y parece ser muy preciso para la mayoría de los propósitos.
Deberías poder, si conoces el polígono de la zona horaria para ver si una determinada lat/lon está dentro de ella.
Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.