Landkreise (Kantone, Provinzen, ...) aus GPX-Datei ermitteln

Hallo zusammen,

kennt jemand ein (natürlich OSM-basierendes) Tool, dem man eine GPX/KML-Datei verfüttert und das einem dann anzeigt, welche administrative Flächen (welcher Art auch immer, definiert durch den “admin_level”) dabei “durchlaufen” werden? Also sowas wie (in Deutschland):

Input:
  test.gpx
  admin_level=6

Output:
  Landkreis Karlsruhe
  Landkreis Rastatt
  Ortenaukreis

Oder in der Schweiz:

Input:
  test.gpx
  admin_level=4

Output:
  Aargau
  Thurgau
  Schaffhausen

Ersatzweise auch ein Programm/Script, das das Ganze für einen einzelnen Punkt macht und das man dann eben punktweise mittels PowerShell, Python o. ä. für die ganze GPX/KML-Datei aufrufen könnte (wenn ein Tool die gesamte GPX/KML-Datei verarbeiten könnte, würde es auch ein Webdienst tun).

Danke :slightly_smiling_face:

Wenn du die Umrisse der Verwaltungseinheiten in einem üblichen Geoformat hast, geojson z.B., dann kannst du das mit QGIS machen. Dazu lädt man den GPX-Track und die Umrisse als Ebenen und wendet das Datenmanagement-Werkzeug Attribute nach Position zusammenfügen darauf an. Man erhält einen Layer mit den Umrissen der Verwaltungseinheiten, welche der Track berührt. Daraus kann man natürlich auch deren Namen extrahieren.

Eine ausbaufähige overpass Abfrage, die den Landkreis zu einem vorgegebenen Punkt ausgibt:
// suche Landkreis für Punkt 50.7,7.2
[out:csv(name)];
is_in(50.7,7.2);
area._[admin_level=“6”] → .a;
rel(pivot.a);
out ;

Ausgabe:
name
Rhein-Sieg-Kreis

1 Like

Ja, das geht schon in die Richtung, die mir vorschwebt. Mal gucken, wie ich das nutzen kann (habe bislang nur Overpass Turbo benutzt und mir damit was zusammengestoppelt, das immerhin die Grenzen erzeugt, das kann ich dann als GPX exportieren und zusammen mit der GPX-Datei in JOSM importieren, doch das ist eben manuelles Ablesen).

Danke schon einmal! :+1: Wenn es noch eine Möglichkeit gäbe, statt eines Punktes eine ganze GPX-Datei zu verfüttern, ohne für jeden Punkt eine eigene Abfrage zu starten (mag sowas der Overpass-Server überhaupt?), doch das scheint Overpass QL auf den ersten Blick nicht herzugeben.

Das ganze lässt sich auch auf mehrere Punkte erweitern:
// suche Landkreis für Punkte
[out:csv(name)];
(is_in(50.7,7.2); is_in(48.9,9.2);is_in(50.9,9.2);)-> .b;
area.b[admin_level=“6”] → .a;
rel(pivot.a);
out ;

Ausgabe:
name
Landkreis Ludwigsburg
Rhein-Sieg-Kreis
Schwalm-Eder-Kreis

Die overpass API lässt sich gut mit python auslesen, bei Interesse bitte eine PN mit email Adresse.

1 Like