Python: Beliebige Lat/Lon-Strings mit GeoPy parsen
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
pip install geopyBeachte, 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.
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:
>>> 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.
>>> print(result.latitude, result.longitude)
(48.11626666666667, 11.743966666666667)Weitere Möglichkeiten, mit diesen Koordinaten zu arbeiten, findest du in der geopy-Dokumentation.