Kreuzungen extrahieren

Liebes Forum,

für eine wissenschaftliche Untersuchung von Verkehrsunfällen benötige ich ein Layer mit allen (Straßen-) Kreuzungen Braunschweigs.

Im Wiki https://wiki.openstreetmap.org/wiki/DE:Bearbeitungsstandards_und_-konventionen sind Kreuzungen so definiert:

Kreuzung

Meine Idee ist den Node, der auf beiden Straßen liegt, zu extrahieren. Das natürlich für die gesamte Stadt.

Online, in der Bearbeitungsansicht sind diese Nodes auch zu erkennen, z.B. in diesem Ausschnitt: https://www.openstreetmap.org/edit#map=19/52.25280/10.46551

Wenn ich diesen Ausschnitt allerdings mittels Exportansicht herunterlade, also hier: https://www.openstreetmap.org/export#map=19/52.25280/10.46551,
und in QGIS importiere (mittels Layer → Layer hinzufügen → Vektorlayer hinzufügen), kann ich alles finden, außer die Nodes die ich brauche.

Git’s da einen Trick?

Oder eine andere Methode Straßenkreuzungen zu extrahieren?

Was ich schon probiert habe:

Alle Linien mit einem Eintrag bei “highway” extrahieren und deren Überschneidungen als Punkt nutzen. Das Problem: bei Unterführungen und Brücken entsteht so auch eine Kreuzung.

Alle Punkte mit tag “crossing=*” extrahieren. Das passt aber nicht. Auf kleinen Straßen gibt es solche Punkte häufig nicht.

Alle Punkte mit tag “junction=” stellen nur Verkehrskreisel dar.

Ach du liebe Güte, was ist denn in Braunschweig passiert? Da hat ein User scheinbar überall Gehwege separat gemappt. Die sind auch nicht bzw. kaum mit den Straßen verbunden.
https://www.openstreetmap.org/way/526422311 als eines von zig Beispielen.

So, zum Thema.

Hallo!
Vielleicht gibt es da was mit Overpass Turbo, aber ich vermute eher nicht.

Spontaner Ansatz: Wege bestehen aus einer Liste von Punkten. Eine Kreuzung besteht im einfachsten Fall aus zwei Wegen, die denselben Punkt haben, z. B.: https://www.openstreetmap.org/node/27375034
Du könntest dir also einen Datenextrakt runterladen und alle Wege danach filtern, ob sie für dich interessant sind (Gebäude interessieren vielleicht nicht, sind aber auch aus Wegen gebaut). Und dann schaust du für alle Punkte, zu welchen Wegen diese gehören. Das sind dann deine Kreuzungen.

Nein, sie stellen allgemein Kreuzungen dar, sind aber nicht erforderlich und daher längst nicht an jeder Kreuzung getaggt. Wenn z.B. eine Straßenkreuzung einen Namen hat, dann wird junction=yes als physisches Tag zusätzlich zum name=* getaggt, damit klar wird, das es die Kreuzung ist, die den Namen trägt. Kleine Kreuzungen auf englischen Landstraßen haben oft Namen, die sogar auf Wegweisern stehen können.

Große Kreisel (Insel nicht überfahrbar) werden in OSM als Way erfasst, mit junction=roundabout. Kreisverkehre gelten also in OSM (IMHO sinnvollerweise) als spezielle Bauform einer Kreuzung. Es gibt noch andere, siehe key:junction im Wiki.

Minikreisel (Insel überfahrbar) sind Punkte mit highway=mini_roundabout (weiß der Kuckuck, wieso nicht junction=mini_roundabout).

Nö. Das ist ein Fußgänger- oder Radfahrerüberweg.

Kreuzungsverbundene Wege haben immer einen gemeinsamen Node (also Punkt). Höhenfrei kreuzende Wege dürfen keinen gemeinsamen Node haben.

Dein Ansatz sollte sein: alle Nodes raussuchen, die eine Kreuzung darstellen. Ein solcher Node gehört auch bei einer simplen X-Kreuzung je nach Laune des Mappers oder örtlichen Gegebenheiten zu zwei bis vier Ways:

      2                  2                2
      |                  |                |
-1----o-----1-     -1----o----1-    -1----o----3-
      |                  |                |
      2                  3                4

Als nächstes musst du für jeden Fall die Ways analysieren. Gehört der Node zu drei oder mehr Ways mit highway=(primary bis unclassified), dann ist es mit Sicherheit eine Kreuzung/Abzweigung – kann aber auch nur eine Aufspaltung eines Straßen-Ways in zwei Einzel-Ways sein (bauliche Trennung). Gehört er nur zu zwei Ways, musst du schauen, ob er für beide ein Endpunkt ist - wenn ja, ist dort nur ein Way-Übergang in einer durchgehenden Straße, keine Kreuzung.

Dabei auch an _link denken – bei baulich aufgetrennten Kreuzungen sind die Einzelspuren oft als _link getaggt. Sind beide Fahrbahnen baulich getrennt, bekommst du 4 Nodes und 4–12 Ways für eine Kreuzung:

      2  3
      |  |
-1----o--o-----4-
      |  |
-8----o--o-----5-
      |  |
      7  6    

So ganz trivial ist das jedenfalls nicht :slight_smile:

–ks