layer=1 bei Brücken

Tach,

bislang fand ich es unnötig, bei einer einfachen bridge=yes überhaupt ein layer-Tag zu setzen (denn aus bridge=yes wird ja schon klar, daß dieses Element oberhalb aller kreuzenden bridge=no liegt), und habe teilweise gesetzte layer=1 sogar (schäm) gelöscht.

Jetzt les ich im Wiki, daß Brücken immer mindestens layer=1 haben sollten. Gibt’s einen Grund dafür, oder ist das einfach Redundanz zur Sicherheit?

–ks

Nun, bei der Mapnik-Darstellung z.B. hat man sich wohl dafür entschieden, bei fehlenden layer-Angaben einen layer=1 anzunehmen. Dies wird dann auch entsprechend gerendert, selbst wenn faktisch layer=0 angegeben ist.
Siehe auch Wiki:
“Bridges should have a layer=*, for simple crossings almost always layer=1 but other values may be appropriate for complex crossings. For data users, note that about 25% of the bridges is missing a layer tag, in those cases, it’s best to assume layer=1.”
Schwierig wird es (natürlich bei mehren layer-Stufen - aber das ist ja klar) bei anderen Kartenstilen, z.B. dem dt. Stil.
Hier wurde eindeutig für den Renderer getaggt und explizit das layer=0 gesetzt, nur um den Straßennamen nicht “abzudecken” (Eisenbahnbrücke Kohlenstraße, untere Gleise): http://www.openstreetmap.de/karte.html?zoom=18&lat=51.46849&lon=7.19483&layers=B000TT

Ergänzend eine Overpass mit erschreckend vielen layer=0 Werten: http://overpass-turbo.eu/s/bNT

Anh. Es ist klar, über Wasserläufe ist der Brückenweg immer mit layer=1 anzunehmen. Bei Brücken über andere Wege, ist der darunterliegende Weg dann eine layer Stufe kleiner anzugeben (z.B. -1, wenn die Brücke mit layer=0 getaggt ist).

Das ist Redundant, aber nicht falsch. Brücken sind ja üblicherweise über dem Boden.
Bei Stapelungen von Brücken (z.B. hier) ist es notwendig. Falls dort layer=* fehlt oder der Stil zu doof ist, das auszuwerten, sieht das verwirrend aus (die gleiche Stelle mit einem doofen Stil)

Warum es so getaggt wurde, weiss ich natürlich nicht. Auf den Straßennamen hat es keinen Einfluss. Der wird zuletzt über alles drüber geschrieben, unabhängig vom Layer.

Ich finde im Stil keine Stelle, wo der Layer überhaupt Einfluss auf die Darstellung einer Straße hat… Er dient gelegentlich um Dinge zu sortieren und Gruppen zu bilden. Z.B. damit der dicke Rand eine Brücke auf Layer X durchgezogen wird, wenn sie eine Brücke auf Layer Y kreuzt. Layer entscheidet nicht darüber ob die Straße mit dickem Randstrich dargestellt wird oder nicht. Diese Entscheidung bleibt tunnel=, bridge=, covered=* … vorbehalten.

Auf die Renderreihenfolge verschiedener Dinge (Strasse über/unter Gebäude, Wiese über/unter Bahnline) hat layer beim osm-Mapnik-Stil übrigens gar keinen Einfluss, auch wenn viele Mapper es in der Hoffnung darauf verwenden.

Grüße, Max

Daß es nicht falsch ist, ist mir klar. Es ist aber auch nicht nötig. Deshalb meine Frage, wieso es laut Wiki ausdrücklich gesetzt werden soll.

layer=1 heißt aber nicht „über dem Boden“, sondern nur „oberhalb kreuzender Elemente mit Layern von 0 bis -5“. layer=* ist keine Höhenangabe, auch nicht relativ zum Erdboden, sondern dient ausschließlich der vertikalen Staffelung kreuzender Elemente. Genauso richtig kannst du einen Bach mit layer=-5 und die Brücke mit layer=-4 taggen. Mußt dann nur umlayern, wenn an dieser Stelle unter dem Bach noch ein Tunnel gebohrt wird :slight_smile:

Was anderes: power=line sind auch oben und werden trotzdem nicht layer=1 getaggt. Weil vollkommen klar ist, daß alle anderen Ways darunter hindurchführen. Steht sogar ausdrücklich dort im Wiki: „It is not necessary to tag power lines with a layer=* unless two lines cross over each other.“ Warum ist es bei Brücken nicht entsprechend?

Auch das ist mir klar, dafür ist layer=* ja da. Meine Frage war, wieso es selbst dann gesetzt werden muß, wenn kein Zweifel besteht, was oben und was unten ist, weil der eine Way bridge=yes hat und der andere nicht.

–ks

Finde ich nicht. Wenn jemand eine Wiese in der Gegend reinmalt, kreuzt das zwar nicht, es wäre aber trozdem schön zu wissen, wie der Bach relativ zur Wiese liegt.

Grüße, Max

Wieviele Möglichkeiten fallen dir da ein? Normal fließt der Bach durch die Wiese hindurch, beide haben layer=unset (also 0). Etwas anderes kann ich mir nicht vorstellen, solange der Bach nicht auf einem bridge=aqueduct drüberweg oder durch einen tunnel=culvert drunterdurch geht.

layer=-1 für Wasserläufe über Flächen wird im Wiki ausdrücklich unter „things to avoid“ aufgeführt, weil 1. das richtige Rendering dann nicht klar ist (fließt der Bach etwa unterirdisch unterhalb der Wiese?) und 2. dadurch das automatisierte Auffinden ungeklärter Straßen-Wasserlauf-Kreuzungen erschwert wird (wenn jeder Wasserlauf -1 hat, liegt ja logisch betrachtet gar keine Kreuzung vor).

–ks

Ach so, ich glaub, ich hab dich eben falsch verstanden. Klar, mein Beispiel meinte isoliert nur den Bach und die Brücke. Auf die restliche Umgebung bezogen wären meine Werte natürlich unsinnig, war auch nicht zum Nachmachen gemeint :slight_smile:

Mir kam es darauf an, daß Layer nur die vertikale Staffelung ausdrücken, keine absolute Höhe.

–ks

Jo, Bäche waren als Beispiel auch schlecht, da muss man layer eh ignorieren, weil die QS-Tool-Jünger gerne den Fehler “Weg kreuzt Bach ohne Brücke oder Furt oder Tunnel” mit “layer=-1” beheben unsichtbar machen. Mir gings um z.B. sowas wie “building=yes, layer=-1, man_made=reservoir_covered”. Das hätte ich gerne anders dargestellt als ein normales Gebäude.

Grüße, Max

Bei layer sollte man nicht nur Kartenrendering sondern z.B. auch 3D betrachten. Ein impliziertes layer=1 bei bridge=* führt dazu dass dann die Angabe von layer=2+ oft vergessen werden wird, dabei sind diese Werte gar nicht so selten (Overpass) So wie es jetzt ist finde ich es i.O., wenn jemand layer=1 vergisst macht das nichts da Heuristiken am Werk sind.

Das erfährt man mit layer aber nicht. Das mit dem “höher liegen” gilt nur an der Kreuzungsstelle (falls da kein gemeinsamer Node ist).

Leg mal Streichhölzer in Form eines “#” auf den Tisch, so dass im Uhrzeigersinn jedes Streichholz auf dem nächsten liegt. Sowas kann man in OSM mappen (ein Streichholz muss aufgetrennt werden). Alle haben verschiedene Layer und doch sind die Streichhölzer alle auf gleicher Höhe.

Weide

Things to avoid:
Using negative values to describe something to be underground. Use location=underground for this purpose.

ich würd es auch begrüßen wenn bridge=yes layer=1 als mindeste abgrenzung impliziert. wo mehrere kreuzungen übereinander sind muss man eben die layer stufen genau angeben, eben welche brücke liegt über welche. die frage ist auch wieviel % der layer haben nur layer=1, also die ganz normale 2-way kreuzung? bestimmt 95%.

Das sind weniger die QS-Tool-Anhänger, sondern eher die, die beim Hinzufügen von Gewässern die Warnungen des Validators mit geringstem Aufwand loswerden wollen.

Es stimmt, dass die Layer keine Aussage über die Höhe machen, sondern nur über die relative Lage zueinander, mit der Konvention, dass die Erdoberfläche (default-)layer=0 sein soll. Aber nicht mal das lässt sich immer einhalten, z.B. beim Parkhaus am Berg mit Einfahrt oben und Ausfahrt unten. Eine von beiden ist gezwungermaßen layer ungleich 0. Da stößt der 2D/Karten-Ansatz von OSM an seine Grenzen.

“location=underground” kann die layer <0 nicht ersetzen, da damit keine Anordnung angegeben werden kann, die ja auch im Untergrund vorkommen kann (wenn auch selten).

BTW: Die Antwort auf meine Frage in Thread Plankenweg an Küstenfelsen taggen ist wohl doch nicht so unumstritten (hätte mich auch gewundert).

Ich sehe das Problem darin, dass man möglichst konkret formulieren will und dabei einige Sonderfälle unter den Tisch fallen lässt und Ratschläge gern als Gesetze formuliert.

Statt “Die Erdoberfläche soll layer=0 sein” sollte es eher heißen: “layer sollte man so legen, dass man das Tag möglichst oft weglassen kann. (Das ist meist bei layer=0 an der Erdoberfläche der Fall.)”

Ähnlich ist es mit Regeln wie “der Layer muss einen höher sein”. Besser wäre: “nehmt keine unnötig großen Zahlen im Layer”.

Weide

PS: Ich halte es z.B. für Unfug, wenn Bäche an jeder Brücke zweimal aufgesplittet werden nur damit sie zwischen zwei Brücken layer=0 bekommen.

Unter der Brücke hat der Bach auch layer=0, denn die Brücke hat layer=1 …

–ks

Da, wo die Straße die Brücke bekommt, muss sie sowieso aufgesplittet werden (für das Attribut Brücke - und sie bekommt dann hier auch den layer=1) - da braucht der Bach nicht zweimal getrennt werden - auch, wenn er tiefer als die umgebende Erdoberfläche liegt. (Bei Gebäuden (Parkhäusern) würde man für so etwas das level-Tag anwenden). Statt layer=-1 unter Brücken gäbe es noch das Cutting-Tag, um darzustellen, dass der Bach/Fluss tiefer, als die allgemeine Erdoberfläche liegt.

Franz

Ich wüßte auch nicht wozu, denn das Gewässer fließt üblicherweise an der Erdoberfläche. Die kann auch ein Einschnitt sein.
Bei Durchlässen und Tunneln muss sowieso gesplittet werden, damit das Tag “tunnel” vergeben werden kann. Da kann man dann ein layer=-1 auch gleich mit vergeben. Mit den “one-click”-Presets in JOSM ist das sowieso automatisch erledigt.
Dann bin ich unabhängig davon, ob ein Auswerter eine Regel für die Redundanz hat oder nicht.