You are not logged in.

#1 2021-04-08 07:12:43

GerdP
Member
Registered: 2015-12-18
Posts: 1,384

OSM Carto style ignoriert falsche Rolle in multipolygon?

Ich wundere mich gerade, dass dieses multipolygon als water=lake gerendert wird, obwohl inner und outer vertauscht sind:
https://www.openstreetmap.org/relation/11787853
Klassischer Fall von vertauschten inner und outer Rollen.

Der Mapper hat offensichtlich Probleme, die Rollen mit Id richtig zu setzten, da der äussere Weg gleichzeitig auch ein inner in diesem MP ist:
https://www.openstreetmap.org/relation/8484

Das nur am Rande, mich interessiert hier nur das Rendering. Ich habe auch ein paar andere Karten angeschaut, alle ignorieren die falschen Rollen und betrachten offensichtlich nur die Geometrie. Auch JOSM rendert den See, nur die Datenprüfung meckert.

Das Programm mkgmap, der "Renderer" für Garmin maps, macht es zur Zeit anders: Wenn ein Weg mit role "inner" aussen ist, dann wird er, abgesehen von einer Warnung, komplett ignoriert und daher die Insel als See gerendert. Eine ziemlich fragwürdige Lösung, das will ich ändern, weiss aber noch nicht, in welche Richtung.

Man könnte auch einfach gar nichts rendern, wenn bei einem multipolygon irgendwas mit den Rollen nicht stimmt, wird aber nicht gemacht.
Wurde dieses Verhalten, also die Rollen zu ignorieren, mal irgendwo als "beste" Methode vereinbart?
Dann würde ich das in mkgmap auch so wollen.

Für Hinweise wäre ich dankbar.

Gerd

Offline

#2 2021-04-08 09:10:29

FraukeLeo
Member
Registered: 2020-08-03
Posts: 284

Re: OSM Carto style ignoriert falsche Rolle in multipolygon?

Gedankenexperiment: Auf einer Kugeloberfläche kannst du bei einer geschlossenen Kurve eigentlich nie sagen, wo "außen" und wo "innen" ist. Wir nehmen normalerweise an, dass die kleinere Teilfläche die Innenseite ist, aber stell dir mal einen geschlossenen Way längs des Äquators vor smile

Solange nur ein inner im outer ist, sind die Rollen rein geometrisch gesehen beliebig vertauschbar. Der Renderer muss nur wissen, dass alles zwischen inner und outer das MP ist. Ob die kleinere Restfläche die Insel ist und die größere die Außenwelt oder andersrum, macht keinen Unterschied aus.

Offline

#3 2021-04-08 09:22:33

seichter
Member
Registered: 2011-05-21
Posts: 3,080

Re: OSM Carto style ignoriert falsche Rolle in multipolygon?

FraukeLeo wrote:

Solange nur ein inner im outer ist, sind die Rollen rein geometrisch gesehen beliebig vertauschbar. Der Renderer muss nur wissen, dass alles zwischen inner und outer das MP ist. Ob die kleinere Restfläche die Insel ist und die größere die Außenwelt oder andersrum, macht keinen Unterschied aus.

Wenn das inner dann mehr als 500 Millionen Quadratkilometer hat, ist das Gedankenexperiment doch sehr unrealistisch.

Offline

#4 2021-04-08 09:40:21

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

Re: OSM Carto style ignoriert falsche Rolle in multipolygon?

FraukeLeo wrote:

Auf einer Kugeloberfläche kannst du bei einer geschlossenen Kurve eigentlich nie sagen, wo "außen" und wo "innen" ist.

Sind wir beim Mappen nicht eher auf einer rechteckigen Fläche (-180° bis +180° und -90° bis +90°) mit eigenwilliger Metrik? (Siehe z.B. Relation 3237100)

Jede simple Linie zwischen zwei Punkten ist auf einer Kugel übrigens ebenso mehrdeutig ... das wäre besonders für natural=coastline fatal.

Offline

#5 2021-04-08 10:08:43

FraukeLeo
Member
Registered: 2020-08-03
Posts: 284

Re: OSM Carto style ignoriert falsche Rolle in multipolygon?

Ich sag doch: wir gehen intuitiv davon aus, dass die kleinere Seite die Innenseite des Polygons ist. Aber geometrisch ist das austauschbar, es kann ebensogut auch andersherum sein. Deshalb macht der Renderer keinen echten "Fehler", wenn er das hier angesprochene Multipolygon anstandslos rendert.

Weide wrote:

Jede simple Linie zwischen zwei Punkten ist auf einer Kugel übrigens ebenso mehrdeutig

In der Kugelgeometrie ja (eine Linie ist Teil eines Großkreises, aber bei zwei Punkten ist nicht gesagt, welcher Teil). In OSM haben die zwei Punkte im way eine Reihenfolge, die es eindeutig macht. Wenn wir für Polygone ähnlich wie für natural=cliff festlegen würden, welche Seite richtungsabhängig innen ist, wäre es auch eindeutig. Aber das tun wir ja nicht.

Last edited by FraukeLeo (2021-04-08 10:13:21)

Offline

#6 2021-04-08 10:14:00

woodpeck
Member
Registered: 2009-12-02
Posts: 1,046

Re: OSM Carto style ignoriert falsche Rolle in multipolygon?

Der Renderer verwendet eine von osm2pgsql erstellte Datenbank, osm2pgsql baut die Polygone mit osmium, und das kümmert sich nicht um die Rollen. Die Rollen waren schon immer überflüssig. Der OSMI bemerkt das Problem aber: https://tools.geofabrik.de/osmi/?view=a … 66&zoom=18

FraukeLeo wrote:

Ich sag doch: wir gehen intuitiv davon aus, dass die kleinere Seite die Innenseite des Polygons ist.

Oder auch davon, dass kein Teil des Polygons die Datumsgrenze überlappt wink

Last edited by woodpeck (2021-04-08 10:19:14)

Offline

#7 2021-04-08 10:23:47

woodpeck
Member
Registered: 2009-12-02
Posts: 1,046

Re: OSM Carto style ignoriert falsche Rolle in multipolygon?

GerdP wrote:

Wurde dieses Verhalten, also die Rollen zu ignorieren, mal irgendwo als "beste" Methode vereinbart?
Dann würde ich das in mkgmap auch so wollen.

Vor gut 10 Jahren hab ich im Wiki eine Seite dazu angelegt, wie man aus einer Multipolygonrelation ein Polygon baut: https://wiki.openstreetmap.org/wiki/Rel … /Algorithm schon damals stand drin: "You see that this algorithm doesn't actually use the inner or outer roles"...

Offline

#8 2021-04-08 10:51:07

GerdP
Member
Registered: 2015-12-18
Posts: 1,384

Re: OSM Carto style ignoriert falsche Rolle in multipolygon?

woodpeck wrote:

Der Renderer verwendet eine von osm2pgsql erstellte Datenbank, osm2pgsql baut die Polygone mit osmium, und das kümmert sich nicht um die Rollen.

Danke, die Info fehlte mir.

woodpeck wrote:

Vor gut 10 Jahren hab ich im Wiki eine Seite dazu angelegt, wie man aus einer Multipolygonrelation ein Polygon baut: https://wiki.openstreetmap.org/wiki/Rel … /Algorithm schon damals stand drin: "You see that this algorithm doesn't actually use the inner or outer roles"...

Mir ist klar, dass man die Rollen nicht braucht, wenn das MP ansonsten korrekt und vollständig bekannt ist.
In mkgmap muss man sich aber auch mit unvollständigen Daten rumschlagen, sprich, irgendein mehr oder weniger vollständiger Extrakt aus OSM oder auch irgendwelche generierten Daten, die sich nicht unbedingt um OSM Regeln kümmen.
Bisher dachte ich auch immer, dass mkgmap bei vollständigen Daten die Rollen ignoriert, dem ist aber nicht so.

@woodpeck: Zum Thema Backtracking: Ist das in osmium implementiert? Dann würde ich evtl. mal versuchen, dass auch in JOSM und mkgmap einzubauen.

Offline

#9 2021-04-08 12:01:50

Galbinus
Member
From: Ostwestfalen-Lippe (OWL)
Registered: 2016-10-05
Posts: 1,562

Re: OSM Carto style ignoriert falsche Rolle in multipolygon?

Ein brauchbares Fehlerprüfungstool ist jedenfalls: http://tools.geofabrik.de/osmi

Die falsch angelegten Rollen werden eindeutig erkannt und angezeigt:
http://tools.geofabrik.de/osmi/?view=ar … acity=1.00

Offline

#10 2021-04-08 13:06:30

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

Re: OSM Carto style ignoriert falsche Rolle in multipolygon?

FraukeLeo wrote:

In der Kugelgeometrie ja (eine Linie ist Teil eines Großkreises, aber bei zwei Punkten ist nicht gesagt, welcher Teil). In OSM haben die zwei Punkte im way eine Reihenfolge, die es eindeutig macht.

Nein, die Reihenfolge der Punkte macht es nicht eindeutig. Da die Punkte eine Reihenfolge haben ist es nur zweideutig statt vierdeutig.

Offline

#11 2021-04-08 13:25:25

skyper
Member
Registered: 2020-06-08
Posts: 198

Re: OSM Carto style ignoriert falsche Rolle in multipolygon?

Weide wrote:
FraukeLeo wrote:

In der Kugelgeometrie ja (eine Linie ist Teil eines Großkreises, aber bei zwei Punkten ist nicht gesagt, welcher Teil). In OSM haben die zwei Punkte im way eine Reihenfolge, die es eindeutig macht.

Nein, die Reihenfolge der Punkte macht es nicht eindeutig. Da die Punkte eine Reihenfolge haben ist es nur zweideutig statt vierdeutig.

Von Pol zu Pol bleibt es bei unendlich auch wenn nur die Hälfte von der Unendlichkeit ohne Richtung Reihenfolge.

Last edited by skyper (2021-04-08 13:31:15)

Offline

#12 2021-04-08 14:36:43

FraukeLeo
Member
Registered: 2020-08-03
Posts: 284

Re: OSM Carto style ignoriert falsche Rolle in multipolygon?

Mein Fehler, ihr habt recht.

Offline

Board footer

Powered by FluxBB