Am 16.01.2013 09:33, schrieb Josef Latt:
Am 15.01.2013 20:03, schrieb Peter Wendorff:
Am 15.01.2013 19:38, schrieb Josef Latt:


Am 15.01.2013 17:57, schrieb Peter Wendorff:

Insofern betrachte ich diese "Regel" als überflüssig und überholt, und
sich daran zu halten ist eigentlich taggen-für-den-veralteten-renderer
bzw. taggen-für-den-veralteten-validator.

Dann ist das Wiki in dem Punkt also überholt. ;)

Layer dienen doch dazu, physikalisch übereinander liegende Objekte zu
kennzeichnen/trennen. Gilt dann zwangsläufig auch für Brücken und
Tunnels. Lese ich auch so im Wiki.
Das ist richtig, aber eben im Normalfall redundant.
Für die Zeichenreihenfolge hilft das layer-tag außerdem übrigens auch
nicht immer.

Bei Wegen IMHO überhaupt nicht. Und die Schichtung von Flächen per layer ist nicht mehr angesagt, obwohl es da noch den ein oder anderen Altvorderen gibt.
Beispiel 1:
Ein Bach wird mit layer=-1 getagged, weil er ja unter der Straße
verläuft. Gleichzeitig wird die Wiese links und rechts von Straße und
Bach aber nicht mit einem layer getagged (also default layer=0, wenn du
so willst).
Konsequent wäre also: erst den Bach zeichnen, dann die Wiese, dann die
Straße/Brücke.
Demnach würde aber vermutlich der Bach übermalt => Fehler.

Vermutlich. Weshalb sehe ich dann in Karten die Flüsse mit layer=-1?
Ich denke, weil die Macher von Renderregeln aufgrund von Tatsachen nicht konsequent sind und layer hier eben bewusst ignorieren. Aber meiner Meinung nach ist das kein Grund, weiter so zu mappen, sondern langsam aber sicher davon wegzukommen.
[..]
Beispiel 3: Die Straße führt über eine Brücke. Ich tagge an die brücke
ein layer=1. Das ist richtig und in ordnung, aber warum sollte es
notwendig sein? Eine Brücke liegt üblicherweise über dem, was sie
überquert. Der Bach hat dabei kein layer=1, was völlig in Ordnung ist,
aber der Render-Stil muss jetzt auch dafür sorgen, dass der Bach über
der Wiese gezeichnet wird, die eben für den bach nicht aufgetrennt ist.


Wichtig ist der layer-Tag meiner Meinung deshalb nur (!) da, wo es aus
den sonstigen Informationen nicht ersichtlich wird. Also:
- wenn level angegeben ist (und damit das Stockwerk in gebäuden), dann
ist layer nur innerhalb eines Stockwerks sinnvoll. [wenn nicht: ]
- wenn sich zwei Elemente kreuzen, dann haben die
a) einen gemeinsamen Node und kreuzen sich echt (z.B. Bahnübergang,
Querungsstelle, Furt, ...); der Node kann dann entsprechend getagged
werden.
b) an einem element bridge oder tunnel, evtl. gibt's hier zusätzliche
Varianten.
c) unterschiedliche level-Elemente

Wenn sich zwei Brücken, zwei Tunnel oder mehr kreuzen, dann - und
weitgehend nur dann - ist layer notwendig, weil die vertikale Lage der
zwei entsprechenden Elemente zueinander nicht klar ist. Falls es weitere
Ausnahmen gibt, dann sollten die sich weitgehend auf Fälle beschränken
lassen, in denen die obigen Annahmen eben nicht gelten, also wenn ein
Tunnel über einer Brücke verläuft (????) oder sowas.

Insgesamt ist mir das nicht einsichtig. Keine Regel, so es denn welche gibt, ohne Ausnahme. Regeln sollten aber so gestaltet sein, dass es möglichst wenig Ausnahmen gibt.
Die Alternative sind doch die:
Entweder, die Regel ist, layer dranzupappen, damit die Datenbank vollzumüllen - und die Nutzer der Daten müssen trotzdem ohne klarkommen (ewiges Problem unvollständiger Daten in osm). dann wäre die Regel für Mapper weder für die Datenbank noch für die Datenkonsumenten nützlich, einige Mapper werden sich das aus "Faulheit" oder Unwissenheit trotzdem ersparen, und niemandem ist geholfen. Oder aber die Regel ist, keine Layer dranzupappen - das ist einfach für Mapper, erspart überflüssige Daten und Datenauswerter müssen auch nicht mehr unterstützen als bei der anderen Variante, und es gibt Ausnahmen genau da, wo die Reihenfolge dadurch nicht eindeutig ist; und wenn da der layer fehlt, kann man das mit technischen Mitteln erkennen (nicht lösen, aber erkennen und den Mapper darauf hinweisen). Das ist dann zugegeben nicht so einfach zu erkennen wie "da ist 'ne Brücke, also fehlt ein layer", aber sooo viel schwerer dann auch nicht. Algorithmisch ist das ungefähr ein: bringe die kreuzenden Elemente in eine definierte Reihenfolge. Ist die nicht eindeutig, fehlt was. Reihenfolgeregeln: bridge.layer = bridge.layer > nix.layer = nix.layer > tunnel.layer = tunnel.layer Wo sich ein Widerspruch oder ein "=" zwischen zwei Elementen ergibt, fehlt eine layer-angabe oder aber ein gemeinsamer nodes der zwei ways.

Gruß
Peter

_______________________________________________
Talk-de mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/talk-de

Antwort per Email an