Verschachtelte Multipolygone

Hallo,

ich habe mal eine Frage zu Multipolygonen. Gibt es Probleme, wenn man die verschachtelt?
Folgender Fall. Eine Insel, die an der Stelle hauptsächlich aus Wiesen besteht. Darin eine bewohnte Gegend. In der bewohnten Gegend ein Stück Wald und darin eine Wiese:

  1. landuse meadow (outer) + landuse residential (inner)
  2. landuse residential (outer) + landuse forest (inner)
  3. landuse forest (outer) + landuse meadow (inner)

Mapnik rendert jetzt die äussere Wiese nicht mehr, den Wald und die innere Wiese schon. Gibts da ein Verschachtelungslimit?

Man hat folgende 7 Datensätze (ich nenne die Begrenzungslinien mal von
außen nach innen A, B, C, D.

A: landuse meadow
B: landuse residential
C: landuse forest
D: landuse meadow

  1. outer A, inner B
  2. outer B, inner C
  3. outer C, inner D

Nur alles zusammen führt zum richtigen Ergebnis (Ausgenommen D, das ist schon für sich genommen richtig). A an sich ergibt einen Sinn (aber nicht den richtigen), B an sich ergibt einen Sinn (aber nicht den richtigen), A und B zusammen sind falsches Tagging (doppeltes Landuse) … erst alles zusammen ergibt einen Sinn und ist richtig. Das ist eine schwierige Situation für ein automatische Verarbeitung, in der schnell Fehler passieren können oder Begrenzungen zuschlagen.

Die andere Art der Multipolygone kommt völlig ohne Verschachtelung in den Daten aus und sollte daher keines dieser Probleme haben:

A: eine Hilfslinie ohne Tags (oder mit Tags, die unabhängig von unserem
Problem sind, wie etwa highway=primary)
B: wie A
C: wie A
1: landuse meadow, outer A, inner B (d.h. zwischen A und B gilt landuse=meadow)
2: landuse residential, outer B, inner C (d.h. zwischen B und C …)
3: landuse forest, outer C, inner D (d.h. zwischen C und D …)
D: landuse meadow (innerhalb von D ein ganz normales landuse=meadow-Gebiet)

Hier ist jeder Datensatz in sich verständlich und wird nicht durch andere Datensätze in seiner Bedeutung verändert. Widersprüche zwischen den Datensätzen gibt es nicht, egal wieviele von ihnen man berücksichtigt.

Ich würde es deshalb mal mit dieser zweiten Art der Multipolygone versuchen.

MfG
Weide

Danke für Deine Hilfe Weide. Ich habe mittlerweile eine Weile rumgespielt. Erst habe ich die 3. Verschachtelung entfernt und war schon am Verzweifeln, da die Wiese nicht wieder aufgetacht ist. Habe es mehrmals erfolglos mit /dirty versucht. Kann es sein, dass /dirty nicht immer eine Neuberechnung der Flächenpolygone anstößt?
Dann habe ich den äusseren landuse=meadow Tag enfernt. Daraufhin kam es zu einer recht lang andauernden Neuberechnung der Tiles. Danach habe ich einfach noch fehlende Dinge eingezeichnet und den meadow Tag wieder gesetzt. Jetzt ist alles wieder da.
Warum es mit der dritten Verschachtelung, die wie von Dir beschrieben war, nicht ging, weiß ich nicht. Vielleicht hätte auch das Löschen und wieder einsetzen des äusseren Meadow-Tags gereicht

Bitte bei solchen Fragen immer einen Permalink und eine Beschreibung beifügen.
Normalerweise dürfte es keine Probleme durch verschachtelte Multipolygone geben. Auch ein Limit der Veschachtlungstiefe existiert meines Wissen nicht.

Halten wir fest, du hast 4 Objekte (von außen nach innen): meadow(id=1), residential(id=2), forest(id=3), meadow(id=4)
Die id ist hinzugefügt, damit hier im Betrag nichts durcheinander kommt. Sie wird nicht benötigt.

Um diese Objekte in ihrer Veschachtlung abzubilden, brauchst du 3 Multipolygone. Zudem 4 Ringe (OSM-Ways) ohne Tags für die Form deiner Objekte.

Du musst nun die Multipolygone wie folgt erstellen:

  1. Multipolygon:
    type=multipolygon
    landuse=meadow
    als outer: Ring (id=1)
    als inner: Ring (id=2)

  2. Multipolygon:
    type=multipolygon
    landuse=residential
    als outer: Ring (id=2)
    als inner: Ring (id=3)

  3. Multipolygon:
    type=multipolygon
    landuse=forest
    als outer: Ring (id=3)
    als inner: Ring (id=4)

Zudem bekommt der innerste Ring (id=4) den Tag landuse=meadow.

Wichtig ist, dass die Ringe keine Tags haben, deren Geltung von den Multipolygonen beschränkt sein soll. Also keine Tags wie landuse oder name an Ringe setzen, die in der Rolle outer einem Multipolygon zugeordnet sind. Solche Tags gehören in die Multipolygon-Relation, nicht an die Ringe. Der innerste Ring kann den Tag landuse selbst tragen, weil der Tag ja für die gesamte Fläche des Rings gelten soll.
Außerdem können noch weitere Ringe in der Rolle inner in den Multipolygonen sein – dies tut aber nichts zur Sache.

Ein Vorschlag unter der Annahme, dass das Polygon 70215707 die äußerste Wiese mit deinem Renderingproblem bildet: Den landuse-Tag vom Polygon entfernen und in der Relation 1105908 hinzufügen.
Hintergrund ist der, dass der landuse-Tag nur für die Fläche des Multipolygons gelten soll und daher auch nur dort stehen darf. Wenn der Tag am Ring steht, bedeutet dies eine Geltung für die komplette Fläche innerhalb des Rings (also das Ignorieren der Multipolygon-Relation). Wenn der Tag am Ring oder am Ring und Multipolygon steht, sind die Geltungsbereiche der landuse-Tags nicht klar definiert (Überlappende Geltungsbereiche der landuse-Tags). Mapnik könnte das als Fehler ansehen (ist es eigentlich auch) und die Objekte beim Rendern ignorieren.

Ich hoffe das hilft weiter. Andernfalls bitte mit Angabe der betroffenen Objekte nochmals fragen.

Meine (allgemeinen) Tipps dazu:

  1. mit /status anstatt /dirty kann man das Datum eines Tiles anschauen. Häufig steht dann dort irgendwas vom 1.1.2000; dies bedeutet, dass das Tile ‘in der Warteschlange zum neu rendern’ ist.
  2. Bei einer Verschachtelung möglichst alle Eigenschaften (z.B. landuse=*) in der Relation taggen und eigenschaftslose Ways verwenden.
  3. Link zur Karte oder zu mindestens einer Relation mitangeben, damit man sich ein genaueres Bild machen kann. Nichts gegen Deine Beschreibungen, aber nur Daten sind Fakten. :wink:

Okay, danke. Also war das eher ein Problem, dass sich Mapnik kurz verschluckt hatte. Bis auf die Tatsache, dass die Eigentschaften in den Ways waren, war eigentlich alles korrekt.

Ich habe die Eigenschaften in die Ways gepackt. Erst hatte ich überlegt ,die Eigenschaften, wie von euch vorgschlagen, in die Relationen zu legen. Aus zwei Gründen habe ich mich umentscheiden. Zum einen habe ich Angst, dass irgendjemand ohne Ahnung von Multipolygonen auf die eigenschaftslosen Wege trifft und aus Unkenntnis wer weiß was damit macht. Es ist nicht bei mir in der Gegend, daher schaue ich nicht immer danach.
Zum Anderen half es mir den Überblick zu behalten. Die äussere Meadow-Fläche hat 15 inner-Elemente. Eins davon ist die Residential-Area, die wiederum 20 inner-Elemente hat. Es gibt auch noch ein weiteres inner-Element, das auch gleichzeit Outer von drei Elementen ist. Also ziemlich unübersichtlich

Einen Permalink hatte ich nicht mit angegeben, da es so großflächig ist und das zusammensuchen der Elemente wahrscheinlich recht lange gedauert hätte.

Hier ist der Permalink. http://www.openstreetmap.org/?lat=54.56735&lon=13.11276&zoom=15&layers=M
Die Wiese ist die äussere Polygon. Darin sind die residential Flächen und einige kleinere Forest Flächen. In der Residential Area befinden sich weitere Forest Flächen. Die dritte Verschachtelung habe ich entfernt.

Was mich noch etwas stört ist hier
http://www.openstreetmap.org/?lat=54.56735&lon=13.11276&zoom=15&layers=M

Der Wald wird aus Meadow ausgeschnitten. Einige Ausläüfer gehen allerdings in die Residential Area, die ja schon aus Meadow ausgeschnitten ist. Daher musste ich das Waldpolygon teilen um es sowohl aus Meadow als auch aus Residential(was ja schon aus Meadow ausgeschnitten ist, auschzuschneiden.

Achja, da ist noch einiges im Argen. Ich bin da dran. Momentan per Luftbild. Nächste Woche dann lokal vor Ort für die Feinheiten

Ich würde die grosse Wiese (ID 70215707) aufteilen, z.B. an den grösseren Strassen (Norderende, Süderende, Wiesenweg). Dann kannst Du a) die Strassen als Begrenzungen (outer) nutzen und b) brauchst nicht so viele ‘inner’ auszuschneiden.

Aber Du hast natürlich recht; gerade mit Potlatch ist die Unterstützung für Multipolygone noch etwas schwach (wobei ich hoffe, dass Potlatch-User sowieso nicht all zu viele Landflächen einzeichnen…). Kannst Dir ja Schwerin mal im Potlatch anschauen, dort habe ich ein paar solcher Polygone mit eigenschaftslosen Ways erstellt.

Ich arbeite nicht mit Potlatch :slight_smile: ausser um mal einen POI einzutragen oder einen Straßennamen zu ändern. Ansonsten erinnert mich Potlatch eher an ein Malprogramm meines Sohnes.
Die Wiese ist desahlb so groß, weil da vorher noch nichts war. Da habe ich dann mit großen Flächen angefangen. Aufteilen werde ich, wenn sie das erste Mal kauptt ist :wink:
Und Straßenknoten nutze ich nie für Flächen. Aber das ist ja eine andere Diskussion.
Jedenfalls Danke für eurer Hilfe

Ein Blick in andere Programme erweitert manchmal Horizonte… :wink: (Allerdings meide ich Potlatch auch soweit möglich…)

Ich meinte nicht die Knoten, sondern die Strassen selbst. :wink: Siehe z.B. “meine” Gegend. Sobald nur noch ein Way da ist, ist mMn auch die Gefahr kleiner, dass ein Potlatch-User etwas kaputt macht.

Aber ja, ich weiss, da treffen Philosophien aufeinander… :slight_smile:

stimmt, ich habe potlatch am anfang intensiv genutzt - ca 30 minuten lang - dann hab ich meinen horizont erweitert :wink:
gruss

wambacher