Question

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

Était-ce utile?

La solution

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

  • GeoNames.org trouve le fuseau horaire en recherchant le point le plus proche dans sa base de données contenant un champ de fuseau horaire.Cela conduit souvent à des résultats erronés à proximité des frontières.Il est également extrêmement 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 base de données à proximité du point de requête.GeoNames limite également le nombre de requêtes pouvant être effectuées par jour, ce qui rend les opérations groupées difficiles.
  • EarthTools.org utilise une carte et est capable de renvoyer rapidement des requêtes, 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 identifiant de fuseau horaire (c'est-à-dire qu'ils renvoient « GMT-7). " au lieu de "Amérique/Chicago").De plus, je viens de regarder leur page lors de la préparation de 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 failles signifiaient que ces outils existants n'étaient pas adaptés à mes besoins. J'ai donc lancé ma propre solution et 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 des fuseaux horaires du monde, il renvoie donc un fuseau horaire valide pour chaque latitude et longitude valides.Il renvoie l'ID de fuseau horaire standard (par exemple, « Amérique/Los_Angeles ») utilisé sur Linux et la plupart des autres systèmes d'exploitation et frameworks de programmation.Il renvoie également le décalage actuel, en tenant pleinement compte de l'heure d'été.

Il est extrêmement simple à 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 devez effectuer de nombreuses recherches, veuillez utiliser l'interface par lots plutôt que d'enliser nos serveurs avec des requêtes en série.Les requêtes groupées sont également beaucoup plus rapides, donc tout le monde y 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 pour tous les utilisateurs.Cela a été possible parce que les prix de GAE étaient très bas à cette époque.Depuis lors, la charge de nos serveurs a considérablement augmenté et les prix de GAE ont considérablement augmenté.Ces deux facteurs combinés nous ont amenés à passer à Amazon Web Services pour l'hébergement et à commencer à facturer pour une utilisation commerciale, tout en gardant le service gratuit pour les projets open source à but non lucratif et non commerciaux, ainsi que pour les chercheurs.Pour les utilisateurs commerciaux, nous proposons 1 000 requêtes gratuites pour permettre aux clients potentiels d'évaluer l'API et de s'assurer qu'elle répond à leurs besoins.Consultez le site Web pour connaître les prix et les conditions.

La bibliothèque sous-jacente a été écrite en Java et, en raison de 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 des tarifs sont disponibles sur le site Web.

J'espère que cela est utile.Cela a certainement été utile pour le projet sur lequel je travaillais.

Autres conseils

Jeter un coup d'œil à Géonames.org

C'est un webservice gratuit qui vous permet d'obtenir de nombreuses informations à partir d'un plan long/lat

Ils fournissent également un client Java gratuit (et open source) pour la bibliothèque de services Web GeoNames (une bibliothèque pour d'autres langages est également fournie :rubis, python, perl, lisp...)

Voici quelques informations que vous pouvez obtenir à partir de long/lat : (liste complète des webservices 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 l'API Google

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

L'API Yahoo Places fournit des informations sur le fuseau horaire via la géolocalisation inversée.

Vérifiez-le.

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

De quelle précision avez-vous besoin ?Diviser la longitude par 15 serait presque juste :p

Projet mort :-/

Ceux-ci ont l'air plutôt prometteurs-

Lien d'archive :

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

Eric Muller a réalisé cartes de fichiers de formes pour les fuseaux horaires de la base de données tz (Olson).Quelques petites mises en garde cependant :

  1. Les limites utilisées sont souvent officieuses.
  2. Elle n'est pas mise à jour aussi régulièrement que la base de données tz elle-même, donc certaines zones nouvellement formées ou ajustées peuvent manquer.

Cela mis à part, cependant, il semble être très précis dans la plupart des cas.

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 à un avenir date.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top