[Talk-de] Layer-Hierachie - so richtig verstanden ??

Sven Rautenberg sven at rtbg.de
Fr Sep 12 17:27:53 UTC 2008


> bevor ich jetzt weiter Flächen anlege möchte ich mich noch einmal 
> vergewissern, dass ich die Layer-Hierachie auch richtig verstanden habe!
> 
> Ist es richtig, dasss
> 
> Grundsätzlich alle Element zunächst keinen Layer zugewiesen bekommen.

Das ist korrekt.

> Flächen (Parks etc) bekommen Layer=0 und die darauf verlaufenden Ways 
> (Weg etc.) Layer=1

Das ist falsch. Es gibt keinen Grund, einer Fläche einen Layer zu
vergeben. Es gibt ebenfalls keinen Grund, den Wegen einen Layer zu
vergeben. Alle Renderer malen die Wege prima über die Flächen, auch ohne
Layerangabe. (Zugegeben, manches Renderer-Verhalten der Vergangenheit
hat vielleicht Anlaß gegeben, Flächen übereinander zu stapel und mit
Layer zu versehen, aber für Renderer taggen wir ja nicht.)

Dasselbe gilt auch für Flüsse und sonstige Gewässer, die man nicht durch
eine Layerangabe explizit "unter" ein eventuelles Landuse zwingen
sollte, nur weil sie "unterhalb" der üblichen Erdoberfläche verlaufen.
layer=0 ist kein Synonym für "Erdoberfläche", die Layer-Angabe soll dem
Renderer helfen, sich kreuzende Wege korrekt übereinanderzumalen.

> großräumige Flächen, wie Landuse=residental, retail etc., bekommen den 
> Layer = -1 und können "übergreifend" angelegt werden. Mit "übergreifend" 
> meine ich, dass darauf auch Parks, Wasserflächen etc. liegen können. 
> residental & co dienen primär der Gebietsklassifizierung.

Auch das ist nach meiner Ansicht falsch. Die richtige Vorgehensweise
ist, keinerlei Layer zu vergeben, und stattdessen mit einer
Multipolygon-Relation "Löcher" in die großflächige Fläche zu "brennen",
und die Löcher dann entsprechend ihrer abweichenden Inhalte zu taggen.

Mapnik und Osmarender kriegen diese gefüllten Löcher der Multipolygone
mittlerweile bestens hin.

Einzig Mapnik scheitert derzeit noch an verschachtelten Multipolygonen.
Mein Testcase dazu ist das hier:
http://www.openstreetmap.org/?lat=53.69531&lon=9.85239&zoom=17&layers=B000FTF

Ein Waldstück, in dem ein See ist, in dem wiederum eine Insel aus Wald ist.

Mapnik zeichnet die Insel nicht, kriegt es aber hin, den Wasserlauf
trotz "layer=-1" über den Wald zu zeichnen. Osmarender zeichnet die
Insel, versteckt aber den Wasserlauf unter dem Wald.

Da Wasserläufe in der Regel durch Brücken über oder durch Tunnel
unterquert werden, und diese Bauwerke mit "layer=1/-1" zu taggen sind
(die Diskussion, ob das vom Renderer nicht als Default angenommen werden
sollte und deshalb entfallen kann, hatten wir gerade - Meinungsbild war:
Nein, nicht soviele Defaultwert-Ausnahmen), ist es vollkommen
problemlos, wenn der Wasserlauf auf Layer 0 bleibt.

Viele Grüße
Sven




Mehr Informationen über die Mailingliste Talk-de