[Talk-de] Flächennetzwerk cont. (reply zu Re: Massenumbenennung Relationen von Multipolygon in Boundary)
Christian Müller
cmue81 at gmx.de
Fr Apr 20 12:01:35 UTC 2012
Am 20.04.2012 03:14, schrieb Martin Koppenhoefer:
> Viel einfacher für Mapper und Datenverwerter sowohl beim Anlegen als
> auch für die zukünftige Pflege bei Daten im Vergleich zu einer
> site-relation als bunte Mischung aller möglichen Elemente und
> Bestandteile ist ein schlichtes Polygon, das die Gesamtfläche
> beschreibt. Bei umfriedeten Grundstücken kann man z.B. einen (im
> einfachsten Fall) way für Zaun/Mauer haben, der dann als outer einer
> Multipolygon-relation dient, die das Gesamtareal beschreibt. Alles
> Darinliegende (Schloßteich, Blumenrabatte, Mülltonnen und
> Hundekottütensp...) ist dann automatisch erstmal Bestandteil, sofern
> man es nicht explizit als inner way wieder ausschließt, eine Site
> braucht man dazu nicht. Ich würde in die site (falls man sie überhaupt
> benötigt für das, was man abbilden will) dann auch nicht unbedingt
> alle Einzelteile reintun, sondern dieses Gesamtobjekt. Für so was wie
> die Teiche in einem Schloßpark würde ich keine eigene site-Relation
> anlegen.
>
> Die von Dir beobachtete "Verschachtelung", die Du gerne mit Relationen
> abbilden willst, ergibt sich bereits geometrisch aus den Daten, auch
> ohne jegliche Relation.
Das sie implizit durch mehrfach als Ringelemente verwendete ways
vorhanden ist, war mir klar - das ist aber dennoch nicht das gleiche.
Ich habe das Beispiel mit den Kreisgrenzen gebracht - für eine komplett
innenliegende Kreisgrenze innerhalb eines Landes ist der Flächenbezug
zwar herstellbar, aber ohne explizite Sammelrelation nur mit
rechnerischem Aufwand. Der Unterschied nochmal dargestellt anhand des
Schlossparks:
Sammelvariante:
Eine Anfrage nach den Teichgeometrien innerhalb des Schlossparks
ist durch lookup in die Relation zu lösen.
Boundary-Only-Variante: (also nur die outers des Schlossparks)
Man benutzt die Grenze des Schlossparks zum Verschneiden und sucht
sich in den verbleibenden Daten die Teiche raus.
Bezogen auf einen kleineren Park ist der Aufwand für beide Varianten
sicher vernachlässigbar. Für ein größeres Gebiet ergeben sich mit der
Sammelvariante aber Vorteile - da man nicht verschneiden muss. Einen
gedachten expliziten MP-Baum zu crawlen und alle Teilflächen ohne
geometrische Berechnung zu ermitteln, dürfte abhängig vom Anwendungsfall
die bessere Variante sein - manche Anwendungsfälle werden durch ein
solches Netzwerk evtl. praktisch erst möglich. Es gibt natürlich auch
Probleme: z.B. könnten die Relationen schlecht gepflegt sein und man
erwischt nicht alle Ergebnisse, die man mit einem Verschnitt erhalten
hätte. Andererseits könnte ein Verschnitt sehr komplex werden - wenn
das MP aus mehreren Einzelflächen besteht, also mehrere Verschnitte
berücksichtigt werden müssen.
Mir ging es darum, aufzuzeigen, dass egal wie man das Kind nennt -
type=collection, type=site, type=multipolygon - im Endeffekt über den
Flächenbezug gesprochen wird. Ich habe jetzt nicht nachgeschaut, aber
ich schätze Du findest Sammelrelationen aller Kreisgrenzen pro
Bundesland - sie bilden genau das ab, was auch ein nestedMP abbilden
würde. Gleiches gilt für beliebige Sammelrelationen, die Flächen auf
die ein oder andere Weise sammeln und taggen. Momentan lungern die
alle mehr oder weniger zusammenhangslos in der DB - würde man sich auf
ein paar Regeln für die Verschachtelung einigen, könnten die alle
mittels nestedMP verlinkt bestehen.
Was Du als "schlichtes Polygon" beschreibst, ist das, was übrig bleibt,
wenn man die Flächenlinks (nachgeordnete MP-Mitglieder) innerhalb des
gedachten 6. MP meiner letzten mail entfernt. Der Zusammenhang zu den
Kindern ist dann nicht mehr explizit erkennbar, allenfalls implizit
"geometrisch". Der Komplexitätsgrad aller Relationen ist dann gleich,
sie sind alle gewöhnliche Multipolygone.
Erhält ein Datenverwerter (e.g. renderer) diese MP, überlappen die
Flächen nun - entweder der Schlosspark wird als monotone Fläche opaque
über die Einzelflächen gezeichnet, oder darunter. Für einfache Sachen
(etwa "buildings on top of landuses") kriegt ein Renderer das per Regel
hin, ob das aber für jeden denkbaren Fall von (sinnvoller)
Verschachtelung der Fall ist? Die Verschachtelung entsteht schon
implizit durch gewöhnliche MP.
Um es festzuhalten: Die Überlappung kann dadurch entstehen, dass je
nach Sicht auf eine Einzelfläche,
sie entweder ein Loch innerhalb einer anderen Fläche (sie wäre dann
nur deren Grenze),
sie selbst eine Gesamtfläche,
sie eine Teilfläche von einer oder mehrerer größerer Flächen
darstellt.
Je nachdem, welches Thema ein Renderer hat, müssen nicht alle Sichten
auf diese Einzelfläche dargestellt werden. Wären Flächenlinks innerhalb
der Relation vorhanden, könnte ein Datenverwerter allerdings durch die
schiere Anwesenheit von Flächenlink-Mitgliedern erkennen, ob mehr Detail
vorhanden ist. Ohne die Geometrie zu berechnen, ließe sich entscheiden,
welche Flächen dann beispielsweise nicht opaque bzw. nur mit Namen
gerendert werden. Zugegeben, das Argument ist mit "wir taggen nicht für
renderer" zu erschlagen..
Stellen wir uns stattdessen vor, dass wir gern die Anzahl aller Parks
innerhalb D, die mindestens x Teiche haben (x=0,1,2,3,...), wüssten.
Overpass holt uns alle leisure=park MPs - hätten wir (geometrisch nicht
relevante) Flächenlinks in diesen MP, wäre der nächste Schritt eine
einfache Iteration ohne geometrische Berechnungen. Implizit geht es
auch, aber es ist um ein vielfaches aufwändiger - alle Daten jeder bbox
für jedes leisure=park MP müssen geholt, verschnitten und auf Inklusion
geprüft werden. Das wäre der Unterschied zwischen beiden Varianten..
Gruß
Mehr Informationen über die Mailingliste Talk-de