[Talk-at] landuse: line oder multipolygon?

Friedrich Volkmann bsd at volki.at
Sun Jul 26 02:53:14 UTC 2020


On 25.07.20 15:05, Patrick Strasser-Mikhail wrote:
> Eine Frage zu Stil und Praktikabilität:
> 
> Wenn ein detailliert gemaptes Gebiet ohne Lücken mit landuse oder 
> gleichwertig getagt ist, dann stoßen ja immer exakt Flächen aneinander, 
> entweder als geschlossene Linien oder als Multipolygone.
> 
> Es kommt aber immer wieder einmal vor, dass Ungenauigkeiten auftauchen, wie 
> dass die aneinander stoßenden Linien nicht immer die gleichen Punkte 
> verwenden, und dann bei Änderungen kleine Keile entstehen, wo dann halt nix 
> ist, oder Überlappungen. Auch ein Klassiker ist, dass highway oder ähnliches 
> sich Punkte mit der Linie teilt und dann das eine verschoben wird, aber 
> ungewollt das andere mit verändert wird.
> 
> Mit Multipolygonen hätte man den Vorteil, dass idealerweise immer nur eine 
> Linie eine Grenze darstellt, die von mehreren Multipolygon-Relationen 
> verwendet wird. Nachteilig sehe ich aber, dass der Aufwand für Multipolygone 
> deutlich höher ist, immer noch Fehler passieren können (irrtümliche einen 
> highway als Multipolygon-Grenze gewählt), oder nicht-zusammgehörige Dingen 
> mit einer gemeinsamen Linie "verbunden" werden.

Wie du schon festgestellt hast, können so oder so Fehler passieren.

Grundsätzlich sollten im Sinne einer Fehlerminimierung:
- Anfänger nicht an komplexen Gebilden herumpfuschen
- Leute nicht auf lustig Multipolygone anderer Mapper verändern, nur weil 
irgendein Validator eine Warnung ausgibt
- Jene Mapper entscheiden, die in einem Gebiet am meisten mappen - denn sie 
sind es, die mit der gewählten Variante zurechtkommen müssen.

Bitte keinesfalls Daten eines anderen verändern nur mit der Begründung, es 
für einen fiktiven Dritten einfacher zu machen. So à la "ich verstopfe jetzt 
den Rauchfang meines Nachbarn, damit kein Kind hineinfällt".

> Gibt es dazu - abgesehen von den technischen Ausführungen im Wiki (die sich 
> darauf beziehen, dass ein Multipolygon halt notwendig ist, wenn es Löcher 
> gibt und die Rolle "inner" benötigt wird) - bekannte Kriterien, wann eine 
> geschlossene Linie und wann ein Multipolygon sinnvoll sind?

Genau genommen ist ein Multipolygon nie nötig, denn man könnte die äußere 
Fläche als 2 Teilflächen mappen oder als sich selbst berührende Fläche 
(Wurm, der seinen Schwanz küsst). Aber abgesehen von technischen Problemen 
(z.B. früher renderte Mapnik dort, wo die Flächen zusammenstoßen, eine weiße 
Linie) sind solche Lösungen für andere Mapper irritierend. Eine Regel, die 
vielleicht nicht im Wiki steht, aber sich aus dem gesunden Menschenverstand 
ergibt: Jedes reale Objekt sollte als 1 Objekt in OSM abgebildet werden, und 
die Abbildung sollte dem Wesen nach der Realität entsprechen.

Da sehen wir auch gleich ein Problem beim Verwenden von Straßen als 
MP-outer: Sagen wir, die Straße begrenzt den Wald, dann tritt der Waldrand 
etwas zurück, dann tritt er wieder an die Straße heran, usw. Man muss dann 
die Straße mehrmals zerstückeln. Dann hat man mehrere Ways, obwohl es in der 
Realität nur eine einzige Straße ist. Das gleiche Problem haben wir 
natürlich auch, wenn wir maxspeed etc. auf einzelne Straßenabschnitte setzen 
wollen. Da geht es nicht anders, aber i.a. ist es wünschenswert, das 
Zerstückeln zu vermeiden. Eine praktische Auswirkung dieses Zerstückelns 
ist, dass Suchfunktionen wie Nominatim dann die Foobar-Straße nicht 1x 
finden und die ganze Straße anzeigen, sondern eine Liste von 20 
Straßenstückerln anzeigen. Theoretisch ließe sich das fixen, indem man den 
Straßennamen und -typ nicht auf die einzelnen Ways, sondern auf eine 
Multilinestring-Relation setzt, aber die meisten Anwendungen werten diese 
Relationen nicht aus, und damit verschwindet die Straße ganz von der Karte.

Eine Straße (oder einen Fluss, Zaun, etc.) als MP-outer zu nehmen, bringt 
vor allem dann was, wenn es ein langer Abschnitt ist, auf dem sehr viele 
Nodes liegen. Dann wäre es umständlich, die Straße für die Landusegrenze 
nachzuzeichnen.

Ähnliches gilt für MP vs. einfache Flächen: Wenn ein Landuse von den 
angrenzenden Landuses durch lange Linien mit vielen Nodes abgegrenzt ist, 
ist es zweckmäßig, die Flächen in Multipolygone umzuwandeln um die Linien 
nicht doppelt zeichnen zu müssen und dabei womöglich ein paar Nodes zu 
übersehen. Wenn es aber sehr viele, kurze Landuse-Grenzen mit wenig Nodes 
gibt, ist die Aufwandsersparnis gering. Ein MP mit vielen kurzen outer wird 
eher unübersichtlich und fehleranfällig.

> Und gibt es praktikable Werkzeuge, die es erleichtern, vom einen in das 
> andere System zu kommen, oder auch problematische Flächen zu reparieren?

Nein. Wenn du weißt, was du tust, brauchst du solche Tools nicht. 
Andernfalls lässt du sowieso besser die Finger davon.

-- 
Friedrich K. Volkmann       http://www.volki.at/
Adr.: Davidgasse 76-80/14/10, 1100 Wien, Austria



More information about the Talk-at mailing list