Beim Ausprobieren der Turbo Overpass API kam mir der Gedanke, die Schnittstelle doch einmal praktisch zu nutzen. Als Thema kam mir eine Karte für Böhmisches Mittelgebirge in den Sinn. Keine „richtige“ Karte, viel mehr eine Dokumentation des letzten Ausfluges in diese wunderschöne Gegend.
Der erste Schritt wäre ein kleiner Entwurf. Der soll hier zumindest kurz in guter kartographischer Praxis in Stichpunkten festgehalten werden:
- Karteninhalt
- Flüsse (Elbe, Eger, Biela)
- markante Gipfel (Milleschauer, Rannyaer Berg, Lobosch)
- größere Städte (Usti, Lovosice, Louny)
- Bahnstrecken
- Kartenausschnitt und Projektion
- Süderlicher Teil des Böhmischen Mittelgebirge
- A5-Format
- Webmercator (EPSG:3857)
Abfrage der Daten
Also an die Arbeit, den Entwurf in Abfragen umzusetzen. Für die Flüsse empfiehlt es sich in diesem Maßstab auf die Ways zu setzen und nicht auf die Flächen. Daher lautet die Abfrage wie folgt:
[out:json][timeout:25]; // gather results ( // query part for: “Flüsse” way["waterway"="river"]({{bbox}}); ); // print results out body; >; out skel qt;
Praktisch sieht das dann wie in der folgende Abbildung aus. Daran schließt sich der Export an. Als passendes Format bietet sich GeoJSON an. Beim abspeichern am besten gleich umbenennen, ehe das Chaos Einzug hält!
Auf zum nächsten Punkt – den Gipfeln. Die Abfrage dafür ist denkbar einfach. Man sucht nach den Peaks im ganzen Ausschnitt. Die Überraschung folgt so gleich. Es gibt sehr viel Berggipfel. Hier wird später eine manuelle Auswahl erfolgen müssen.
[out:json][timeout:25]; // gather results ( // query part for: “Gipfel” node["natural"="peak"]({{bbox}}); ); // print results out body; >; out skel qt;
Wieder abspeichern und richtig benennen. Damit wäre schon mal die Hälfte geschafft. Es folgen die etwas komplizierteren Abfragen. Man könnte ja nach kleineren (place=town) und größeren Städten (place=city) getrennt such. Aber es geht ja auch in einer Abfrage. Ein kleiner Stolperstein ist der Vergleichsoperator. Das dieser in dem Fall kein „=“ sein kann ist eigentlich nur logisch. Aber eben erst auf den zweiten Blick.
[out:json][timeout:25]; // gather results ( // query part for: “Städte” node["place"~"town|city"]({{bbox}}); ); // print results out body; >; out skel qt;
Damit wäre dann auch nur noch ein Punkt der Liste übrig: die Eisenbahnlinien. Nun wären alle Features des Bahnnetzes schon wieder zu viel des Guten. Also wäre hier eine Vorauswahl ebenfalls angebracht. Im usage-Tag verbirgt sich die Information über die Nutzung. Hier auf main und branch (in etwa Haupt- und Nebenbahn) zu setzen, erscheint mir als eine gute Lösung. Wie man sieht, kann man auch einfach die Abfragen nach mehrer Tags miteinander verknüpfen. Die Anfrage liefert ein paar mehr Daten zurück, worauf hingewiesen wird. Weitermachen ist gar kein Problem. Abspeichern und damit wären alle Geodaten beisammen.
[out:json][timeout:25]; // gather results ( // query part for: “Haupt- und Nebenbahnen” way["railway"="rail"]["usage"~"main|branch"]({{bbox}}); ); // print results out body; >; out skel qt;
Visualisierung in QGIS
Der nächste Schritt ist die Visualisierung in QGIS. Das einladen der Dateien ist schnell erledigt. Die Projektion kann „On-the-Fly“ angepasst wären und die Unterteilung in mehre Klassen ist ebenfalls schnell erledigt. Das Problem mit den vielen Gipfeln lässt sich durch eine Definitionsabfrage für den Layer peak lösen:
"name:de" IN ('Milleschauer', 'Lobosch', 'Rannayer Berg')
Nicht so einfach lassen sich dagegen andere Probleme lösen, wie Beispielsweise die zweigleisigen Bahnlinien und das Gleisgewirr in den Bahnhöfen. Hier ist für eine gute kartographische Darstellung noch Bearbeitung nötig. Die Schriftplatzierung lässt sich mit Regeln einfach lösen. Hier ist aber zumindest die Korrektur einiger Positionen recht schnell möglich.
Eine potenzielle Karte könnte dann in etwa so wie die Unterstehende aussehen. Zugegebener Maßen gefällt mir diese Zusammenstellung noch nicht besonders gut. Wirkt sie doch noch sehr kalt und etwas lieblos. Aber sie zeigt sehr gut, wie man in relativer kurzer Zeit aus Openstreetmap eine einfach Kartendarstellung erzeugen kann.
Hinweise
Hilfreiche Links:
Zu guter letzt noch ein Hinweise aus eigener Erfahrung: Firefox verschluckt sich gerne mal bei größeren Datenmengen bei Overpass Turbo. Abwarten ist eine Lösung. Oder man versucht es mal mit Chrome.
Schreibe einen Kommentar