Brandenburg ... kann das weg?

Oder is das Mapping für den Renderer?

von hier: http://www.openstreetmap.org/node/473862587

Unabhängig davon, dass ich place-nodes reichlich überfüssig finde (ja es gibt da schon diverse Diskussionen mit pro und Kontra dazu) finde ich sowas absolut überflüssig. Mittlerweile weiss Mapnik offenbar auch, dass Brandenburg weder in Berlin liegt noch da wo der Node liegt. “Comment” löschen, oder geht die Welt dann unter?

Was stört dich an dem Node?
Wieso ist Mapnik das Maß der Dinge?

Gruß Klaus

… erinnert mich ein wenig an mein “Anfangsproblem” mit der Seriosität von OSM noch vor ca. 3 Jahren:
Die damals de-facto-Standard-Karte Mapnik zeigte in kleineren Zoomstufen im Rhein-Main-Gebiet die Weltstadt Frankfurt nicht an. Sie wurde von den Mini-Landeshauptstädten Mainz und Wiesbaden, sowie Offenbach komplett verdrängt. Was ist OSM denn für ein Popelprojekt, dachte ich damals. Wer würde denn so eine Karte tatsächlich statt Google-Maps einbinden wollen …
Ist die Realität mit dem Datensatz und den Tools nicht richtig darstellbar, dann wird die Darstellung vielleicht wertlos bis falsch.
Wenn also ein Place-Node vielleicht die einfachste Möglichkeit bietet, das Zentrum eines Ortes zu markieren (weil z.B. das Zentrum des boundary-MP janz-weit-draußen liecht), würde ich das nicht ablehnen, sofern es die Daten nicht verfälscht. Das wäre für mich auch nicht immer ein Mappen für den Renderer, sondern eine Zusatzinformation, die sich aus den Daten anderweitig nicht ableiten lässt.
Cepesko

Hatten wir die place/label-Diskussion nicht schon etliche Male? Das Zentrum ist nunmal nicht immer im Mittelpunkt (wie auch immer man den gerade definiert). Das ist meiner Meinung nach gar nicht mal “Mappen für den Renderer”, weil die Wahrnehmung des Zentrums nunmal da liegen kann.

Im konkreten Fall allerdings wird durch den Kommentar ja sehr deutlich, dass “Mappen für den Renderer” genau das ist, was hier passiert ist, oder?

Bye
Frederik

Gerade in solchen Fällen ist ein node m.E notwendig. Betrifft auch Gemeinden die U- oder L- förmigen Grenzverlauf haben. Und besser so als außerhalb falsch.

Oder gibt es einfachere Tipps für Renderer, wo der Name angezeigt werden kann, wenn das Zentrum außerhalb der bondary liegt?

Klaro: anstelle ST_Centroid(polygon) die PostGIS-Funktion ST_PointOnSurface(polygon) verwenden. Der “Mittelpunkt” liegt zwar nicht immer optimal aber auf jeden Fall innerhalb der Fläche. Also nur einen Funktionsaufruf 1-1 austauschen.

Ich meine, dass Mapnik das schon seit mehreren Jahren macht, hab aber nie in den Carto-Style reingeschaut.

Gruss
walter

Ist die Frage auf was sich das Kommentar bezieht. Denn, der node ist auch Mitglied einer Relation als label-Funktion. Bezieht es sich darauf, dann sollte man das sicherlich stehen lassen. Wird das eigentlich schon von Karten genutzt?

Fakt ist, dass Brandenburg weder über Berlin gerendert wird noch auch nur ansatzweise in der Nähe dieses “wichtigen” Nodes.
(Zusätzlich gibt’s noch nen Potsdam-place-node, der imho richtiger ist)

Ich hab das mal in QGIS visualisiert.

Das im Mapnik-Layer zu erkennende “Brandenburg” liegt exakt an der Position von ST_PointOnSurface() vom Brandenburger Polygon, genau wie ich es vermutet hatte.

Zoomt man weiter rein, rendert Mapnik den aufgrund seiner Zoom-abhängigen Renderregeln nicht mehr. Den “neue” Node 473862587 nördlich von Berlin und getaggt mit place=state wird übrigens von Mapnik ignoriert, was ich für verständlich und gut finde.

Gruss
walter

tl:dr: löschen (werde ich heute Nacht machen)

Edit: Tüpo

Ja.

Bei Staaten kann mans nicht zeigen, vermutlich wegen der vielen “Gebietsabrundungen” gibt es keine bananenförmigen Staaten. Aber bei dieser Fläche hier sieht man, dass Mapnik sich bemüht, Labels zumindest auf die Fläche zu setzen.

Beim derzeitigen Mapnik-Stil wird übrigens nur admin_level 2 und 4 in der Fläche der Grenzrelation beschriftet. Andere Verwaltungseinheiten brauchen ein place=* oder ähnliches, soweit ich da durchblicke. Ob das Label über die Landesgrenzen ragt oder Enklaven überschreibt, wird nicht geprüft, allerdings die Größe der Fläche, damit kleine Staaten nicht in niedrigen Zoomstufen erscheinen.

Andere Renderer und andere Mapnik-Stile können das natürlich völlig anders handhaben.

Grüße, Max

Jetzt darf ich mal ein wenig nörgeln:

  1. Kuba liegt teilweise im Wasser. Also, Maxbe, “bemüht” stimmt zwar, wäre in der Schule aber die 5 (hat sich bemüht, aber nicht wirklich hingekriegt)

  2. ST_PointOnSurface(polygon) setzt zwar Brandenburg auf die Fläche, der rote Punkt wäre aber hier m.E. mit Abstand der passendere/schönere Platz (also erst horizontal-zentriert und dann vertikal auf die Fläche verschoben, statt umgekehrt)

  3. Fakt ist, MKnight, dass es halt bei Mapnik halbwegs klappt. Andere Renderer beziehen vielleicht sich lieber auf manuell fest gelegte Zentren. Stelle ich mir nur ein automatisiertes place-tag bei Orten vor, fallen mir gleich zwei Ortschaften in meiner Umgebung ein, deren Namen im Wald landen würden… Heigenbrücken und Bürgstadt

Was ich eigentlich nur sagen will: Automatisiert an der Fläche orientiert funktioniert nicht in allen Fällen wirklich gut. Vor Ort weiß man am besten, wo das Zentrum ist (abgesehen von sonstigen Verdrängungsregeln).

Aber nun Schluss mit dem Glasperlenspiel…
Schönen Abend allerseits
Cepesko

Edit: Und Jamaica ist auch nicht schön, obwohl Platz wäre

“Kuba” liegt im Wasser, weil der PointOnSurface() sich nicht auf Wasser/Land bezieht sondern bedeutet “Innerhalb der vom Polygon definierten Fläche” und das ist hier wie auch anderswo natürlich der Fall.

Ich habe in meiner DB auch die reinen Landpolygone drin und könnte das sogar sauber rendern, aber Mapnik hat die Landpolygone halt nicht.

Gruss
walter