2010-10-05 5 views
3

J'ai besoin d'obtenir le fuseau horaire pour une adresse/un emplacement donné. Supposons que l'adresse/l'emplacement peut être inversé géocodé (en utilisant google) à un lat/lng si nécessaire. Cela signifie que je ne dispose peut-être pas d'un code postal.mappage d'emplacement à un fuseau horaire

J'espérais vraiment que Google fournisse une sorte d'API pour cela, mais il semble que ce ne soit pas le cas. Au minimum, vous pouvez google recherche pour "temps à Washington, DC" et obtenir le temps/TZ - mais alors je devrais écran gratter ce qui n'est pas amusant :(

Je sais qu'il existe des bases de données disponibles que emplacements de carte des fuseaux horaires, mais qui auraient à être maintenu. quelqu'un at-il une solution difficile à ce problème?

Merci!

+0

..who est "ils?" –

Répondre

2

http://www.geonames.org/ fournit une API qui retourne le fuseau horaire donné une latitude/lng

+1

geonames n'est pas gratuit, le compte 'démo' que les samples utilisent est limité à seulement 3000 requêtes/jour. Je l'utilisais à des fins de développement tout à l'heure, et ça ne fonctionnait plus. –

0

La question doit être clarifiée un peu plus. Qu'est-ce que vous Quelle est la langue (s) que vous utilisez? Mais comment je voudrais aborder le problème est: Tout d'abord, créer une structure semblable à une table qui traduit les longitudes en zones (un peu comme ceci table.) Ensuite, je interroger le GMT soit localement, ou sur le web en quelque sorte, et enfin prendre le décalage de la table et l'ajouter à GMT. De cette façon, il n'y a pas de "maintenance" de la table puisque ces longitudes ne changent pas.

0

J'ai écrit une petite classe de Java pour ce faire, avec la structure de données intégrée dans le code. Si vous voulez éviter d'utiliser un service Web, et que la précision de 22 km est suffisante, et que vous acceptez volontiers que les limites de fuseau horaire ne changent pas, cela pourrait vous aider.

https://sites.google.com/a/edval.biz/www/mapping-lat-lng-s-to-timezones

+0

La version la plus précise est le code de ligne 61484. Comment est la performance du code? – ProgrAmmar

+1

Les performances sont rapides. C'est juste une recherche binaire de lat et long. (Rapide sur n'importe quelle langue compilée, mais serait lent en PHP). –