Anfängerfrage Relationen

Hallo zusammen,

ich habe letztens einen in der Nähe liegenden Spielplatz in die Karte eingetragen. Nun bin ich mir aber nicht sicher ob
ich da alles richtig gemacht habe.

Hintergrund :

Der Spielplatz liegt in einer vorhanden Fläche mit landuse=residential (bezeichne ich mal mit “a”) . Bei dieser handelt es sich um einen größeren Teil des gesamten Stadtgebietes. Außerdem ist sie (“a”) Bestandteil einer Relation “Multipolygon”. Ich habe nun diese Fläche “a” mit Rolle outer bezeichnet und meinen Spielplatz mit Rolle inner. Das Ergebnis sieht auch in der Karte erst einmal richtig aus. Allerdings habe ich jetzt gesehen, das es noch einige andere Flächen gibt die auch innerhalb von “a” liegen, aber nicht Bestandteil der Relation sind (und ja demnach auch Rolle inner
sein müssten).

Frage : War es richtig meinen Spielplatz dieser Relation hinzuzufügen bzw. was ist denn sinnvollerweise überhaupt der äußerste Ring eines
Multipolygones ?

Ich hoffe mich verständlich ausgedrückt zu haben und danke für eure Hilfe.

Gruß Thomas

P.S. Endgegen der Anzeige ist das nicht mein erster Beitrag. Habe allerdings meinen Namen von GeoBiker in GeoBikerHF geändert da es den noch einmal zu geben scheint.

Hallo Thomas,

es gibt da zwei Meinungen und Du hast beide herausgefunden. Die einen sagen, ein Spielplatz würde zum Wohngebiet dazu gehören, muss also nicht “ausgeschnitten” werden. Die andere Fraktion sagt, eine Fläche kann nur eines sein, Spielplatz oder Wohngebiet, daher muss es ausgeschnitten werden. Probleme bereitet keine der beiden Varianten.

Das würde ich an den Schlüsseln festmachen: Ein Multipolygon brauchst du, wenn du mehrere landuse-/natural-Arten ineinander verschachteln willst, also die berühmte Insel im See oder die Wiese als Lichtung im Wald. Die Schlüssel landuse und natural definieren sozusagen den “Hintergrund” der Karte, und davon kann es immer nur einen geben.

In deinem Fall ist es dagegen überflüssig, ein Multipolygon zu verwenden. Flächen wie Gebäude, Spielplätze, Parkplätze und dergleichen kannst du einfach so auf ein landuse-Gebiet setzen.

Ansonsten wäre es auch kaum mehr möglich, die Karte zu bearbeiten, man stelle sich nur mal eine der Städte vor, in der Unmassen von Gebäuden, Parkplätzen und dergleichen als Fläche gemappt sind.

Meines Erachtens ist es besser und richtiger, diesen Spielplatz als inner einer Multipolygon Relation aufzunehmen, da dieser etwas eigenes darstellt und in der Regel in einer anderen Farbe dargestellt wird. Die anderen Flächen sollten auch als inner aufgenommen werden. Dies wird oft nicht getan und deshalb mehr oder weniger toleriert, auch von Renderern. Auch wird mit layer=-1 bei landuse=residential getrickst, um zu verhindern, dass der Renderer residential über playground zeichnet, wodurch dieser eventuell nicht mehr sichtbar ist. Zum Beispiel in Gärtringen. Manchmal kommen auch Mischfarben zustande, zum Beispiel in JOSM. Gebäude liegen standardmäßig über landuse und anderen Flächen und benötigen daher kein Multipolygon.

Sollte also etwa so aussehen:

 
Relation (residential):
  type=multipolygon
  landuse=residential
  outer (äusseres Polygon ohne landuse Tag. Aber eventuell "name=Wohngebiet xy".
         Name gilt ja auch für alle inner, womit die Zugehörigkeit ausgedrückt wird.)
  inner (Polygon mit Tag playground)
  ...
  inner (Polygon mit Tag recreation_ground)
  inner (Polygon mit Tag nature_reserve)
  inner (Polygon mit Tag sports_centre)
  inner (Polygon mit Tag parking)
  ...

Einen sinnvollen äussersten Ring eines Multipolygons gibt es wohl nicht. Es kommt immer darauf an was man darstellen will. Prinzipiell können beliebig viele ineinander geschachtelt sein (bis der Rechner aufgibt :wink: ). Ein Beispiel im Wiki: Polygone über 4 Ebenen verschachtelt.

Wenn du einen Permalink oder die Id der Relation angibst brauchst du weniger zu beschreiben, es wird leichter verstanden und eventuell wird etwas gesehen, das zusätzlich wichtig ist.

Was so oder so nicht passiert. Park, Spielplatz, Parkplätze etc wird über das Wohngebiete gezeichnet. Da braucht man nicht tricksen. Nur bei übereinanderliegenden Landuse-Flächen kann das passieren. Aber da schneide ich auch immer brav aus

Das hängt vom Renderer ab und hat sich und kann sich wieder ändern. Und was ist “etc”? Ist das auch natural und andere flächenbeschreibende Tags? Da ist die Darstellung mit Multipolygonen auf jeden Fall eindeutig und nicht vom Renderer abhängig.

natural wird von Osmarender und Mapnik, mehr habe ich jetzt nicht geprüft, auch über Landuse gezeichnet. Aber davon würde ich das nicht abhängig machen. Auch andere flächenbeschreiben Tags zeichne ich auf Landuse drauf z.B. Gebäude, Parkplätze, Spielplätze, Pedestrian Area,… Die Frage ist doch die, gehört ein Spielplatz zu einem Wohngebiet oder nicht. Meiner Meinung nach ja, also gilt an dieser Stelle Residential + Playground und ich sehe keinen Grund, das auszuschneiden. Würde ich auch komisch finden, wenn ich bei einen Spielplatz, der zum Wohngebiet gehört, die Residential-Fläche unterbreche aber bei einem Laden, bei dem man ja eher sagen könnte, der ist Retail und nicht Residential, nicht

Das halte ich für unnötig kompliziert. Vor allem deshalb, weil - mir zumindest - kein Fall in den Sinn kommt, wo das zusätzliche Informationen transportiert. Soweit es um das Modell “andersartige Fläche innerhalb einer größeren Fläche” geht, sind Multipolygone im Grunde genommen überflüssig, denn mit einer ganz simplen Regel lassen sich alle Fälle erschlagen:

  • Wenn eine Fläche vollständig innerhalb einer anderen liegt, befindet sie sich darüber.

Das funktioniert auch beim Park im Wohngebiet oder dem See im Wald, in dem wiederum eine Insel liegt. Und die Praxis zeigt, dass die meisten Renderer kein Problem damit haben. In diesen Fällen dienen Multipolygone doch nur dazu, die genannte Regel nochmals zu bestätigen, und den Renderer von der aufwendigen Arbeit zu entlasten, die Schnittmengen aller Flächen zu berechnen.

Daher finde ich es wirklich übertrieben, für jede Fitzelfläche mit Multipolygonen zu hantieren.

Damit nicht der Eindruck entsteht, ich hätte was gegen Relationen: Ganz im Gegenteil, ich verwende sie gern. Ich finde es beispielsweise schade, dass sich die Stimmung gegen meine geliebte associatedStreet-Relation zu wenden scheint.
Aber Relationen sollten kein Selbstzweck sein, sondern nur eingesetzt werden, wenn sie tatsächlich Informationen transportieren, die nicht ohnehin schon in den Daten stecken.

Ich habe auch noch nie gesehen, dass ein Renderer das falsch macht. Ganz im Gegenteil muss ich süffisant anmerken, dass praktisch alle Renderer Probleme mit Multipolygonen haben. :wink: In meiner Gegend laboriert Osmarender gerade mal wieder verzweifelt an einem Wald-Multipolygon rum, das eigentlich ganz simpel ist.

Danke für die Antworten,

Ich werde die Relation also jetzt so lassen.

Und in Zukunft also wie verfahren … ?

( die ID der fraglichen Relation ist übrigens 164.122 )

Gruß Thomas

Wie du an der Diskussion siehst, sind die Meinungen da geteilt.

Vielleicht können wir uns darauf einigen: Du musst keine Relation verwenden, kannst aber.

Eine aus der Luft gegriffene Schätzung meinerseits: Nur ein kleiner Teil von Spiel-, Park- oder Sportplätzen, die in OSM innerhalb einer landuse-Fläche liegen, sind mit einer Multipolygon-Relation eingebunden. Das hat keine negativen Folgen für irgendeines dieser Objekte.
Daher meine Empfehlung: Lass es bleiben, die Relation macht die Angelegenheit nur komplexer (auch für andere Mapper, die in dem Gebiet etwas machen wollen), und bringt keinerlei Nutzen.

ich würde es eher so halten: Gehört das “obere” Objekt zum Unteren, dann kein Multipolygon. Tut es das nicht, dann schneide es aus. Beispiel Park: Einen kleinen Park würde ich in Residential lassen, den Berliner Tiergarten aber ausschneiden.

Sobald Du einen Renderer geschrieben hast, der das überprüft, wirst Du in die Geschichte von OSM eingehen - könnten das die heutigen Renderer bereits, wären die ganzen Multipolygone nämlich nicht nötig.

Die Renderer (Mapnik und Osmarender) zeichnen die Flächen in einer bestimmten Reihenfolge, also z.B. erst alle Waldflächen und dann alle Wasserflächen. Die Beziehung zwischen den Flächen (‘liegt in’) kennen die Renderer nicht! Dass das Ergebnis meistens richtig aussieht, hat bloss damit zu tun, dass meistens die Seen in Waldgebieten liegen und nicht umgekehrt.

Genau so sehe ich es auch.

Ein Inner-Polygon bei einer Multipolygon-Rerlation hat die logische Bedeutung, dass diese Flaeche nicht zur Gesamtflaeche gehoert. Wer das nur zur Steuerung der Renderer-Anzeige benutzt, hat den eigentlichen Sinn nicht verstanden.

Gruss
Torsten

Danke für diese Klarstellung.

Edit: Gibt es eigentlich irgendwo im Wiki eine Festlegung dieser Reihenfolge oder beruht das auf Kenntnis der oder Erfahrung mit den Renderern?

Das kommt auf den Fall an und hängt zudem vom Betrachter ab. Für den einen gehört eine Insel im See zum See für jemand anderen nicht. Unabhängig von dieser persönlichen Sichtweise ist es falsch, an die äussere Linie des Sees “natural=water” und an die Insel “landuse=forest” zu schreiben. Denn das würde bedeuten, dass die Gesamtfläche Wasser und die Insel zugleich Wasser und Wald ist. Ein Multipolygon erlaubt der Differenzfläche, also outer abzüglich aller inner, natural=water oder andere eigene Kartenmerkmale zu geben. Zusätzlich können der Gesamtfläche Merkmale wie ein Name gegeben werden. Das Beispiel Wald mit drei Baumarten im Wiki beschreibt einen solchen Fall ausführlich.

Dies ist keine “Steuerung der Renderer-Anzeige” im Sinne von Tagging for the renderer sondern eine klare und korrekte Beschreibung der Wirklichkeit, die die heutigen Renderer (leider noch) benötigen.

Ich sehe, ist ja alles nicht so einfach.

Darum gleich die nächste Frage :

Weiter oben wurde auf folgende Seite im Wiki hingewiesen :

http://wiki.openstreetmap.org/wiki/DE:Relation:multipolygon#Wiese_mit_Farmland_mit_zwei_W.C3.A4ldern_mit_Buschwerk_.28Polygone_.C3.BCber_4_Ebenen_verschachtelt.29

Hier gibt es folgendes Beispiel:

Wiese mit Farmland mit zwei Wäldern mit Buschwerk (Polygone über 4 Ebenen verschachtelt)

Die Fläche “E = Buschwerk” wird folgendermaßen beschrieben : Der geschlossenene Weg 7 hat keine Löcher und ist mit einem, eine Fläche beschreibenden Kartenmerkmal versehen. Deshalb ist hier kein Multipolygon notwendig.

Widerspricht die Konstruktion dieser innersten Fläche nicht dem darauffolgenden Beispiel “Wald mit drei Waldarten - Praxis” ?

Hier wird auch für die innerste Fläche ein Multipolygon erzeugt und diesem werden die Eigenschaften zugewiesen.

Hätte doch den Vorteil das wenn z.B. in dieser Fläche später einmal ein Teich angelegt wird dieser dem vorhandenen Multipolygon
als “inner” beigefügt werden kann. Wobei sich dann die nächste Frage stellt, wird dieser Teich dann wieder mit einem neuen Multipolygon und
“outer” beschrieben oder wie oben als Fläche mit beschreibendem Kartenmerkmal.

Ist die vorgehensweise eventuell abhängig von der Flächenart ?

… bin natürlich immer noch Newbie aber ich möchte es halt verstehen.

Gruß Thomas

Das Beispiel mit den drei Waldarten beschreibt ja auch erst einmal, wie eine Relation aussieht, die genauso aufgebaut ist wie das Beispiel mit dem Farmland davor:

Das Problem ist, dass (so verstehe ich es) etliche Renderer Probleme haben, wenn die inneren und äußeren Flächen vom selben Typ sind, hier also landuse=forest. Deshalb wird die zusätzliche Methode vorgestellt, bei der auch die inneren Flächen als Multipolygon-Relationen definiert sind. Das dient in diesem Spezialfall also als Krücke, um die Probleme der Auswerteprogramme zu umgehen. Rein theoretisch ist es nicht notwendig.

Nicht grundsätzlich falsch, die innerste Fläche grundsätzlich als Multipolygon zu definieren. Scheint mir aber (soweit es nicht um einen der oben geschilderten Spezialfälle geht) unnötig kompliziert. Wenn sich später tatsächlich herausstellt, dass du in der innersten Fläche doch nochmal eine Ebene brauchst, kannst du das Multipolygon dafür immer noch definieren. Das sollte kaum aufwendiger sein, als es gleich zu machen. Anders sieht es natürlich aus, wenn du schon vorher weißt/ahnst, dass das Spielchen weitergeht und irgendwo im gerade eingetragenen Wald ein Teich ist, der gerüchteweise eine Insel hat, auf der möglicherweise … :slight_smile:

Ist schon klar. Aber allmählich fällt der Groschen. :wink:

Das braucht Zeit und eigentlich lernt man nie aus. Flächen sind um ein Vielfaches komplexer als Punkte und Linien. Es gibt viel mehr unterschiedliche Situationen. Dann kommt noch dazu, dass es verschiedene Meinungen, Methoden und Ratschläge gibt. Dann muss man noch den Renderern die Arbeit erleichtern oder erst ermöglichen. Und das Alles in einem schnell fortschreitenden Projekt wo schon die Dokumentation im Wiki nicht mehr nachkommt. Zum Glück wird hier im Forum immer geholfen.