[Talk-de] unangekuendigte Massenedits

Peter Wendorff wendorff at uni-paderborn.de
Mi Jan 16 09:06:57 UTC 2013


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




Mehr Informationen über die Mailingliste Talk-de