Komplizierte Kreuzungen zum Testen des Area=highway

Naja, er könnte sie ignorieren, wenn, wie gefordert, eine Kreuzungsfläche vorhanden ist, an die die higways davor münden. Dann kann der Router nämlich einfach von jedem eintreffenden zu jedem abgehenden highway routen, soweit das nicht durch restrictions verboten ist. Hat aber einen Nachteil: Wir brauchen auch dann restrictions für die highways, wenn die Situation aus den Spuren bereits klar wird.

Diese Art des Mappings hat natürlich noch weitere Vorteile: Man kann sich sogar aussuchen, wie detailiert geroutet werden soll: “Nur” abbiegen an der Kreuzung, mit Spur-Ansage oder bei jedem Fahrstreifenwechsel.

Vorschlag:
Sollten wir “offiziell” vorschlagen, bei den Überprüfungswerkzeugen wie keepright Ausnahmen von der Regel “keine kreuzenden highways ohne gemeinsamen Node” bei allen primary_link und niedriger (also alle links ohne motorway_link) einzuführen? Das würde in jedem Fall die Flut an nötigen turn restrictions eindämmen und hat auch keine negativen Auswirkungen auf das routing.

Ich halte es für sinnvoll, allerdings sollte zugleich eine Informationskampagne gestartet werden: viele User lesen die Forumbeiträge nur sporadisch. Ich dachte auch, während des Treffens in Garching könnten wir eine kleine Spezifikation erarbeiten und diese verbreiten.

Doppelmapping (simpel und detailliert) finde ich genauso schwer wartbar wie die zusammengetackerten Spuren mit den Restrictions.

Komplett neue Tags finde ich problematisch, da man hier die gesamten Toolchains für alles (Editoren, Rendering, Routing, Validierungstools, Konverter in anwendungsspezifische Formate) anpassen muss - meist in Richtung “secondary_link wird in secondary umgebogen, die Zusatzinfo verworfen” - also nur Aufwand ohne Gewinn.
Ein zusätzliches Tag wie “lane=yes” (spontan erfunden) fände ich besser. Wer das auswerten will, kann es tun (noch gibt es soweit ich weiß nichts, was das tun würde). Wer das nicht will, dem geht auch nichts kaputt.
Ja, nur weil “irgendwas” kaputtgeht, müssen wir uns nicht völlig allen Innovationen verweigern. Ich sehe nur ein sehr, sehr schlechtes Kosten-Nutzenverhältnis. Wir “bekommen” damit weniger falsche Fehler in Validatoren. Wir “zahlen” aber damit, dass praktische alle produktiven Anwendungen kaputt sind und mit gewissem Aufwand angepasst werden müssen - man sieht ja immer wieder, was das für ein Problem ist, vor allem bei “schwierigen” Verantwortlichen.

Was keepright angeht, bin ich auch sehr dafür, nachzubessern. Die Kennzeichen für Spurmapping sind relativ eindeutig: viele kurze ways, meistens mit oneways-Tags, mit mindestens 2 anderen ways verbunden. Außerdem einige kreuzende Ways mit diesen Kennzeichen an einem Fleck. Damit ließe sich evtl. schon einiges an falschen Fehlern vermeiden.

Das Beispiel setzt für die Dtraße überwiegend die vereinfachte Variante, wei der die Fläache der Spur als Weg dargestellt wird um. Am Rande habe ich aber experimentell Fußwege + Landuse als Fläche gemappt und da im Grunde genau das umgesetzt, was du hier nachfolgend mit:

beschreibst, wobei ich denke das man auf Zusammenfassung der Spuren mit Relationen eher nicht versichten kann, da mußte man aber noch mal genauer drüber nachdenken. Die Spurflcähen sind mit den Linien in meinem Modell beliebig austauschbar.

Mist, an die Spuren als Flächen-Vollmapping im Kreuzungsbereich habe ich jetzt gar nicht gedacht, wenn die Flächen sich aber überlappen, könne man einfach die Spurflächen nacheinander gleich rendern und das ergibt dann die Fläche der Kreuzung.

Klar kann man auch die Alternative des Street-Area-Ansatzes umsetzen und die Straße dabei in zig Stücke teilen, aber der Ansatz geht immer davon aus, das die Spuren sich die zur Verfügung stehende Breite der Fläche symetrisch aufteilen und keine Spur smaler ist oder vielleciht noch ein paar Ausbuchtungen am Rand hat.

Das Lienenmodell ist nicht ungedingt as hochgenauer Rendervorlage gedacht, dafür sollten die Spuren flächig gemappt werden, sondern dafür, die Anzahl ud den ungefähren Verlauf der Spuren abzubilden. Zum rendern kann man die carraigeway-Relation der Spurwege nehmen, denn das ist schließlich die Fahrbahn, oder eben die highway-Reklation als Ersatz für den highway-Weg. Du tutst ja fast so, als würden die momentanen highway-Wege die genaue Straßengeometrie wiedergeben… Die lieneienhafte Umsetzung soll aber nur die Notlösung bei fehlenden ordentlichen Luftbildern sein und ich habe mir auch nicht extra besondere mühe gegeben die Wge für die Spuren extakt anzuordnen, da es mit mehr um die Idee an sich ging.

Soweit mir bekannt, ist area=highway ja die Abstraktion für die jeweilige Fahrbahn. Soll das jetzt gleichzeitig auch dfür benutzt werden um Spuren darzustellen? Gut, für OpenCarMap, mag das ausreciehn und was schert einen als Autofahren, ob die Fahrbahnen vielleicht in Wirklichkeit nur Fahrspuren sind, aber in Hinblick auf andere Anwendungen und auf die korrekte Abbildung der Realität, wo eben eine Fahrspur ja nun mal nicht das Gleiche ist wie eine Fahrbahn, kann ich diese Verwürfelung, wenn ich es jetztrichtig verstanden haben sollte, nicht begrüßen.

Klar, das sollte auf jeden Fall so umgestzt werden und entsprciht auch meinem vorgeschlagenen Schema. Außerdem macht man das ja bei Wege über z.B. landuse-Flächen schon jetzt so. Ein gemeinsamen Knotenpunkt heißt immer, das dort eine Wechsel möglich ist, wenn es keinen gibt, kann man da auch nicht wechseln, habe mich schon gewundert, warum man das beim bisherigen oneway=yes-Einzelspurmapping überhaupt so gemacht hat.

Solche Hacks kann man bei klassischem 2D-Rendering machen, aber für 3D-Geometrien oder auch z.B. saubere Vektorgrafiken will man das nicht haben. Da braucht man schon eine ordentliche Kreuzungsfläche.

Schmaler ist nicht zwangsläufig ein Problem - dafür gibt’s width - und solange nur eine Spur unregelmäßig ist (z.B. der Gehsteig) bekommt man das über Verteilung der “Restfläche” neben den Spuren mit Standardbreite schon auch hin.

Du hast trotzdem recht, dass die tag-basierte Spurdarstellung nicht wirklich für komplex geformte Straßen passt. Allerdings sind relativ parallel verlaufende Spuren wohl eher der Normalfall, so dass ich lieber ein paar fehlende Ausbuchtungen bei ungewöhnlichen Situationen in Kauf nehme als die unzähligen künstlichen Ausbuchtungen an eigentlich völlig geraden Straßenstücken, die durchs ungenaue Zeichnen von Spurways zustandekämen.

Wenn es nicht als Rendervorlage dient, hat es aber auch keinen Vorteil hinsichtlich der Ausbuchtungen etc., die du oben genannt hast.

Für die bloße Angabe von Anzahl und Art der Spuren würde ich sowohl beim Mappen als auch bei der Auswertung dann doch so was bevorzugen, statt die Information aus Ways zu rekonstruieren. Die carriageway-Relation hilft eventuell beim Verallgemeinern weiter, aber nicht beim spurgenauen Rendering.

Nein, das gibt die bestehende Konvention falsch wieder. Ein gemeinsamer Knotenpunkt heißt, dass dort eine physische Verbindung besteht (und die Straßen daher z.B. auf gleicher Höhe liegen). Das ist eine Voraussetzung dafür, dass ein Wechsel möglich sein kann, aber er muss keineswegs auch tatsächlich möglich sein - das ist dann abhängig von Tags und Restrictions.

Genauso wie man ja auch auf Bahnübergängen o.ä. gemeinsame Knoten setzt: Nicht um eine Wechselmöglichkeit auszudrücken, sondern zur Abbildung der physischen Kreuzung der Verkehrswege.

Natürlich wäre für Einzelspurmapping von Kreuzungen eine andere Konvention geeigneter. Da highway=* aber sowieso das falsche Tag für Einzelspurmapping ist, sind die Warnungen dort angebracht.

Es wird sich vorrobergehend aus meiner Sicht nicht vermeiden lassen, das man die alten highways zusätzlich zum neuen Schema noch mit in den Daten hat. Wenn das Schema erweiterbar udn damit dann auch leider komplizierter wird, braucht man langfristig dafür eh entsprechende Tool-Unterstützung. Schwer wartbar ist das nicht, weil die alten hiways sind/sollen ja noch zumindest so lange vorhanden sein, bis man das komplexe Spurmodell halbwegs fehlerfrei in die Datenbank gezaubert bekommt. Somit hat man sowieso doppelte Daten, bestenwalls benutzt man eine der neuen Spurwege als Ersatz für den alten highwy.

Nö, das Tag ist eine schamlose Raubkopie von https://wiki.openstreetmap.org/wiki/User:Fabi2/Generic_lane_model , ich werde gleich meine Anwälte auf dich hetzen. :wink:

Nein, es geht nichts kaputt und gezahlt wird eher mit Unübersichtlichkeit, Komplexität und der Notwendigkeit neuer Tools für das Spurmappingschema, aber kaputt geht nichts. Wie du ja auch vorgeschlagen hast, könnte man die alten highways teilweise auch als Spuren für das neue Schema recycklen, wo es paßt, nur ob es dadurch übersichtlicher wird, als wenn man die Sachen doppelt einträgt, sei mal dahingestellt.

Aus aktuellem Anlaß: Werbeblock für meinen Vorschlag (Link siehe oben). Den sollte man verbessern und z.B. die Kompatibilitätssacehn noch genauer ausarbeiten.

Ich meine das so: Wenn es nicht baulich getrennte Spuren sind, gibt es eine area und ein way. Der way ist mit entsprechenden lane:* Tags versehen um die Spuren wiederzugeben. Sind es baulich getrennte Spuren, so gibt es eine (oder mehrere, je nach Situation) Areas und in jedem “Ast” einen way, ggf. mit lane-Tags.
Damit ist sowohl die Geometrie (insbesondere Ausdehnung) durch die Area als auch die logischen Beziehungen durch die ways hinreichend wiedergegeben.

Wie gibst du da z.B. eine Fahrbahn mit 2 Spuren und einer Radspur wieder? Die zusätzliche Fahradspur soll dabei aus einem einmündenden, baulich getrennten, Radweg hervorgehen.

Es reicht, wenn die Ausdehnung, also die Spurfläche, und die gemeinsamen Kanten (d.h., genauer: ein Weg mit min. 1 gemeinsamen Knoten) der möglichen Übergänge für bestimmte Verkehrsteilnehmer zu anderen Flächen definiert sind. Das erfüllt den gleichen Zweck wie deine zusätzlichen highways, welche man konstruieren kann, indem man z.B. die Mittelpunkte der Knoten der gemeinsamen Grenzwege bestimmt und miteinander verbindet. Ob man dann als Verkehrsteilnehmer x zwischen der flächigen Darstellung der Spur A zur Fläche von Spur B wechseln kann, sollte in der Relation angegeben werden, mit der genau diser Grenzweg an den Flächenübergängen definiert wird.

Kann man die Spurfläche nicht einzeichnen, wird die Fläche der jeweiligen Fahrspur (ob getrennt oder nicht ist bei mir egal, Sachen wie kerb=* könnte man optional da noch als Grenzwegrelation an die Flächenübergänge basteln) ersatzweise vereinfacht als Weg dargestellt.

Der Übergang zwischen Spur als Fläche und Spur als Weg wird bei meinem Schema dadurch realisiert, indem die Wegdarstellung der Fahrspur ersatzweise als modellhaft als Fläche aufgefaßt wird und man dann dafür wieder angeben kann, ob z.B. motor_vehicel, in Verlauf der Wegrichtung gesehen,nach links fahren darf. Links kann dann z.B. eine als Fläche gemappte Spur sein, womit klar ist, das dieser Übergang dann erlaubt ist.

Ein Bild sagt mehr als 1000 Worte.
Ein Vorschlag also:

Ich suche etwa vier verschiedene Situationen zusammen und dann kann jeder der sich hier aktiv an der Diskussion beteiligt aufmalen, wie er sich die richtige Lösung vorstellt. Ansonsten kann diese Disskusion für viele schwer nachvollziehar sein. Manchmal meint man das Gleiche nur beschreibt man es anders.

Ich habe erstes “Testgebiet” : http://osm.org/go/0HoNAi__O
Dazu zwei Bilder:
Hitergrund: http://wiki.openstreetmap.org/wiki/File:MarekTestgebietMundsburgBing.jpg
und
http://wiki.openstreetmap.org/wiki/File:MarekTestgebietMundsburgAreas.jpg als Begrenzungsflächen.
Da es verschiedene Ansätze für das Thema gibt, möchte ich Euch bitten die Skizze zu ergänzen, damit die Unterschiede einzelner Ideen, Auffassungen sichtbar werden.

Grüße,
Marek

Vor der Einmündung: Straße lanes=2 + Fahrradweg.
Nach der Einmündung lanes=3 access:lanes = ||bicycle
(Ja, das entspricht nicht der momentan Verwendung von access und müsste noch einmal genau durchdacht werden)
Es gibt (mindestens) 2 Areas, eines für die Straße, eine für den Fahrradweg vor der Einmündung.

Zum Beispiel von Marek:

Mal grob gezeichnet um meinen Punkt klarzumachen - keine vollständige Lösung.
Legende: Schwarz - highway:secondary (oder was genau passt); Blau - secondary_link

http://imageshack.us/f/12/osmkreuzung.png/

Links wie es üblicherweise bei Einzelspurmapping aussieht, rechts wie man die Ways vereinfachen kann wenn Areas für die Optik verwendet werden.
Jeder way muss mit lanes, turn:lanes, access:lanes ausgestattet werden - dann sehe ich keine Stelle an der nicht mit einfachen Mitteln klargestellt werden kann, welche Spur in welche mündet.

Punkt 1: Viel weniger Kreuzungspunkte.
Punkt 2: Routingsoftware kann Abbiegerichtungen sehr einfach bestimmen: wenn ein *_link im Spiel ist, nimm den Winkel zwischen dem letzten nicht-link vor der Kreuzung und dem ersten nicht-link nach der Kreuzung. In der herkömmlichen Variante ist das nicht so einfach möglich. Selbst wenn man diese Intelligenz nicht einbaut: Die Winkel zwischen zwei Linien sind sehr viel deutlicher als bei normalem Mapping.

Diese Kreuzung empfinde ich übrigens als relativ einfach - es gibt kaum Abbiegebeziehungen.

OK, du splittest dann also den Weg, wenn ich es richtig verstanden habe.

Wenn ich die Maximalversion von meinem Vorschlag, was komplettes Flächenmapping aller unterschiedlichen (Verkehrs)Flachen der Kreuzung wäre (ich habe angefangen, mich dann aber lieber für 'ne bebilderte Doku entschieden), könnt ihr, bei der Komplexität, vor Weihnachten wahrscheinlich nicht mit einem Ergebnis rechnen, dafür hat die Kreuzung einfach zu viele unterschiedliche Sperr-/Verkehrsflächen und Landuses. Weil damit kann man nämlich die Realität mappen und muß sich nicht mit einer Einzellinienabstarltion mehrerer Spuren zufrieden geben.

Mein Schema (Doku, derzeit noch ohne Straßenmodell: https://wiki.openstreetmap.org/wiki/File:Glm-doc.pdf) kann man aber mit den richtigen Tools leicht maschinell erzeugen lassen. Ja, und es funktioniert, weil was kommt denn in der Praxis im OSM-Datenmodell bei Wegen/Spuren noch anderes vor als ein Übergang zwischen Linien, einer Linie und einer Fläche und mehreren Flächen?

Hi Mueschel und Fabi2,
ich werde Montag ebenfalls die Skizze fertigstellen.
Ich denke, es wäre schön die 3 Skizzen in einer Tabelle nebeneinander zu stellen, pros und cons aufschreiben und dann weiter gemeinsam überlegen. Vielleicht könnte noch jemand eine Skizze mit dem Lösungsvorschlag hinlegen?

Cobra?

Ansonsten stimmt - wir bräuchten noch für den Vergleich eine Standardkreuzung mit dem vorzeitigem Abbiegen nach links. Vielleicht diese: http://osm.org/go/0Oc0xvXsi– ?

Für Borde gibt es bereits schon barrier= kerb in Verbindung mit height. In Linerichtung ist rechts unten und links oben. Das kann man so weiter nutzen und ggf. um Breite und die Angabe rechts und links ist unten usw., für breitere alleinstehende ohne zwischen liegende Fläche, ergänzen.

Ich bin schon dabei, so etwas und area:highway für meine ganze Ecke nachzutragen. Ich warte nur auf endgültig festgelegte Tags, die ich, wenn sich noch etwas ändern sollte, in einem Rutsch umstellen kann und dann wäre hier schon alles bereit für flächige Auswertung. Zu Kreuzungen kann ich leider nichts beisteuern, haben wir hier nur simple. Das einzige was im Moment brennt, ist Fläche über Fläche bei z.B. Brücken. Drüber legen mit Layer 1 oder was macht man? Und Mischnutzung wie z.B. ein Bahnübergang. Etwas eigenes wie z.B. area:highway + railway=yes für die Fläche des direkten Übergangs, also die Gleiseindeckung, oder nutzt man einfach area:highway + landuse=railway?

Absolut ja! Wobei es für ebene und NICHT steil auf/absteigende Fläche gelten soll. Ich werde es noch beschreiben. Stellen wir uns ein Verbindungsstück wie hier: http://osm.org/go/0HoOXPyHg– vor. Sie sind im Grunde eine Rampe zwischen zwei Ebenen. Ein Tag dafür muss man noch erfinden, ab besten basierend auf den Höhenangaben benachbarter Ebenen… Vorschläge Eurerseits?

Hallo Marek,

da kommt das zum tragen, was mir in diesem Zusammenhang durch den Kopf schwebt: genau wie Straßen müssen auch Dämme und einschnitte als Fläche behandelt werden: z.B. area=embankment und area=cutting ggf. mit einer Höhenangabe. Das wäre meiner Ansicht nach konsequent.

Sven

Mir würde erst einmal etwas klares zu einer einfachen Brücke reichen. Da kann die normale Straßenfläche ja bis Ende Widerlager gehen, egal ob flach oder Rampe. Liegt zwar höher als die Umgebung ist aber bis ins Fundament noch die von der Straße eingenommene Fläche. Dazwischen, also der frei schwebende Teil zwischen den Widerlagern, den muss man entsprechend kennzeichnen und über die Fläche darunter bringen. Das sollte man so einfach wie möglich halten und von irgendwelchen komplizierten auseinanderdröselungen von Rampenflächen usw. absehen. Die kann man für komplizierte Spezialfälle vorbehalten, wo sich Spezialisten austoben können.

BTW sind mir doch noch schöne Kreuzungen eingefallen. Zum Beispiel Riebeckplatz in Halle http://osm.org/go/0MGFNthsU– auch mit mehreren Ebenen, wobei man die schon entschärft hat. Leipzig hat auch einige schöne.