Zum Beispiel, wenn wir diese Koordinaten haben
"latitude": 48.858844300000001,
"longitude": 2.2943506,
Wie können wir die Stadt / das Land herausfinden?
geolocation
geocoding
geospatial
geo
ming yeow
quelle
quelle
Antworten:
Die kostenlose Google Geocoding-API bietet diesen Service über eine HTTP-REST-API. Beachten Sie, dass die API in Bezug auf Nutzung und Rate begrenzt ist. Sie können jedoch für unbegrenzten Zugriff bezahlen.
Versuchen Sie diesen Link, um ein Beispiel für die Ausgabe zu sehen (dies ist in JSON, die Ausgabe ist auch in XML verfügbar).
https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=true
quelle
Andere Option:
Vorteile:
Nachteile:
quelle
Du brauchst
geopy
und dann:
um weitere Informationen zu erhalten:
quelle
Eine Open Source-Alternative ist Nominatim von Open Street Map. Sie müssen lediglich die Variablen in einer URL festlegen und die Stadt / das Land dieses Standorts zurückgeben. Bitte überprüfen Sie den folgenden Link für die offizielle Dokumentation: Nominatim
quelle
Ich habe nach einer ähnlichen Funktionalität gesucht und die Daten " http://download.geonames.org/export/dump/ " gesehen, die in einer früheren Antwort geteilt wurden (danke für das Teilen, es ist eine ausgezeichnete Quelle), und einen Service implementiert auf den Daten von city1000.txt.
Sie können es laufen sehen
http://scatter-otl.rhcloud.com/location?lat=36&long=-78.9(defekter Link) Ändern Sie einfach den Breiten- und Längengrad für Ihre Standorte.Es wird auf OpenShift (RedHat Platform) bereitgestellt. Der erste Anruf nach einer langen Leerlaufzeit kann einige Zeit dauern, aber normalerweise ist die Leistung zufriedenstellend. Fühlen Sie sich frei, diesen Service zu nutzen, wie Sie möchten ...
Die Projektquelle finden Sie auch unter https://github.com/turgos/Location .
quelle
Ich habe Geocoder verwendet , eine gute Python-Bibliothek, die mehrere Anbieter unterstützt, darunter Google, Geonames und OpenStreetMaps, um nur einige zu nennen . Ich habe versucht, die GeoPy-Bibliothek zu verwenden, und es kommt häufig zu Zeitüberschreitungen. Das Entwickeln eines eigenen Codes für GeoNames ist nicht die beste Verwendung Ihrer Zeit, und Sie erhalten möglicherweise instabilen Code. Geocoder ist meiner Erfahrung nach sehr einfach zu bedienen und verfügt über ausreichend Dokumentation . Unten finden Sie einen Beispielcode zum Nachschlagen der Stadt nach Breiten- und Längengrad oder zum Ermitteln von Breiten- / Längengraden nach Städtenamen.
quelle
geocoder
, würde ich es auch gerne selbst versuchen!Ich habe ungefähr 30 Minuten damit verbracht, ein Codebeispiel dafür in Javascript zu finden. Ich konnte keine schnelle und klare Antwort auf die von Ihnen gestellte Frage finden. Also ... ich habe es mir selbst gemacht. Hoffentlich können die Leute dies nutzen, ohne sich in die API vertiefen oder auf Code starren zu müssen, von dem sie keine Ahnung haben, wie sie ihn lesen sollen. Ha wenn nichts anderes kann ich diesen Beitrag für meine eigenen Sachen referenzieren .. Schöne Frage und danke für das Diskussionsforum!
Hierbei wird die Google-API verwendet.
.
quelle
Ich weiß, dass diese Frage wirklich alt ist, aber ich habe an demselben Problem gearbeitet und ein äußerst effizientes und praktisches Paket gefunden
reverse_geocoder
, das von Ajay Thampi erstellt wurde. Der Code ist hier verfügbar . Es basiert auf einer parallelisierten Implementierung von KD-Bäumen, die für große Punktmengen äußerst effizient ist (ich habe einige Sekunden gebraucht, um 100.000 Punkte zu erhalten.Es basiert auf dieser Datenbank, die bereits von @turgos hervorgehoben wurde.
Wenn Sie schnell das Land und die Stadt einer Koordinatenliste finden möchten, ist dies ein großartiges Tool.
quelle
Es hängt wirklich davon ab, welche technologischen Einschränkungen Sie haben.
Eine Möglichkeit besteht darin, eine räumliche Datenbank mit den Umrissen der Länder und Städte zu haben, an denen Sie interessiert sind. Mit Umrissen meine ich, dass Länder und Städte als räumliches Polygon gespeichert werden. Ihr Koordinatensatz kann in den Punkt vom räumlichen Typ konvertiert und anhand der Polygone abgefragt werden, um den Namen des Landes / der Stadt zu erhalten, in dem sich der Punkt befindet.
Hier sind einige der Datenbanken, die den räumlichen Typ unterstützen: SQL Server 2008 , MySQL , postGIS - eine Erweiterung von postgreSQL und Oracle .
Wenn Sie einen Dienst anstelle einer eigenen Datenbank verwenden möchten, können Sie den GeoPlanet von Yahoo verwenden . Informationen zum Serviceansatz finden Sie in dieser Antwort auf gis.stackexchange.com , in der die Verfügbarkeit von Services zur Lösung Ihres Problems beschrieben wird.
quelle
Sie können die Google Geocoding-API verwenden
Unten ist eine PHP-Funktion, die Adresse, Stadt, Bundesland und Land zurückgibt
quelle
Loc2country ist ein Golang-basiertes Tool, das den ISO-Alpha-3-Ländercode für bestimmte Standortkoordinaten (lat / lon) zurückgibt. Es reagiert in Mikrosekunden. Es verwendet eine Geohash-Landkarte.
Die Geohash-Daten werden mit Georaptor generiert .
Wir verwenden Geohash auf Stufe 6 für dieses Werkzeug, dh Kisten mit einer Größe von 1,2 km x 600 m.
quelle
Minimieren Sie die Anzahl der Bibliotheken.
Holen Sie sich einen Schlüssel, um die API auf ihrer Website zu verwenden, und erhalten Sie das Ergebnis in einer http-Anfrage:
curl -i -H "key: YOUR_KEY" -X GET https://api.latlong.dev/lookup?lat=38.7447913&long=-9.1625173
quelle
Bitte überprüfen Sie die unten stehende Antwort. Für mich geht das
quelle
Wenn Sie die Places-API von Google verwenden, können Sie auf diese Weise mithilfe von Javascript Land und Stadt aus dem Ortsobjekt abrufen:
quelle