Feedback zu SVG-Querschnitt für Tag-Auswahl gesucht (Weg C → Weg A → Weg B; Zeichen 240 / 237 / 241-30)

Kurzfassung :

Hallo zusammen,
ich entwickle eine App, die Straßenquerschnitte als SVG darstellt und daraus OSM-Tags vorschlägt. Ich bitte um Feedback zur Verständlichkeit und zur passenden OSM-Modellierung.

Bild (links → rechts):
Weg C: kombinierter Geh-/Radweg (Z 240) → Grünstreifen → Radweg (Z 237) → Trennlinie/Markierung zur Fahrbahn (unbekannt)
Weg A: Busspur + PKW-Spur in Gegenrichtung
Weg B: Grünstreifen → getrennter Rad-/Gehweg (Z 241-30)

Fragen:

  1. Separate Ways für Weg C/B oder alles am highway=*-Way (ggf. splitten wegen 240→237)?

  2. Bei Z 241-30: highway=path + segregated=yes oder zwei Ways (cycleway + footway)?

  3. Busspur: welches *:lanes=*-Schema ist üblich?

  4. Mittlere Markierung: wird das gemappt, und wenn ja, wie?

Skizzen/Beispiele typischer Querschnitte mit Tag-Liste sind willkommen.

Ausführlich:
Hallo zusammen,
ich entwickle eine Handy-App, die reale Straßen- und Wegesituationen mit schematischen SVG-Querschnitten vergleicht. Auf Basis des passenden Schemas werden OSM-Tags vorgeschlagen. Beim Tagging bin ich noch unsicher und möchte Feedback, ob das Schema verständlich ist und wie es in OSM sinnvoll modelliert werden kann.

1) Was zeigt das Bild? (von links nach rechts)

Ich unterscheide drei Bereiche: Weg C, Weg A, Weg B (von links nach rechts).

Weg C (links) – Nebenanlagen

  1. Kombinierter Geh- und Radweg (gemeinsame Führung) → StVO Zeichen 240

  2. Grünstreifen / Trennstreifen

  3. Radweg → StVO Zeichen 237

  4. Danach folgt eine Markierung/Trennlinie zur Fahrbahn. Gemeint ist eine Linie, die sinngemäß „einseitig überfahrbar“ ist. Unklar ist mir, wie diese Markierung StVO-seitig korrekt heißt und ob sie in OSM üblicherweise erfasst wird.

Weg A (Mitte) – Fahrbahn

  1. Busspur / Sonderfahrstreifen (Bus-Symbol)

  2. PKW-Fahrstreifen (MIV) in Fahrtrichtung

Weg B (rechts) – Nebenanlagen

  1. Grünstreifen / Trennstreifen

  2. Getrennter Rad- und Gehweg → StVO Zeichen 241-30

2) Wofür brauche ich Feedback?

A) Verständlichkeit des SVG
Ist das Schema als Querschnittsbeschreibung eindeutig? Welche Details sind missverständlich oder sollten anders dargestellt werden?

B) Modellierung/Tagging in OSM
Ich schwanke zwischen zwei Ansätzen:


Ansatz 1: Alles am Straßen-Way (Lane-/Side-Attribute)

Idee: Nur ein highway=*-Way für die Straße; Busspur und Nebenanlagen werden über Attribute beschrieben.
Problem: Links gibt es nacheinander Zeichen 240 und Zeichen 237. Das sind unterschiedliche Führungen entlang derselben Seite; dafür müsste der Straßen-Way ggf. abschnittsweise gesplittet werden.

Diskussionsfrage: Ist das in diesem Fall sinnvoll, oder spricht das für separate Ways?

Beispiel (nur als Ausgangspunkt, Werte je nach Realität):

highway=*
lanes=2
bus:lanes=designated|no
psv:lanes=designated|no
vehicle:lanes=no|yes


Ansatz 2: Separate Ways für Weg C und Weg B, Fahrbahn separat

Idee:

  • Weg A (Fahrbahn) bleibt highway=* mit lanes=* und Busspur über *:lanes=*.

  • Weg C und Weg B werden als eigene Ways gemappt, weil die Beschilderung (240/237/241-30) direkt dafür gilt.

Tagging-Startpunkte als Diskussionsbasis:

Weg A (Fahrbahn):

highway=*
lanes=2
bus:lanes=designated|no
psv:lanes=designated|no
vehicle:lanes=no|yes

Weg C links – Abschnitt mit Zeichen 240 (gemeinsam):

highway=path
foot=designated
bicycle=designated
segregated=no
traffic_sign=DE:240

Weg C links – Abschnitt mit Zeichen 237 (Radweg):

highway=cycleway
bicycle=designated
traffic_sign=DE:237

Weg B rechts – Zeichen 241-30 (getrennt):
Variante B1 (ein Way, getrennte Bereiche):

highway=path
foot=designated
bicycle=designated
segregated=yes
traffic_sign=DE:241-30

Variante B2 (zwei Ways):

highway=cycleway
bicycle=designated
traffic_sign=DE:241-30

highway=footway
foot=designated
traffic_sign=DE:241-30

3) Konkrete Fragen

  1. Sollten Weg C und Weg B wegen der Beschilderung als separate Ways gemappt werden, oder ist „alles am Straßen-Way“ gängiger?

  2. Bei Zeichen 241-30: ist highway=path + segregated=yes üblich, oder werden zwei Ways bevorzugt?

  3. Busspur: welches Lane-Tagging ist im deutschen OSM-Kontext am gebräuchlichsten?

  4. Mittlere Markierung: wird das üblicherweise erfasst, und falls ja, wie?

Wenn es Beispiele oder einfache Skizzen typischer Querschnitte mit Tag-Liste gibt, wären diese sehr hilfreich. Daraus können weitere SVG-Vorlagen für die Tag-Auswahl entstehen.

Vielen Dank und viele Grüße
Lutz

Viele Fragen, alles ziemlich kompliziert. Aber schön, dass du dich damit befasst!

Was sollen die Pfeile in der Grafik darstellen? Ich hätte Fahrtrichtung gedacht, aber beim Gehweg sind grundsätzlich beide erlaubt, also etwas verwirrend.

Zu den verschiedenen Möglichkeiten, Radwege zu taggen, gibt es DE:Bicycle/Radverkehrsanlagen kartieren - OpenStreetMap Wiki im Wiki. Definitiv lesenswert. Für das Tagging von Spurwechseln empfiehlt sich Key:change - OpenStreetMap Wiki.

Falls du dich auch an Lanetagging wagen willst: Key:lanes - OpenStreetMap Wiki

Mir gefällt die Idee deiner App. In JOSM kann man sich die einzelnen Fahrspuren anzeigen lassen. Ob DE:Josm/styles/lane features - OpenStreetMap Wiki noch aktuell ist, kann ich allerdings nicht sagen, da ich JOSM nur selten nutze. Deine App geht wohl eher in Richtung StreetComplete, was für den Einsteiger etwas leichter zu handhaben sein dürfte.

Im Folgenden nun meine Antwort auf deine Fragen.


Grundsätzlich verständlich, allerdings würde ich die Abgrenzung klarer definieren und anhand der baulichen Trennung festmachen. Bauliche Trennung bedeutet in OSM einen separaten Way, weshalb sich das hier anbietet. Ohne bauliche Trennung kommt alles an den gleichen Way.

Insofern wäre das hier meine Einteilung:

Weg C (links) – Nebenanlagen

  1. Kombinierter Geh- und Radweg (gemeinsame Führung) → StVO Zeichen 240
  2. Grünstreifen / Trennstreifen

Weg A (Mitte) – Fahrbahn

  1. Radweg → StVO Zeichen 237
  2. Danach folgt eine Markierung/Trennlinie zur Fahrbahn. Gemeint ist eine Linie, die sinngemäß „einseitig überfahrbar“ ist. Unklar ist mir, wie diese Markierung StVO-seitig korrekt heißt und ob sie in OSM üblicherweise erfasst wird.
  3. Busspur / Sonderfahrstreifen (Bus-Symbol)
  4. PKW-Fahrstreifen (MIV) in Fahrtrichtung

Weg B (rechts) – Nebenanlagen

  1. Grünstreifen / Trennstreifen
  2. Getrennter Rad- und Gehweg → StVO Zeichen 241-30

Anmerkung: Der Grünstreifen kann von der Idee her auch separat eingezeichnet werden, also eigentlich 5 Ways.

Tagging

Wie sind die 3 Ways zu taggen? Zugegeben, das VZ 237 in Kombination mit VZ 240 irritiert mich etwas. Aber gut, kann vorkommen.

Weg C

highway=path
segregated=no
foot=designated
bicycle=designated
oneway:bicycle=yes
traffic_sign=DE:240

Weg A

Anmerkung: Der OSM-Way ist von unten nach oben angenommen.
Anmerkung 2: Ich gehe davon aus, dass die Grafik korrekt ist und vom Radweg nicht auf die Fahrbahn gewechselt werden darf. Ebenso sieht es so aus, dass auf der Busspur MIV fahren darf.
Anmerkung 3: Im *:lanes Schema sind die Radwege mit enthalten, bei lanes aber nicht.

highway=residential/tertiary/secondary/primary/unclassified
cycleway:left=lane
cycleway:left:lane=exclusive
cycleway:right=separate
lanes=2
bus:lanes:backward=designated|no
change:lanes:forward=no
change:lanes:backward=not_right|no

Weg B

highway=path
segregated=yes
foot=designated
bicycle=designated
oneway:bicycle=yes
traffic_sign=DE:241-30
1 Like

Danke für deine Antwort und die Links, ich habe das Bild jetzt vereinfacht, weniger Details.

Genau richtig gedacht, sie sind für die Fahrtrichtung gedacht.
Nur noch einmal meine Einteilung:

Weg C (links) – Nebenanlagen

  1. Kombinierter Geh- und Radweg (gemeinsame Führung) → StVO Zeichen 240
  2. Grünstreifen / Trennstreifen
highway=path
segregated=no
foot=designated
bicycle=designated
oneway:bicycle=yes
traffic_sign=DE:240

Weg A (Mitte) – Fahrbahn

  1. Radweg → StVO Zeichen 237 auf der Fahrbahn

  2. Danach folgt eine Markierung/Trennlinie zur Fahrbahn. → StVO Zeichen 296

  3. Busspur / Sonderfahrstreifen (Bus-Symbol) → StVO Zeichen 245

  4. PKW-Fahrstreifen (MIV) in Fahrtrichtung

highway=residential/tertiary/secondary/primary/unclassified
cycleway:left=lane
cycleway:left:lane=exclusive
cycleway:right=separate
lanes=2
bus:lanes:backward=designated|no
change:lanes:forward=no
change:lanes:backward=not_right|no

Weg B (rechts) – Nebenanlagen

  1. Grünstreifen / Trennstreifen

  2. Getrennter Rad- und Gehweg → StVO Zeichen 241-30

highway=path
segregated=yes
foot=designated
bicycle=designated
oneway:bicycle=yes
traffic_sign=DE:241-30

Ich bin mir aber immer noch nicht sicher, ob ich solche Bilder als kompakte Ansicht verwenden sollte. Das Nächste Bild zeigt meinen tampermonkey-Injektor , mit denen ich den SVG-Code in die Bilder einfüge.

Auf jeden Fall habe ich zunächst die SVG-Dateien erstellt und die Wege klassifizieren.

:one: Zeichen 244.1 – „Fahrradzone“, Zeichen 237 – „Radweg“ separater Weg
:two: Zeichen 244.1 – „Fahrradstraße“, Zeichen 237 – „Radweg“ auf Straße
:three: Zeichen 242.1 – „Fußgängerzone“, Zeichen 239 – „Gehweg“
:four: Zeichen 240 – „Gemeinsamer Geh- und Radweg“
:five: Zeichen 241-30 – „Getrennter Geh- und Radweg“**
:six: Zeichen 241-31 –** „Getrennter Geh- und Radweg“**
:seven: Zeichen 250 –** „Verbot für Fahrzeuge aller Art“, Zeichen 1026-36 – „Landwirtschaftlicher“ Verkehr frei, Zeichen 1020-12 „Radfahrer und Anlieger frei“
Das bezieht sich auf den Fahrbahnuntergrund!

Während ich das erstellt habe, kam mir der Gedanke, man könnte in den SVG-Dateien bei der ID direkt den Typ angeben und bei der Klasse (class) die verschiedenen OSM-Tags. Dadurch ließen sich aus dem Bild direkt die entsprechenden Tags übermitteln und auslesen.
[SVG-Code]
rect fill=“FireBrick” width=“50” height=“300” x=“0” y=“0” id=“DE244-1” style=“stroke-width: 1;” class=“bicycle_road=yes bicycle=designated vehicle=no maxspeed=30 highway=*”>
desc>bicycle_road=yes
bicycle=designated
vehicle=no
maxspeed=30 /desc>
/rect>
[/SVG-Code]
Ich hoffe es ist nicht schon wieder zu lang zum lesen.
Es wurde keine KI benutzt!
Gruß Lutz

In meiner Gegend kommen innerorts vor allem Gehwege mit “Rad frei” (Zeichen 239 + 1022-10) vor, falls Du die mit berücksichtigen möchtest:

highway=footway
foot=designated
bicycle=yes
maxspeed:bicycle=walk
oneway:bicycle=yes/no

Aus meiner Sicht nicht ganz richtig. Das Verkehrszeichen gilt nur in eine Richtung → traffic_sign:forward=*. traffic_sign (ohne Richtungsangabe) interpretiere ich als beidseitig. Also:

Zeichen 240 beidseitig für beide Richtungen:

oneway:bicycle=no
traffic_sign=DE:240

Zeichen 240 nur auf einer Seite in Richtung der Linie:

oneway:bicycle=yes
traffic_sign:forward=DE:240

Gemeinsamer Geh- und Radweg (240) zusammen mit einem parallelen Radweg (237) macht übrigens keinen Sinn. Das sollte es doch nicht geben, oder? Welcher Weg wäre dann benutzungspflichtig?

Die Radwegbenutzungspflicht ist nach StVO so definiert:

Der Radverkehr darf nicht die Fahrbahn, sondern muss [den Radweg] benutzen (Radwegbenutzungspflicht).

Insofern würde ich denken, dass beide zulässig sind? Man darf nur nicht auf der Fahrbahn fahren, da sind sich beide einig.
Eine strikte Interpretation würde bedeuten, dass man beide Wege nutzen müsste aka man darf da einfach gar nicht lang.
Bis zum Beweis des Gegenteils würde ich aber auch davon ausgehen, dass derartige Beschilderungen nicht existieren.

Sieht jetzt besser aus.

Der Fahrbahn könnte man noch ein

access:lanes:backward=no|no
bicycle:lanes:backward=no|designated

hinzufügen, um darzustellen, dass dort kein MIV zugelassen ist.

Von SVG hab ich nicht wirklich Ahnung, da kann ich dir nicht weiterhelfen. Sieht aber ganz schön aus.

Danke für deine Rückmeldung!

Ich möchte kurz erklären, was es mit SVG-Dateien auf sich hat, weil viele gar nicht wissen, wie dieses Format funktioniert.

SVG steht für Scalable Vector Graphics. Es handelt sich dabei um ein Textformat, ähnlich wie HTML, mit dem man Bilder durch sogenannte Vektoren beschreibt. Diese Vektoren bestehen aus Linien, Flächen und Punkten, die sich beliebig kombinieren lassen und zusammen ein Bild ergeben – ähnlich wie bei einer Landkarte.

Der große Vorteil: SVG-Bilder sind verlustfrei skalierbar. Egal, ob man sie stark vergrößert oder verkleinert, sie bleiben immer gestochen scharf. Das unterscheidet sie von Pixelgrafiken, die beim Vergrößern unscharf werden.

Technisch läuft es so: Eine SVG-Grafik hat ein Koordinatensystem, das standardmäßig links oben bei (0,0) beginnt und sich nach rechts und unten erweitert. Objekte können auf der Zeichenfläche platziert, verschoben, gedreht oder skaliert werden – das geschieht über sogenannte Transformationen. Diese legen fest, wie sich ein Objekt relativ zu seinem Ursprungspunkt bewegt.

In der Struktur ähnelt SVG einer kleinen Webseite: Man verwendet Tags, zum Beispiel <rect> für ein Rechteck oder <circle> für einen Kreis. Diese Tags besitzen Attribute wie x, y, cx, cy (Position), fill (Flächenfarbe), stroke (Linienfarbe) oder stroke-width (Linienbreite). So lassen sich Formen direkt im Code beschreiben oder über CSS gestalten.

Ich habe selbst einige Zeit gebraucht, um die Logik hinter SVG zu verstehen, insbesondere die Sache mit den Transformationen. Im Prinzip kann man mit SVG aber ganze Layouts oder Karten darstellen – OpenStreetMap nutzt das beispielsweise, um Karten im Browser zu zeichnen.

Mittlerweile nutze ich meinen Tampermonkey-Injektor, um kleine Vektorgrafiken direkt auf die Grundfläche (Box) einzufügen. (Alles was außerhalb der Box liegt, wird nicht angezeigt). Deshalb verwende ich dafür das Programm Boxy SVG, das mir eine Bearbeitungsoberfläche (Box) bietet, in der ich die Eigenschaften (Properties) der Objekte sehr einfach einfügen und anpassen kann. Mit einem weiteren Programm von mir hole ich anschließend die Transformationsdaten sauber aus dem Bild heraus, sodass am Ende eine saubere und klare Vektorgrafik entsteht.

Wenn man eine SVG-Datei nicht nur als Bild, sondern als Informationsdatei betrachtet, kann man darin sehr viele strukturierte Daten einbetten. Diese können teilweise die Rolle einer Datenbank übernehmen, wodurch sich Daten unmittelbar im Bild selbst bereitstellen lassen. Dadurch fallen längere Ladezeiten oder Datenbankabfragen weg – das Anzeigeergebnis ist schneller und ressourcenschonender.

Grüße