Python: Beliebige Lat/Lon-Strings mit GeoPy parsen

English Deutsch

Bei der Arbeit mit benutzereingegebenen Koordinaten hast du oft Strings wie N 48° 06.976 E 11° 44.638, 48°06'58.6"N 11°44'38.3"E oder N48.116267, E11.743967. Diese Lat/Lon-Koordinaten kommen in vielen, vielen verschiedenen Formaten, was das Parsen in einem automatisierten Kontext recht schwierig macht.

Eine einfache Lösung für Python ist die Verwendung von geopy, das Zugriff auf eine Reihe von Online-Diensten wie ArcGIS bietet. Diese Dienste machen es einfach, so ziemlich jedes Koordinatenformat zu parsen. Du kannst geopy installieren mit

install_geopy.sh
pip install geopy

Beachte, dass Nominatim für den reinen Koordinaten-Anwendungsfall nicht funktioniert — es parst die Koordinaten zwar korrekt, gibt aber das nächstgelegene Gebäude / die nächstgelegene Adresse zurück.

geopy_parse_example.py
from geopy.geocoders import ArcGIS

geolocator = ArcGIS()

result = geolocator.geocode("N 48° 06.976' E 11° 44.638'")

Falls die Koordinaten nicht geparst werden können, ist result None

Danach kannst du auf folgende Weise mit dem Ergebnis arbeiten:

print(result) gibt einfach das Ergebnis aus:

geopy_print_result.txt
>>> print(result)
Location(Y:48.116267 X:11.743967, (48.11626666666667, 11.743966666666667, 0.0))

Du kannst Breiten- und Längengrad über result.latitude und result.longitude extrahieren.

geopy_coords_example.py
>>> print(result.latitude, result.longitude)
(48.11626666666667, 11.743966666666667)

Weitere Möglichkeiten, mit diesen Koordinaten zu arbeiten, findest du in der geopy-Dokumentation.


Check out similar posts by category: Geography, Python