Landnutzung heterogener Flächen ohne Multipolygone möglich?

Vielleicht mal eine etwas längere Erklärung dazu… :wink:

Manche Renderer rendern sämtliche Oberflächen in einem Durchgang und sortieren innerhalb dieses Durchgangs nach Größe. Das funktioniert fast immer (Inseln sind immer kleiner als der See), nur bei teilweiser Überlappung regiert der Zufall.

Andere Renderer rendern z.B. erst alle Landnutzungen, dann alle Gewässer, dann alle Häuser… Diese Renderer sind aufgeschmissen, wenn eine Insel im See nicht ausgeschnitten sind.

Die OpenTopoMap ist z.B. so ein “Wasser über Land”-Renderer. Dafür gibt es gute Gründe, z.B. hat man dann keine Artefakte der Schummerung auf Seen. Zur Strafe reagiert die recht empfindlich auf unausgeschnittene Inseln. Andere Renderer haben vielleicht Gründe, erst Wiesen, dann Wälder zu zeichnen, die hätte man das Problem bei Lichtungen.

Wir haben uns stark an unseren Mapnik-Stil gewöhnt. Dessen Rendering “Erst Land und Wasser in einem Durchgang, dann Verkehr, dann Häuser” ist nicht sehr empfindlich gegen gemische Landnutzung. Ausser dort, wo “Verkehr” sich mit “Wasser und Land” überlappt. Deshalb sieht man hier kein Wasser. Im Humanitarian-Stil sieht man es.

So etwas könnte man auch in einer Vorverarbeitung lösen. Ich kann mir allerdings kein System vorstellen, dass die Prüfung “liegt diese Fläche in einer anderen” vornehmen kann und dann noch halbwegs live rendert. Die Prüfung müsste man jedes Mal beim Rendern oder Importieren machen, so wie jetzt osm2pgsql die Prüfung für Multipolygone vornimmt. Nur wäre das deutlich zeitaufwändiger, weil den Zusammenhang zwischen Insel und See erkennt man ohne Multipolygon erst durch geometrische Abfragen.

Wer will, dass seine Inseln, Lichtungen, Baumgruppen und Tümpel in Fußgängerzonen überall dargestellt werden, wird also notgedrungen auf echte Flächen mit Löchern zurückgreifen müssen. Zur Zeit sind das bei uns Multipolygone.

Grüße, Max

Danke für diese ausführliche Erklärung - ich dachte schon, ich müsste weiterhin gegen Windmühlenflügel anrennen. :slight_smile:

Gruss
walter

Anderes Beispiel und eine Frage dazu: In einem Wohngebiet (residential) sind zwei Häuser abgerissen worden. Sollte/müsste/könnte man ja jetzt diese Grundstücke als brownfield/construction ausweisen und müsste somit dann, wenn ich euch recht verstehe, das als inner für ein Multipolygon hernehmen?!

Also noch vor ein paar Wochen hätte ich blauäugig und naiv folgendes dazu gesagt: nutzt dazu einfach layer. layer=1 liegt nun mal über layer=0, dann hat sich das mit den Wald im See oder See im Wald gleich erledigt :smiley:

Eigentlich ja … uneigentlich dürfte so ziemlich jeder Renderer residentials und brownfield gemeinsam betrachten. Gegenbeispiel: Unser Mapnik-Stil kann z.B. construction in pedestrian nicht darstellen. Wegen “erst rendern wir Landnutzung, dann Verkehr”.

Layer haben relativ wenig Einfluss aufs Rendern.

Edit: Nachtrag: Ich tipp das hier nur aus Sicht eines Renderers. Natürlich muss man nicht alles aus allem ausschneiden, das Argument “Spielplatz/Baugrund… ist Teil eines Wohngebietes” ist natürlich auch richtig. Auf diesen Umstand nehmen Stile auch Rücksicht, z.B. indem sie Spielplatz/Baugrund gemeinsam mit Residential rendern (oder danach, “residential-Insel in construction” ist ja selten…). Aber oft geht das eben auch schief.

Da komme ich ehrlich gesagt, auch ins Schleudern:

Formell ist das Baugrundstück immer noch Teil des Residentials und würde damit kein MP begründen. Dadurch würde die Fläche des Residentials ja kleiner, was definitiv nicht richtig wäre.

Auf der anderen Seite könnte man hier ein MP einsetzen um den Renderern klare Verhältnisse zu liefern.

Mein innerer Entscheidungsprozess dazu ist noch nicht abgeschlossen :wink:

Gruss
walter

ach ja: Bitte die abgerissen Gebäude noch belassen, solange sie auf den Bing-Bildern noch zu sehen sind; sonst trägt die wieder jemand ein. Der dazu notwendige Tag (abandom?) ist mir derzeit nicht bekannt.

Mein erster Gedanke hierzu ist, dass construction eigentlich kein landuse ist bzw. sein sollte, sondern nur ein Zustand eines anderen landuse(-Teils), z.B. residential.
Mein zweiter Gedanke ist, dass landuse ja eher die tatsächliche Nutzung und nicht die intendierte Nutzung oder Bebauungsplanung ausdrückt. Das hieße dann wohl - streng genommen - ausschneiden.

landuse gibt nur die überwiegende Nutzung und nicht eine Zuordnung zu Objekten (z.B. Gemeindefläche) an.
Da nur eine Nutzung überwiegen kann, müsste man im Prinzip jeden landuse (brownfield, cemetery, allotment) innerhalb eines anderen landuse per MP ausstanzen.
Wenn ich ein paar Häuserblocks abreiße, nimmt die Fläche von überwiegender Wohnnutzung ab.

Die exklusive Interpretation von landuse ist nicht so ganz intuitiv und das real existierende Tagging sieht dementsprechend aus.

Echt jetzt?! Ich habe bei mir Gebäude extra nicht mehr getaggt, weil die schon seit 2 Jahren abgerissen sind. Sorry aber da bin ich wieder bei meinem Welcher Grundsatz gilt -Thread. Nur weils auf Bing ist, musses ja in der Realität nicht mehr da sein?! :frowning:

Übrigens: für abbruchreife leerstehende Häuse nutze ich das hier: https://wiki.openstreetmap.org/wiki/DE:Key:abandoned

Über ein Ausschneiden würde ich nur bei etwas größeren Flächen nachdenken - und dann meistens immer noch darauf verzichten. Ist einfacher und weniger fehleranfällig; z.B. könnte es passieren, dass jemand das landuse=construction nach Fertigstellung in building=yes umtaggt, ohne die Fläche aus der Relation zu entfernen - oder sich ein Anfänger nicht traut, eine landuse=construction-Fläche zu löschen, weil er nicht weiß, was es mit der Relation auf sich hat.

Ich habe dafür building=collapsed gesehen. Finde ich aber nicht so toll; ich muss da an ausgebombte (oder eben sonstwie eingestürzte) Ruinen denken. (building=demolished wäre logischer, wird aber nur 46x verwendet.) Das größere Problem ist aber, dass ein Renderer eigentlich davon ausgehen können sollte, dass jedes building=* (außer vllt. building=no) auch ein Gebäude ist (laut wiki ist building=[ erlaubt).
Ich lösche einfach das building-Tag und setze ein note=abgerissen; Hausnummer bleibt dran.

Allgemein denke ich, dass wir unterschiedliche Kategorien von landuse haben. Folgende Gedanken sind etwas unsortiert und nicht ganz zuendegedacht:
a) landuse=grass und forest werden häufig eher in der Funktion von landcover verwendet. Gleichzeitig leben größere leisure=park und leisure=water_park gerne mal im landuse-freien Raum.
b) landuse=construction wird nur für Grundstücke verwendet, auf denen gebaut wird. Wenn beispielsweise ein kompletter Häuserblock mit Ausnahme eines einzigen Hauses abgerissen und neu bebaut wird, wird man dieses eine Haus/Grundstück vom landuse=construction ausnehmen. Analoges sehe ich auch für z.B. brownfield, allotments, cemetary. Hier gilt also nicht das Prinzip der überwiegenden Nutzung.
c) einige landuses schließen sich gegenseitig aus, z.B.: farmland/farmyard/residential/industrial/commercial/retail
d) einige landuses können abweichende Objekte schlucken (hier gilt Prinzip der überwiegenden Nutzung): residential, industrial, commercial, retail. Wobei residential den stärksten Magen hat.](https://forum.openstreetmap.org/profile.php?id=)

In Lübeck nehmen wir
building:demolished=yes
und
*demolished=*date

Christian