Moin,

ich mag in diesem Zusammenhang noch einmal kurz auf das Thema Flächennetzwerk zurückzukommen.
Have a fun read..


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?



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

Die ersten drei MP werden Löcher haben (alles mit ways in der Rolle "inner" machbar). Kommen wir zum Park, wir erstellen unsere type=site Relation, packen die ersten drei MP hinein und stellen uns dann die durchaus interessante Frage, ob das Schloss zum Schlosspark gehört, es demnach ebenfalls mit in die Sammelrelation aufgenommen werden sollte.



Bevor wir diese Frage beantworten, stellen wir aber fest, dass mehrere der Teiche kleinere Inseln haben, wir splitten also die Teiche in

1.a. MP - Wasserflächen
1.b. MP - Inseln

Man beachte, dass die Löcher lt. MP-Definition nicht zur Fläche gehören, also ist (1.a.) nicht das gleiche wie (1.). Nach deiner Einschätzung legen wir also (1.) neu an, als type=site Relation

(1.neu.) type=site - name=Teiche



Möchten wir nun unseren Park zusammenbauen, können wir das auf zwei Arten tun:

type=site Mitglieder:
    MPs (1.a.) (1.b.) (2.) (3.) ...

type=site Mitglieder:
    (1.neu.) + MPs (2.) (3.) ...

Ich tendiere zu letzterer Variante, allerdings enthielte type=site dann eine Relation vom gleichen Typ. Wir beschäftigen uns also mit verschachtelten type=site Relationen.



Das wir den Namen von type=multipolygon auf type=site ändern, verschleiert IMHO nur die Tatsache, dass auch Flächensammlungen nichts anderes sind als Flächen. Das geht übrigens schon aus der einfachen, bisherigen Definition von MP hervor. Betrachten wir z.B. das zweite MP des imaginären Schlossparks - die Rabatten. Schon dieses kann eine (Einzel-)Flächensammlung sein - je nachdem, wieviele Rabatten der Park hat. Die momentane Definition von Multipolygonen erlaubt es uns also, mehrere Flächen zusammenzufassen, solange sie gleichen Typs sind, sprich, solange der Mapper sie als zusammengehörig empfindet und sie mit den gleichen Tags beschreiben kann.

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.

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.



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). Um mit der bestehenden Definition von MP zu arbeiten, würde ich also alle relevanten Mitglieder aus (1.) (2.) (3.) und evtl. (4.) und (5.), je nachdem ob das Schloss zum Schlosspark gehört oder nicht, ermitteln und diese in ein neues MP

6. MP - Schlosspark

übertragen. Das geschieht händisch, nach Ermessen des Mappenden. Der einzige explizite Zusammenhang in OSMs Daten zwischen Schlosspark und zugehörigen Teilen (Wiesen, Teichen, Rabatten, etc.) wäre dann über die Flächengrenze des Schlossparks ersichtlich - eine komplett innenliegende Wiese, die sich keine Grenze mit Flächengrenzen des Schlossparks teilt, hätte keinen expliziten Zusammenhang in den Daten.



Geht es nicht um die Geometrie, sondern einfach nur um die Navigation zwischen Flächen, machen nestedMP durchaus Sinn. Sie bilden dann ein verlinktes Flächennetzwerk, das interessierte Anwender durchforsten können. Unter der Annahme, dass für die Berechnung der Geometrie nur die Rollen outer/inner interessant sind, könnten in einer durch Geometrietools zu ignorierenden Rolle ("info", "child", "" o.ä.)

    (1.) (2.) (3.) und evtl. (4.) und (5.) MPs einfach als Kinder

dem 6. MP, dem Schlosspark hinzugefügt werden. Diese Flächenlinks wären aufwandslos zu crawlen und für Flächen-Beziehungsfragen, die nicht geometrischer Natur sind, extrem schnell zu verarbeiten.



Die bisherige Definition von MP lässt bis auf ways in der Rolle outer/inner keine weiteren Mitglieder zu.

Evtl. macht eine Verschachtelung der Geometrie mit einer Schachtelungstiefe von "1" Sinn, d.h. MP dürfen genau dann __als inner/outer__ in anderen MP auftauchen, wenn diese selbst unverschachtelt sind - unbegrenzte Schachtelungstiefe (der Geometrie) dürfte aus o.g. Gründen sicher nicht umsetzbar sein. Nach meinem Empfinden müssten die Konsequenzen erlaubter, geometrisch relevanter Schachtelung aber noch näher durchdacht werden, bevor man das umsetzt - schließlich ist der aktuelle Reifegrad der MP-Unterstützung auch nicht über Nacht erschienen.



Gruß
Christian


_______________________________________________
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de

Reply via email to