[Talk-de] Flächennetzwerk cont. (reply zu Re: Massenumbenennung Relationen von Multipolygon in Boundary)
Wolfgang
wolfgang at ivkasogis.de
Fr Apr 20 10:04:03 UTC 2012
Hallo,
Am Freitag, 20. April 2012 02:20:24 schrieb Christian Müller:
> Moin,
>
> ich mag in diesem Zusammenhang noch einmal kurz auf das Thema
> Flächennetzwerk zurückzukommen.
> Have a fun read..
Da hast du dir ja richtig Arbeit gemacht
;-)
>
> Am 19.04.2012 13:05, schrieb Wolfgang:
> > -1 Das Multipolygon sollte rein Fläche bleiben, und Fläche sollte
> > nur im Multipolygon erfasst werden. Wer was dazu "sammeln" will,
> > kann das über eine site verbinden. Wieder das Thema Relationen
> > verbiegen.
>
> Damit würdest Du z.B. sämtliche Parks als type=site Relationen
> erfassen, in denen Du dann die MP der Einzelflächen sammelst. Aber
> was ist überhaupt eine Einzelfläche?
Ich glaube, an dieser Stelle missverstanden zu sein. Solange es nur um
zusammengehörige Flächen gleichen Typs geht, reicht das Multipolygon
völlig aus. Ich will nicht Multipolygone durch Sites ersetzen, sondern
verhindern, dass
- das Multipolygon mit Elementen verwässert wird, die mit der Fläche
nichts zu tun haben (place etc) und
- die Flächenberechnung / Darstellung im Multipolygon konzentrieren
(wenn sie komplizierter ist als ein einfacher Umring)
>
> Betrachten wir beispielsweise einen Schlosspark bestehend aus
> mehreren Teichen, Rabatten, Wiesen, etc. die im Park verteilt sind -
> das Schloss selbst steht auf einem Sockel im Zentrum des Parks.
>
> 1. MP - Teiche
> 2. MP - Rabatten
> 3. MP - Wiesen
> 4. MP - Sockel
> 5. MP - Schloss
6. Schlosspark-Verwaltung
Wenn du das Schloss (mit Sockel :-) ) als nicht zum Schlosspark
zugehöriig betrachtest, brauchst du in der Tat ein Multipolygon für den
Park mit inner = Schlosssockel. Die Seen, Wiesen etc würde ich als zum
Schlosspark zugehörig ansehen und nicht aus der Parkfläche ausschließen
wollen. Die Seen werden natürlich extra gemappt und erhalten wegen der
Inseln ein Multipolygon, wobei ein Multipolygon für alle Seen reicht.
Da die ganze Fläche außer dem Schloss zum Schlosspark gehört, ist für
den Renderer auch klar, dass die Inseln ebenfalls leisure=park zu
rendern sind. Verwaltungsmäßig gehören sie sowieso zum Schlosspark.
Die Seefläche wird nicht als Loch im Park definiert, weil sie 1. zum
Park gehört und 2. üblicherweise der Renderer damit klar kommt, die
Wasserfläche hat insofern Vorrang.
Für das Schloss würde mir eine einfaches Polygon mit building=castle/yes
reichen.
Beim Sockel kommt es drauf an, wie der aussieht. Das könnte ein
building=sockel (?) sein. In dem Falle bekäme das Schloss dann den
layer=1, denn es liegt ja tatsächlich auf dem Sockel.
Jetzt haben wir ein Multipolygon für den Schlosspark, eins für die Seen,
jeweils ein Polygon für den Sockel und das Schloss.
Einzelheiten des Parks wie Rabatte etc erhalten einfache Polygone. Es
ist eine reine Frage der Logig, dass sie, wenn gewünscht, "über" dem
Park gerendert werden. Dass sie zum Park gehören, muss ggf. aus der Lage
ermittelt werden. Wenn jemand eine Statistik aller Rosenbeete in den
Schlossparks des Landes erstellen will, dann muss er eben abfragen,
welche Beete sich räumlich in einem solchen Park befinden.
Für die Verwaltung kommt eine Site hinzu, name = "Staatliche Verwaltung
der Beispielhaften Gärten, Schlösser und Seen", Members sind der
Schlosspark, das Schloss und weitere Anlagen, die zu der Verwaltung
gehören, sowie ggf. das Verwaltungsgebäude, das vermutlich in der
Landeshauptstadt des Beispielhaften Freistaates steht.
:-)
[...]
>
> Leider sind verschachtelte MP-Relationen (nestedMP) unpraktikabel,
> wenn es um die Berechnung der Fläche geht, die sich aus den
> Einzelflächen der Kinder und Kindeskinder (..) ergibt. Schließlich
> sind nur die outer/inner Mitglieder der Kinder und Kindeskinder (..)
> interessant, die tatsächlich einen Beitrag zu Außen- oder
> Innenringen des nestedMP liefern. Ab einer bestimmten
> Schachtelungstiefe wird die
> Grenzbestimmung daher unbeherrschbar - um die Flächengrenze eines
> nestedMP zu ermitteln, müssten alle Blätter des MP-Baumes durchsucht
> werden, also alle Relationen, die dann tatsächlich way-members als
> Mitglieder haben und nicht selbst ein nestedMP sind. Je tiefer
> dieser Baum, desto höher die Wahrscheinlichkeit, dass es mehr
> irrelevante members als relevante gibt.
So ganz kann ich deinen Ausführungen nicht folgen. Im Prinzip ist das
Multipolygon überraschend einfach zu berechnen und gleichzeitig
geschickt aufgebaut.
Regel 1: Jeder Umring kann aus einer beliebigen Anzahl von Polygonen
bestehen, dabei müssen Anfangs- und Endpunkte auf einander folgender
Polygone identisch sein und der Umring als Ganzes ein geschlossenes
Polygon ergeben
Regel 2: Alle geschlossenen Polygone (Umringe), die innnerhalb eines
geschlossenen Polygons liegen, bilden ein "Loch" in diesem, sie dürfen
das äußere Polygon nicht berühren.
Regel 3: Die Umringe werden geschachtelt und liegen in beliebiger Tiefe
ineinander. Inner und Outer können, müssen aber nicht angegeben werden.
Sie dienen der Übersicht des Mappers und können zur Fehlerkontrolle
benutzt werden.
Regel 4: Die Eigenschaften des Multipolygons beziehen sich auf alle
Polygone einer ungeraden Schachtelungstiefe. Die Umringe der geraden
Schachtelungstiefen sind Löcher. Das heißt auch, dass nur die Umringe
als Typ "outer" definiert werden dürfen, die tatsächlich vom Typ des
Multipolygons sind.
Beispiel dazu: Geschlossenes Korallenatoll mit Lagune und Vulkaninsel.
Das Multipolygon vom typ "Koralleninsel" hat als Outer den Umring des
Atolls, als Inner den Umring der Lagune. Der Umring der Vulkaninsel wird
hier nicht reingesetzt, weil er "outer" wäre und nicht vom Typ
"Koralleninsel" ist. Er gehört aber als "inner" in das MP der Lagune.
>
> Bsp.: Kreisgrenzen und Landesgrenze - es gäbe 'zig innenliegende
> Kreisgrenzen, die für die Berechnung der Landesgrenze nicht relevant
> sind - deshalb macht es für die Berechnung der Grenzgeometrie keinen
> Sinn, die Landesgrenze über ein nestedMP mit allen
> Kreisgrenz-Relationen als Mitglieder zu erfassen. Dennoch
> interessiert evtl. der Flächenbezug der Kreisflächen zur
> Landesflächen in einem anderen Kontext. Beide Wünsche ließen sich
> vereinen.
Für Grenzen bietet sich das Multipolygon an - nicht um irgendwelche
"inner" zu definieren, sondern weil es möglich ist, das "outer" aus
einer größeren Anzahl von (nicht geschlossenen) Polygonen zu definieren,
die zusammen einen geschlossenen Umring ergeben. Ähnlich wie bei der
coastline hat es gewisse Vorteile, nicht immer den ganzen Umring der
z.B. USA laden zu müssen.
Die Landesgrenze ist ein MP, die Kreisgenzen jeweils auch. Wer die
Hauptstadt, Verwaltungszentrale oder was auch immer da rein bringen
will, kann das dann über die Site machen.
Members sind dann das Multipolygon mit der Grenze und der place-Node der
Zentrale. Land und Kreise untereinander brauchen keine weitere Relation,
da sich ihre Zusammengehörigkeit aus der Lage ergibt, im Gegensatz zur
Zentrale einer Grenze. Da die Grenze in der Regel eine Vielzahl von
places umschließt, kann hier nicht gefolgert werden, welcher place als
Hauptort gemeint ist.
>
>
>
> Um auf das Beispiel zurückzukommen: Ich kann mir auch den gesamten
> Park als Einzelfläche vorstellen, ohne die Grenzen der Rabatten,
> Teiche, Wiesen, etc. Weil ich das kann, möchte ich den Park auch
> als type=multipolygon anlegen und nicht als type=site (Anm.:
> type=site entspräche einem nestedMP, wenn man daraus die Geometrie
> der Gesamtfläche des Parks ermitteln will).
Wenn ich dich richtig verstehe, willst du für jede kleine Enzelfläche
ein MP anlegen. Wie oben beschrieben, ist das nicht notwendig.
Um das nochmal klar zu stellen: es gibt eine vereinfachte
Flächendarstellung mit verschiedenen tags (building=*, natural=water,
landuse=*, ...). Solange das nur ein ganz einfaches geschlossenes
Polygon ist, würde ich immer das benutzen. Sobald aber kompliziertere
Gebilde auftreten, die entweder Löcher haben oder/und durch mehrere
zusammenhängende Abschnitte sinnvollerweise definiert sind, sollte nur
das Multipolygon für die Fläche genutzt werden. Nicht-Flächen-Elemente
werden dann per Site dazugesetzt.
Gruß, Wolfgang
Mehr Informationen über die Mailingliste Talk-de