Frage

Gibt es eine Bibliothek (oder noch besser einen Webdienst), die einen Breiten-/Längengrad in eine Zeitzone umrechnen kann?

War es hilfreich?

Lösung

Ich habe mich für ein Projekt, an dem ich arbeite, ziemlich gründlich mit dieser Frage befasst.GeoNames.org und EarthTools.com sind beide gute Optionen für viele Situationen, weisen jedoch die folgenden schwerwiegenden Mängel auf:

  • GeoNames.org findet die Zeitzone, indem es in seiner Datenbank nach dem nächstgelegenen Punkt sucht, der ein Zeitzonenfeld enthält.Dies führt in Grenznähe häufig zu falschen Ergebnissen.Außerdem ist es äußerst langsam, was zu Abfragezeiten in der Größenordnung von einigen Sekunden pro Anfrage führt.Außerdem wird keine gültige Zeitzone zurückgegeben, wenn sich in der Datenbank in der Nähe des Abfragepunkts kein Element befindet.GeoNames beschränkt außerdem die Anzahl der Abfragen, die pro Tag durchgeführt werden können, was Massenvorgänge erschwert.
  • EarthTools.org verwendet eine Karte und kann Abfragen schnell zurückgeben, berücksichtigt jedoch für die meisten Standorte nicht die Sommerzeit und gibt einen Rohversatz anstelle einer Zeitzonen-ID zurück (d. h. sie geben „GMT-7“ zurück " anstelle von "Amerika/Chicago").Außerdem habe ich gerade bei der Vorbereitung dieses Beitrags auf ihre Seite geschaut und Google Chrome hat vor Malware auf ihrer Website gewarnt.Das ist für mich neu und kann sich ändern, gibt aber natürlich Anlass zur Sorge.

Diese Mängel führten dazu, dass diese vorhandenen Tools nicht für meine Anforderungen geeignet waren. Daher habe ich meine eigene Lösung entwickelt und für den allgemeinen Gebrauch veröffentlicht.Du findest es hier:

http://www.askgeo.com/

AskGeo basiert auf einer Zeitzonenkarte der Welt und gibt daher für jeden gültigen Breiten- und Längengrad eine gültige Zeitzone zurück.Es gibt die Standard-Zeitzonen-ID (z. B. „Amerika/Los_Angeles“) zurück, die unter Linux und den meisten anderen Betriebssystemen und Programmier-Frameworks verwendet wird.Außerdem wird der aktuelle Offset zurückgegeben, wobei die Sommerzeit vollständig berücksichtigt wird.

Die Verwendung ist äußerst einfach und die Verwendung wird auf der Hauptseite der Website dokumentiert.Die API unterstützt Batch-Abfragen. Wenn Sie also viele Suchvorgänge durchführen müssen, verwenden Sie bitte die Batch-Schnittstelle, anstatt unsere Server mit seriellen Anfragen zu überlasten.Die Massenabfragen sind auch viel schneller, sodass alle profitieren.

Als wir dies zum ersten Mal auf den Markt brachten, bauten wir es auf Google App Engine (GAE) auf und stellten es allen Nutzern kostenlos zur Verfügung.Dies war möglich, weil die Preise von GAE zu diesem Zeitpunkt so niedrig waren.Seitdem ist unsere Serverauslastung erheblich gestiegen und die Preise von GAE sind deutlich gestiegen.Beide Faktoren zusammen führten dazu, dass wir für das Hosting auf Amazon Web Services umstiegen und begannen, für die kommerzielle Nutzung Gebühren zu erheben, während wir den Service für gemeinnützige, nichtkommerzielle Open-Source-Projekte und Forscher kostenlos behielten.Für gewerbliche Nutzer stellen wir 1.000 kostenlose Abfragen zur Verfügung, damit potenzielle Kunden die API evaluieren können, um sicherzustellen, dass sie ihren Anforderungen entspricht.Preise und Konditionen finden Sie auf der Website.

Die zugrunde liegende Bibliothek wurde in Java geschrieben und aufgrund der großen Nachfrage haben wir die Bibliothek auch unter einer kommerziellen Lizenz veröffentlicht.Eine vollständige Dokumentation der Bibliothek und Preisdetails finden Sie auf der Website.

Ich hoffe, das ist nützlich.Es war auf jeden Fall nützlich für das Projekt, an dem ich arbeitete.

Andere Tipps

Schauen Sie mal rein Geonames.org

Es handelt sich um einen kostenlosen Webservice, der es Ihnen ermöglicht, viele Informationen aus einem Lang-/Breitengrad zu erhalten

Sie stellen außerdem einen kostenlosen (und Open-Source-)Java-Client für die GeoNames-Webservices-Bibliothek bereit (Bibliothek für andere Sprachen wird ebenfalls bereitgestellt:Ruby, Python, Perl, Lisp...)

Hier sind einige Informationen, die Sie von long/lat erhalten können: (vollständige Liste der Webservices hier)

  • Finden Sie die nächstgelegene Adresse
  • Finden Sie die nächste Kreuzung
  • Finden Sie Straßen in der Nähe
  • Elevation
  • Zeitzone

Zeitzonen sind jetzt über die Google API verfügbar

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

Die Yahoo Places API stellt Zeitzoneninformationen über die umgekehrte Geolokalisierung bereit.

Hör zu.

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

Wie viel Genauigkeit benötigen Sie?Den Längengrad durch 15 zu teilen wäre fast richtig :p

Projekt tot :-/

Die sehen ziemlich vielversprechend aus-

Archivlink:

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

Eric Muller hat gemacht Shapefile-Karten für die Zeitzonen der tz (Olson)-Datenbank.Allerdings mit ein paar kleinen Vorbehalten:

  1. Die verwendeten Grenzen sind oft inoffiziell.
  2. Sie wird nicht so regelmäßig aktualisiert wie die tz-Datenbank selbst, daher fehlen möglicherweise einige neu gebildete oder angepasste Zonen.

Abgesehen davon scheint es jedoch für die meisten Zwecke sehr genau zu sein.

DRT-Engine Nimmt einen Breitengrad, einen Längengrad und ein lokales Datum/Uhrzeit an und gibt einen Zeitzonenversatz zurück.Dies kann verwendet werden, um die Zeitzone eines bestimmten Standorts zu ermitteln Zukunft Datum.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top