teilweise überdachte Straße

Steht aber nicht da. Da steht nur etwas von relativer Höhenstaffelung der Ways untereinander, und daß ein Way, der unter einem Way mit layer=0 hindurchführt, einen negativen Layer-Wert bekommt.

Wie gesagt: Sinnvollerweise nimmt man das default-Layer für die „Höhenschicht“, auf der die meisten Wege verlaufen, und das ist in unserer Welt die Erdoberfläche. Aber das sind zwei getrennte Zuordnungen, die sich nicht zu „layer=0 heißt Erdoberfläche“ zusammenfassen lassen. Siehe oben mein Beispiel mit der Brücke, unter der nichts hindurchführt.

Dafür ist layer=* aber weder gedacht noch geeignet. Wirf mal einen Blick auf diesen Kartenausschnitt. Du siehst Deutschlands höchste Autobahnbrücke, 185 m über dem Spiegel des Kochers (wenn der sich wieder beruhigt hat), und 500 m südlich eine Brücke der L 1045, schätzungsweise 3 m über dem Spiegel des Kochers. Beide haben layer=1. Woher soll ein 3D-Renderer wissen, daß die Autobahnbrücke 182 m weiter oben zu zeichnen ist?

Ich seh das so:

  1. layer sagt ausschließlich bei kreuzenden Ways aus, welcher drüber und welcher drunter langgeht.
  2. layer=* ist ausschließlich dafür gedacht und geeignet, im 2D-Rendering den untenliegenden Way vom obenliegenden überdecken zu lassen. Es macht keine Aussage zur Höhe eines Objekts.
  3. Sinnvollerweise nimmt man die weglaßbare layer-Angabe für diejenigen Ways, von denen es am meisten gibt, und das sind die, die einfach platt auf der Erde liegen. Muß aber nicht zwingend so sein, auch unter- und überirdische Wege können problemlos layer=0 sein, wenn sie nichts auf anderer Höhe kreuzen.
  4. „unter der Erdoberfläche“ wird als location=underground kodiert, nicht über layer.

Das beißt sich nicht im mindesten mit dem englischen Wiki, von dem du behauptest, es mache es einem nicht leicht. Im Gegentum, es folgt logisch daraus.

–ks

Meine abschließenden Worte dazu:
Nicht alles, was sinnvoll und naheliegend ist, muss auch so in OSM gehandhabt werden. Einfacher wird die Arbeit an der Datenbank dadurch nicht, aber das scheint nicht gewollt. Manche Diskussion hier und anderswo könnte man sich mit klaren Regelungen sparen. Ich bezweifele, ob OSM so jemals eine noch breitere Akzeptanz bei Anwendern findet oder so mehr Mitwirkende gewinnen kann.

Ich werde weiterhin layer=0 als Erdoberfläche verwenden.

Zu allerletzt, falls es überhaupt noch jemanden interessiert:
Schaut man sich die history des Wiki-Eintrages zu layer an, findet man dort mindestens bis Februar 2012 gleich im ersten Absatz
“In general it is assumed that any object that has no layer tag is at layer=0 which is normally used for the natural (or permanently changed) surface level. Positive values up to layer=5 are used for elements that pass above features on ground level and negative values down to layer=-5 for features that are underground.”
Quelle:
http://wiki.openstreetmap.org/w/index.php?title=Key:layer&direction=next&oldid=682049
Und ich dachte schon, mein Gedächtnis hätte mich verlassen, was bei 60+ denkbar ist. Wenn ich mal Zeit und Lust habe, suche ich nach dem Zeitpunkt des Verschwindens und der Ursache. Ich fand und finde den Satz so eindeutig, dass er über Jahre eingeprägt blieb.

Mein Reden seit fümmenvierzich. „is normally used for“, nicht „equals“ oder auch nur „refers to“.

–ks

Das hörte sich da aber noch anders an:
http://forum.openstreetmap.org/viewtopic.php?pid=595217#p595217
Möge die weise Allgemeinheit ihren Weg zu einer vernünftigen Interpretation des 0-layers finden…

Vermutlich ist die Straße als Way und nicht als Area ausgeführt. Meiner Meinung nach reicht es dann aus in dem Bereich, in die Straße vom Gebäude überdeckt wird, einen separaten Way mit dem Tag <covered=yes> anzulegen. Das sollte für die Anforderungen einer normalen Karte ausreichen.

Der Vorschlag <covered=partial> geht deutlich in Richtung Microtagging. Wenn man dies betreiben möchte, kann man zusätzlich zu den Ways (die fürs Routing wohl unverzichtbar sind) um die Ways herum noch Areas mit area:highway=* taggen und dabei in dem Bereich, der vom Gebäude überdeckt ist, eine separate Area mit den Tags area:highway=* und <covered=yes> anlegen. Und schon hat man sogar ganz explizit dargestellt welche Teile der Straße überdeckt sind und braucht <covered=partial> nicht mehr.

Da eine Layer-Information implizit im Covered-Tag schon drin ist, benötigt man ein Layer-Tag nur in Ausnahmefällen, bei denen sich mehr als zwei Elemente überlappen.