You are not logged in.

#1 2010-07-31 07:40:46

SunCobalt
Member
From: Eislingen
Registered: 2010-01-09
Posts: 3,798

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?

Last edited by SunCobalt (2010-07-31 07:44:23)


Thomas

Offline

#2 2010-07-31 09:56:22

Weide
Member
Registered: 2009-04-05
Posts: 1,426

Re: Verschachtelte Multipolygone

SunCobalt wrote:

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

Offline

#3 2010-07-31 10:37:23

SunCobalt
Member
From: Eislingen
Registered: 2010-01-09
Posts: 3,798

Re: Verschachtelte Multipolygone

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


Thomas

Offline

#4 2010-07-31 10:52:20

Augustus Kling
Member
Registered: 2009-05-11
Posts: 119

Re: Verschachtelte Multipolygone

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.

Offline

#5 2010-07-31 10:56:45

t-i
Member
From: Zürich, Schweiz
Registered: 2009-04-27
Posts: 268
Website

Re: Verschachtelte Multipolygone

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. ;-)


http://rollstuhlkarte.ch/ - Jetzt mit öV-Fahrplan der Schweiz.

Offline

#6 2010-07-31 11:41:09

SunCobalt
Member
From: Eislingen
Registered: 2010-01-09
Posts: 3,798

Re: Verschachtelte Multipolygone

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.56 … 5&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.56 … 5&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


Thomas

Offline

#7 2010-07-31 12:33:48

t-i
Member
From: Zürich, Schweiz
Registered: 2009-04-27
Posts: 268
Website

Re: Verschachtelte Multipolygone

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.


http://rollstuhlkarte.ch/ - Jetzt mit öV-Fahrplan der Schweiz.

Offline

#8 2010-07-31 14:31:46

SunCobalt
Member
From: Eislingen
Registered: 2010-01-09
Posts: 3,798

Re: Verschachtelte Multipolygone

t-i wrote:

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 :-) 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 ;-)
Und Straßenknoten nutze ich nie für Flächen. Aber das ist ja eine andere Diskussion.
Jedenfalls Danke für eurer Hilfe


Thomas

Offline

#9 2010-07-31 14:57:51

t-i
Member
From: Zürich, Schweiz
Registered: 2009-04-27
Posts: 268
Website

Re: Verschachtelte Multipolygone

SunCobalt wrote:

Ich arbeite nicht mit Potlatch :-) ausser um mal einen POI einzutragen oder einen Straßennamen zu ändern. Ansonsten erinnert mich Potlatch eher an ein Malprogramm meines Sohnes.

Ein Blick in andere Programme erweitert manchmal Horizonte.. ;-) (Allerdings meide ich Potlatch auch soweit möglich..)

SunCobalt wrote:

Und Straßenknoten nutze ich nie für Flächen. Aber das ist ja eine andere Diskussion.

Ich meinte nicht die Knoten, sondern die Strassen selbst. ;-) 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.. smile


http://rollstuhlkarte.ch/ - Jetzt mit öV-Fahrplan der Schweiz.

Offline

#10 2010-07-31 19:09:55

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,502
Website

Re: Verschachtelte Multipolygone

t-i wrote:

Ein Blick in andere Programme erweitert manchmal Horizonte.. ;-) (Allerdings meide ich Potlatch auch soweit möglich..)

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

wambacher

Offline

Board footer

Powered by FluxBB