Geokodierung mit Geopy in Python

Ich habe bereits verschiedene Möglichkeiten zur Geokodierung von Geodaten in Form von Stadt- oder Ortsnamen in R unter Verwendung von APIs wie der von Open Street Map bereitgestellten demonstriert.

In diesem Beitrag werde ich die Möglichkeit der Geokodierung von Standortnamen in Python mithilfe von Geopy demonstrieren. Geopy ist ein Python-Modul das die Geokodierung von Zeichenfolgen ermöglicht indem Zugriff auf verschiedene Geokodierungsdienste ermöglicht wird.

Unten importiere ich Geopy (unterstützt den Befehl pip install) und verwende es zum Geokodieren einer Liste von Städtenamen mit dem Nominatim-Dienst. Dies ist ein Dienst der auf Open Street Map API basiert.

# importiere Geopy
import geopy
# referenz für den Nominatim-Dienst erhalten
service = geopy.Nominatim(user_agent = "myGeocoder")
# Nomiatim-Diest für Geokodierungsprozess anwenden
service.geocode("Berlin, Germany")
Location(Berlin, Deutschland, (52.5170365, 13.3888599, 0.0))

Die Funktion geocode() gibt einen speziellen Datentyp vom Typ location zurück. Ein Standortobjekt hat verschiedene Attribute:

# Erstellen eines weiteren Standortobjekts durch Geokodierung des Berliner Städtenamens in Deutschland mithilfe des Nominatim-Dienstes
locationObj = service.geocode("Berlin, Germany")
# latitude
print(locationObj.latitude)
# longitude
print(locationObj.longitude)
52.5170365
13.3888599

Unter Verwendung dieser Längen- und Breitengrad-Coodinate könnte man nun z.B. Platzieren Sie eine Markierung auf einer Karte, indem Sie das Folium-Modul in Python in Kombination mit Geopy verwenden:

# importiere folium
import folium
# erstelle eine Karte mit Zentrum in Berlin
mapObj = folium.Map(location = [locationObj.latitude,locationObj.longitude], zoom_start = 5)
# erstelle eine Markierung für Berlin
markerObj = folium.Marker(location = [locationObj.latitude,locationObj.longitude])
# füge Markierung der Karte hinzu
markerObj.add_to(mapObj)
# zeige Karte mit Markierung an
mapObj

You May Also Like

Leave a Reply

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.