Recherche dans le fuseau horaire de la longitude de la latitude

Existe-t-il une bibliothèque (ou mieux encore, un service Web) disponible pour convertir une latitude / longitude en un fuseau horaire?

J’ai regardé assez profondément cette question pour un projet sur lequel je travaille. GeoNames.org et EarthTools.com sont deux bonnes options pour de nombreuses situations, mais avec les graves défauts suivants:

  • GeoNames.org trouve le fuseau horaire en recherchant le point le plus proche de leur firebase database contenant un champ de fuseau horaire. Cela conduit souvent au mauvais résultat près des frontières. Il est également très lent, ce qui entraîne des temps de requête de l’ordre de quelques secondes par requête. Il ne renvoie pas non plus de fuseau horaire valide s’il n’y a aucun élément dans leur firebase database près du sharepoint requête. GeoNames limite également le nombre de requêtes pouvant être effectuées par jour, ce qui complique les opérations en bloc.
  • EarthTools.org utilise une carte et est capable de renvoyer des requêtes rapidement, mais il ne prend pas en compte l’heure d’été pour la plupart des emplacements et renvoie un décalage brut plutôt qu’un ID de fuseau horaire (c’est-à-dire qu’ils renvoient “GMT-7 “au lieu de” America / Chicago “). De plus, je viens de regarder leur page en préparant cet article et Google Chrome a mis en garde contre les logiciels malveillants sur leur site. C’est nouveau pour moi et cela peut changer, mais c’est évidemment une source de préoccupation.

Ces défauts signifiaient que ces outils existants ne convenaient pas à mes besoins, alors j’ai lancé ma propre solution et je l’ai publiée pour un usage général. Vous pouvez le trouver ici:

http://www.askgeo.com/

AskGeo est basé sur une carte de fuseau horaire du monde, il renvoie donc un fuseau horaire valide pour chaque latitude et longitude valide. Il renvoie l’ID de fuseau horaire standard (par exemple, “America / Los_Angeles”) utilisé sur Linux et la plupart des autres systèmes d’exploitation et structures de programmation. Il renvoie également le décalage actuel, en tenant compte de l’heure d’été.

Il est extrêmement facile à utiliser et son utilisation est documentée sur la page principale du site. L’API prend en charge les requêtes par lots, donc si vous avez besoin de faire beaucoup de recherches, veuillez utiliser l’interface par lot plutôt que d’imbriquer nos serveurs avec des requêtes en série. Les requêtes en vrac sont également beaucoup plus rapides, donc tout le monde gagne.

Lorsque nous l’avons lancé pour la première fois, nous l’avons construit sur Google App Engine (GAE) et l’avons rendu gratuit à tous les utilisateurs. Cela était possible parce que les prix de GAE étaient si bas à ce moment-là. Depuis lors, la charge de nos serveurs a considérablement augmenté et les prix de GAE ont augmenté. Les deux facteurs combinés nous ont amenés à passer à Amazon Web Services pour l’hébergement et à commencer à facturer pour un usage commercial, tout en gardant le service gratuit pour les projets open source non commerciaux à but non lucratif et les chercheurs. Pour les utilisateurs commerciaux, nous fournissons 1000 requêtes gratuites pour permettre aux clients potentiels d’évaluer l’API afin de s’assurer qu’elle répond à leurs besoins. Voir le site Web pour les prix et les conditions.

La bibliothèque sous-jacente a été écrite en Java et, à la demande générale, nous avons également publié la bibliothèque sous licence commerciale. La documentation complète de la bibliothèque et les détails de prix sont sur le site Web.

J’espère que c’est utile. C’était certainement utile pour le projet sur lequel je travaillais.

Jetez un oeil à Geonames.org

C’est un webservice gratuit qui vous permet d’obtenir beaucoup d’informations à partir d’un long

Ils fournissent également une bibliothèque Java Client for GeoNames Webservices gratuite (et open source) (bibliothèque pour autre langage également fournie: ruby, python, perl, lisp …)

Voici quelques informations que vous pouvez obtenir de long / lat: (liste complète des services Web ici)

  • Trouver l’adresse la plus proche
  • Trouver l’intersection la plus proche
  • Trouver les rues à proximité
  • Élévation
  • Fuseau horaire

Les fuseaux horaires sont désormais disponibles via Google API

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

L’API Yahoo places fournit des informations de fuseau horaire par géolocalisation inversée.

Vérifiez-le.

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

De combien de précision avez-vous besoin? Diviser la longitude par 15 serait presque exact: p

Celles-ci semblent très prometteuses-

http://www.earthtools.org/webservices.htm

Eric Muller a créé des cartes de fichiers de formes pour les fuseaux horaires de la firebase database tz (Olson). Quelques petites mises en garde, cependant:

  1. Les limites utilisées sont souvent officieuses.
  2. Il n’est pas mis à jour aussi régulièrement que la firebase database tz, de sorte que certaines zones nouvellement formées ou ajustées peuvent être manquantes.

En dehors de cela, cependant, il semble être très précis dans la plupart des cas.

Le moteur DRT prend une latitude, une longitude et une date / heure locale et renvoie un décalage de fuseau horaire. Cela peut être utilisé pour établir le fuseau horaire d’un emplacement particulier à une date ultérieure .