Frage

Ich bin mit Python und ich brauche Orte wie „Bloomington, IN“ zu GPS-Koordinaten abbilden, so kann ich Abstände zwischen ihnen messen. Welche Geokodierung Bibliotheken / APIs empfehlen Sie? Lösungen in anderen Sprachen sind ebenfalls willkommen.

War es hilfreich?

Lösung

Die Google Maps API unterstützt Geokodierung und die Python-Kochbuch hat eine einfache Beispiel rel="nofollow (obwohl das Rezept nicht die API direkt, nur einfache maps.google.com URLs).

Andere Tipps

Geopy können Sie aus mehreren geocoders wählen (einschließlich Google, Yahoo, Virtual Earth).

Das Web-Service von Google ist sehr einfach zu bedienen. Legen Sie einfach die Abfrage in der URL. Um es noch einfacher / fauler zu machen, werde ich schamlos werben pygeocoder , ein Python-Wrapper für Google Geocoding. Dann können Sie einfach so etwas wie

print Geocoder.geocode("Montreal, Canada")[0].coordinates

ein Tupel mit den Koordinaten zu erhalten. Sie können auch Dinge wie

tun
Geocoder.geocode("sushi, San Francisco").count

oder

Geocoder.geocode("sushi, San Francisco")[0].postal_code

Sowohl Google als auch Microsoft-API haben, die sehr einfach zu einhaken. Es gibt einige Einschränkungen, aber sie sind ziemlich großzügig. Vielleicht haben Sie auch unter http://geocoder.us/ suchen. Ich bin nicht bekannt, dass freie Geocoding Services, die alle gut sind (und ich habe Zeit damit verbracht suchen!)

Sie können einen Blick auf GeoLite Stadt . Es ist kostenlos (GPL), aber sie sagen, es ist nicht das genaueste.

  

Mehr als 99,5% auf Länderebene und 79% auf Stadtebene für die USA innerhalb von 25 Meile Radius

Das nach wie vor könnten Sie passen, je nach Ihren Bedürfnissen.

Sie können einen Web-API wie Google Maps verwenden, um die Koordinaten zu finden. Dann, wenn Sie müssen nur Entfernungen berechnen (in einer geraden Linie), gibt es ein Formel Sie anwenden können ziemlich genaue Ergebnisse erhalten.

Die USC WebGIS Geocoder ( https://webgis.usc.edu ) ist kostenlos. Es hat API, die Sie von Skripten aufrufen können oder Sie können hochladen und Prozess-Datenbanken (mdb, csv, etc.). Die Genauigkeitsstufen davon abhängen, wo Sie Ihre Adressen sind. So ist zum Beispiel in Los Angeles County Paket Centroide verfügbar, während in anderen Teilen des Landes nur TIGER / Linien sind. Eine Abdeckungskarte von Quellen Referenzdaten ist zu diesem Zeitpunkt nicht verfügbar, aber ist in der Entwicklung. Die zugrunde liegenden Tools sind geplant Open-Source in der Zukunft zu sein, wenn mehr Entwicklung als auch abgeschlossen ist.

Ich kam über http://www.geonames.org/ den anderen Tag. Sie können tatsächlich alle Daten für Postleitzahlen, einschließlich lat / long etc herunterladen, auch für commericial Verwendung auf externe Quellen anschließen zu müssen speichern. Ich glaube, Sie können das gleiche tun für Städtenamen (Postcodedaten haben Namen subrub damit verbundenen bereits).

Einige Mathematik auf der Suche nach der Entfernung „Auf kürzestem Weg“ - direkt vom Punkt kann Punkt gefunden werden hier und hier (.NET-Beispiel) .

können Sie haben besseren Blick in Geopy module.And es wert genug ist, zu verwenden, wie es enthält Google Maps, Yahoo map geocoders, mit dem Sie geocodings implementieren können.

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