Pregunta

Es allí una manera de estimar el desplazamiento de GMT (o la zona horaria) a partir de la latitud y la longitud?He visto geonames, pero esto tendría que trabajar a largo plazo y que realmente no quieren depender de un servicio web.Se acababa de ser utilizado para determinar la pantalla "hoy" o "esta noche" a la hora de dar información a los diferentes usuarios, por lo que no necesitan ser demasiado precisa (una o dos horas fuera no estaría mal).

¿Fue útil?

Solución

offset = direction * longitude * 24 / 360

donde dirección es 1 para este, -1 para oeste, y la longitud es de (-180 180)

Otros consejos

Basando la zona horaria en la longitud solo es absolutamente inexacto fuera de las aguas internacionales.Ver el mapa de esta página:

http://askgeo.com/database/TimeZone

La vertical rayas de colores en el fondo del océano, son los llamados naturales, zonas de tiempo derivados de longitud solos, y los colores de la tierra son el tiempo real de las zonas por las leyes aplicables.Se puede ver que no se alinean muy bien a todos.

De hecho, me encontré con este problema, mientras trabajaba en un proyecto diferente e hizo un proceso sustancial de investigación y desarrollo en él.En primer lugar mi investigación:

  • En primer lugar, las zonas horarias no son normalmente codificados por sólo un desplazamiento de GMT (aka UTC).Que no toma en cuenta el Horario de verano, y cambios en la hora de zonas a través de los años.En cambio, la zona horaria Id se utiliza para designar un área geográfica en la cual el oficial de la hora del reloj ha sido el mismo a lo largo de la zona durante un período de tiempo determinado (por ejemplo, a partir de 1970).El sistema más importante de esos nombres es el "Olson zona horaria ID" (en conjunto, estos Identificadores y su desplazamiento de reglas se conoce como la "tz de base de datos"), que es utilizado por Linux y otros sistemas operativos Unix.La mayoría de los lenguajes de programación y sistemas operativos nativos o asistencia de terceros para Olson zona horaria de IDs.

En términos de las soluciones existentes para convertir la latitud y la longitud de la zona de tiempo:

  • GeoNames.org tiene una gran base de datos de ubicaciones de puntos (centros de ciudades, aeropuertos, edificios públicos, etc.), cada uno de los cuales se anota con un montón de metadatos útiles, incluyendo el Olson tiempo ID de la zona.Y que tiene una buena API para que puedas tener acceso a estos a través de la web.El problema es que si a menos que el punto de la consulta está en la parte superior de un registro en su base de datos, puede obtener un resultado que está en el otro lado de una hora de la frontera de la zona, o usted podría conseguir ninguna respuesta en absoluto si su consulta está lejos de su punto más cercano.El servicio web también es dolorosamente lento, y limitar el número de consultas que se pueden hacer en un día a un número relativamente pequeño.

  • La tierra de Herramientas (http://www.earthtools.org/webservices.htm) también tiene un servicio de este, y es mucho más rápido que GeoNames, pero devuelve sólo un desplazamiento de GMT, no un tiempo de ID de la zona, y no controla el Horario de verano correctamente para la mayoría del mundo.También, parece que no se mantiene, así que no estoy seguro de si la información es exacta ya (zonas horarias cambiar con el tiempo).

Después de revisar las opciones y la búsqueda de otras posibilidades, sin éxito, decidí construir mi propia solución, y han lanzado en:

http://askgeo.com

AskGeo se basa en un mapa de zona horaria del mundo, por lo que devuelve una zona horaria válida para todos válido latitud y longitud.Devuelve el estándar Olson zona horaria de IDENTIFICACIÓN (por ejemplo, "América/Los_Angeles") usado en Linux y la mayoría de los otros sistemas operativos y frameworks de programación.También devuelve la corriente de offset, teniendo plenamente en cuenta el horario de verano.

Es extremadamente fácil de utilizar y de uso está documentado en la página principal del sitio.La API admite consultas de proceso por lotes, así que si usted necesita para hacer un montón de búsquedas, por favor, utilice el lote de la interfaz en lugar de saturar nuestros servidores con una serie de peticiones.La mayor parte de las consultas son también mucho más rápido, por lo que todo el mundo gana.

Cuando lanzamos al mercado este, se construyó en Google App Engine (GAE) y es gratuita para todos los usuarios.Esto fue posible porque GAE los precios eran tan bajos en ese momento.Desde entonces, la carga del servidor se ha incrementado sustancialmente y GAE los precios subieron mucho.Ambos factores combinados nos llevó a cambiar a Amazon Web Services, para el alojamiento y a empezar a cobrar por el uso comercial, mientras que mantener el servicio gratuito sin fines de lucro, no-comercial de los proyectos de código abierto, y a los investigadores.Para los usuarios comerciales, ofrecemos 1000 consultas gratuitas para permitir que los potenciales clientes evaluar la API para asegurarse de que satisfaga sus necesidades.Consulte el sitio web para precios y condiciones.

La biblioteca subyacente fue escrito en Java, y debido a la demanda popular, hemos lanzado también la biblioteca bajo una licencia comercial.La documentación completa de la biblioteca de precios y los detalles están en el sitio web.

Espero que esto sea útil.Sin duda, fue útil para el proyecto en el que estaba trabajando.

Si conoce los usuarios de longitud, ya sabes por completo todos los aspectos de tiempo para ellos (despreciando algunos pequeños errores como la relatividad especial, etc). El tiempo solar medio es simplemente la diferencia de GMT y longitud (convertir grados parte a minutos, 1 grado = 60 minutos). Sumas o restas basado en Este u Oeste. tiempo solar medio es básicamente el tiempo más precisa a continuación, las zonas de tiempo. el día y la noche, los tiempos son variables y dependen de la latitud, por lo que utilizan algunas aproximaciones de la salida y la puesta del sol, teniendo en latitud y la fecha y el año. Esto por sí solo proporcionaría idea bastante exacta del día y la noche.

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