Seltsames Render-Artefakt

Mal was zum Rätseln:

https://www.openstreetmap.org/way/341789160#map=19/48.38485/10.83807&layers=ND

Ich hab es schon mit /dirty versucht, mit veränderter Geometrie, mit gelöschten und neuen Punkten…
Das aktuelle Gebäude und die Straße werden ja gerendert, aber irgendeine uralt-Version ist da noch im Renderer drin und wird immer mitgezeichnet. Ähnlich beim Hauptgebäude https://www.openstreetmap.org/way/91295481 , da hab ich immerhin das Multipolygon zur Anzeige gebracht, aber die Outline des Gebäudes wird ignoriert.

Drauf gestoßen bin ich wg. https://www.openstreetmap.org/note/631841 , die Wege dort waren nur bis zur Schranke gerendert (obwohl die Ways weitergingen). Diese Wege und die andern “vergessenen” Änderungen stammen aus dem April 2015, das Changeset https://www.openstreetmap.org/changeset/30659207 ist wohl nicht richtig verarbeitet worden.

Bis auf die beiden Gebäude ist jetzt alles sichtbar und OK. Am einfachsten wäre es wohl, die Gebäude zu löschen und neu zu zeichnen.
Aber ich wollte vorher noch wissen, wie sich sowas erklären lässt?
Kennt jemand die Internas des Renderes - wo kann da eine alte Version “überleben”?

Jo, das Rätsel fängt schon damit an, dass ich nicht im geringsten verstehe, was du genau meinst.
WAS wird hier dargestellt, das angeblich nicht mehr in den Daten vorhanden sein soll?
Oder WAS wird hier nicht dargestellt, das angeblich in den Daten sein soll?

Grübelnde Grüße
walter

Es geht um die Outer-Line des Krankenhauses, welches als Multipolygon gemappt ist.

Dort stimmen die Tiles von Mapnik nicht mit der eigentlichen Linie überein - man sieht es vor allem an dem kleinen Erker im Westen und im Norden an der Einbuchtung.

Es passiert interessanterweise nur bei den Openstreetmap-Mapnik-Kacheln. Verwendet man ein anderes Layer als Karte (beispielsweise die Verkehrskarte oder die Radfahrerkarte), ist alles in Ordnung. Es bringt auch nichts, die Mapnik-Kacheln einzeln als dirty zu markieren (beispielsweise diese) - es wird nicht neugezeichnet (Status bleibt auch unverändert).

ok, verstanden.

ich schau mal.

Hast Du mal auf anderen Karten geguckt, wie es aussieht oder in anderen Zoomstufen? Da müsste es ja sauber sein, wenn es an alten Kacheln liegt. Achso, und in JOSM kann man auch eine SW-Karte drunter legen. Sind die sauber?

Soweit ich weiß, wird eine Kachel notfalls dann rerendert, wenn sie oft genug aufgerufen wird. Ich habe schon mal mit Rechtsklick die Kachel einzeln dargestellt und nachgeladen (kompletten Ausschnitt nachladen geht sicher auch). Aber das hast Du sicher alles schon gemacht.

Am interessantesten finde ich, dass die KVB eine Notfallpraxis in Augsburg haben. Ziemlich weit weg … :wink:

Mal reine Spekulation:

Kann eine osm2pgsql die Information verlieren, welche Ways zu einer Relation gehören, z.B. weil die Tabelle *_rels irgendwie kaputt gegangen ist?

Das Multipolygon wurde im April 2015 angelegt. Danach wurde es noch zweimal verändert, allerdings nur die Tags, nicht die Members. Alle anderen Änderungen in der Gegend waren Änderungen der Geometrie des inner oder outer.

Könnte osm2pgsql vergessen haben, welche Members dazugehören? Würde es dann trotzdem Veränderungen an den Tags aktualisieren (building=* am August 2015 wurde ja übernommen)?

Oder importiert osm2pgsql immer auch die Geometrien aller Members neu, wenn sich die Version der Relation ändert, ohne nachzusehen, was sich ändert?

Zum Testen könnte man die Relation 4850756 löschen und eine neue Relation mit denselben beiden Mitgliedern anlegen. Will ich aber jetzt nicht machen, vielleicht hilfts ja und macht das Beispiel kaputt.

Bingo.

Die Rel war ok, der Outer Way war ok, aber die Nodes der Ecke haben gesponnen. Hab einige Nodes an dem “Erker” etwas verschoben und jetzt haut das wohl hin.

Gruss
walter

Josm lädt nur das hoch, was geändert wurde. daher musste ich die Nodes “kitzeln”.

Genau, es geht um die outer-linie des Krankenhauses und um das im Norden anschließende Teil, durch das ein Weg führt. Bei letzerem ist noch ein komischer Rest eines alten Gebäudes und Straßenverlaufs sichtbar: https://c.tile.openstreetmap.org/19/277927/181408.png

Wie gesagt, /dirty, verschobene Punkte, gelöschte oder hinzugefügte Punkte hab ich alles probiert. Ich hab auch den Eindruck, dass die Kacheln sogar neu gerendert wurden (z.B. bei der Unterführung sah es erst anders aus, leider hab ich keinen Screenshot gemacht). Nur dass eben irgendwelche Kartei-, äh, Dateileichen immer wieder reinpfuschen :wink:

Es liegt nicht an den Daten, soweit ich das überblicke (und die andern Styles sind ja OK). Die Fehler sind auch bei den anderen Zoomstufen noch zu erkennen. Es könnte also im Daten-Cache des Standard-Stil-Renderers hängen, wenn es sowas gibt. Kann man einen auswärtigen Tileserver gezielt nach einem Tile fragen und das mit dem hier vergleichen?

hat sich jetzt überschnitten…

Der Erker ist jetzt gerendert, danke! Aber ich hatte da auch schon einen Node bewegt, man muss wohl echt alle nodes kitzeln. Siehe auch die anderen Ecken im Norden und Süden.

Die Daten wandern vom Mapper/dessen Editor zur “einen grossen OSM-Datenbank”. Deren Inhalt sieht man in etwa, wenn man den Datenlayer ansieht.

Von dieser einen grossen OSM-Datenbank ziehen sich dann alle anderen ihre Kopie und die minütlichen/stündlichen/täglichen Updates (“Diffs”). Die Datenbank des Renderers für den Mapnik-Stil unterscheidet sich nicht von anderen Datenbanken, wie sie z.B. für die Verkehrskarte oder irgendein anderes Projekt verwendet werden. Sie ist zwar recht aktuell und gut betreut, nutzt aber die gleichen Schnittstellen wie alle anderen.

Beim Einspielen der Diffs kann eine Datenbank manchmal Schluckauf haben und einen Changeset z.B. mit einem Gebäude vergessen. Dann kann das Renderprogramm noch so oft die Datenbank lesen und ein aktuelles Bild erzeugen, er sieht das Gebäude einfach nicht, weil es nicht in der Datenbank steht. Eine neue Strasse daneben sieht er schon, er hatte ja nur mal ein Changeset verloren, die nächsten funktionieren wieder. So entstehen Kacheln mit veralteten Häusern und aktuellen Strassen.

Wenn sich so ein Schluckauf ereignet, hilft es, die Daten einfach noch mal zu ändern. Wenn die Version 16 eines Weges vergessen wurde, kommt die Version 17 vermutlich schon in die Datenbank. Ausserdem löst sowas ein neues Rendern aus. Warum deine Änderungen nichts bewirkt haben, Walters aber schon, weiss ich nicht.

Ich habe mir mal die Historie der Knoten im Norden und Westen des Gebäudes mit achavi angesehen.

Hier sieht man im Westen die verschobenen Knoten, von denen nicht alle für das Rendern berücksichtigt wurden.

Im Norden wurde der westliche Rand des kleinen Gebäudeteils nach Westen verschoben und bekam noch eine Ecke dazu (roter Umriss → gelb) - da wurden im Osten dieses Gebäudeteils nicht alle Knoten berücksichtigt. Auch sieht man den Knoten (auf der roten Linie, unter der grünen Linie) im Westen, wo die doppelt (länger) gezeichnete Straße endete.

Franz

Du könntest aber auch einfach das ganze Building nehmen, um einige mm verschieben und hochladen. Anschliessend wieder zurückschieben.

Gruss
walter

Merci, jetzt kapier ich, wo der Fehler herkommt. JOSM schickt erfolgreich einen Änderungssatz in die OSM Datenbank. Der Renderserver hat aber einen Schluckauf beim update seiner Daten und bekommt z.B. die neuen Koordinaten eines Punktes nicht mit, oder dass ein way gelöscht wurde. Dann gibt es diese “Datenleichen” in der Datenbankkopie des Renderers weiterhin, bis irgendwann eine neue Diff diese Objekte bewegt.

Was jetzt noch interessant sein wird:
Dieser Way https://www.openstreetmap.org/way/91295473 wurde in dem Changeset gelöscht, was beim Renderserver wohl nicht ankam (die komische schräge Linie scheint eine Gebäudekante davon zu sein). Die alten Punkte wurden wohl teilweise wiederverwertet.

Wenn ich jetzt nur die vorhandenen nodes bewege, wird der way immer noch existieren und er wird mit den neuen Koordinaten gerendert. Vermutlich wird der way nicht verschwinden, bis alle noch existenten nodes gelöscht wurden – aber dann gibt es vielleicht den way ohne nodes immer noch in den Daten des Renderes (unsichtbarer Datenmüll?). Sollte man dann erst das Löschen reverten, hochladen, dann wieder löschen?

Ich hatte tatsächlich nur ein paar nodes bewegt, die wurden dann auch gerendert. Dadurch wurde aber nicht das ganze Gebäude mit den andern Ecken aktualisiert und hochgeladen. Wie Walter schrieb: JOSM lädt nur die tatsächlichen Änderungen hoch.

So genau ist das auch nicht gezeichnet im Moment…
Es würde sich schon für 3D-tagging anbieten, ist laut WP “eines der größten Krankenhäuser Deutschlands”:
https://de.wikipedia.org/wiki/Datei:Klinikum-Augsburg-Vorne.jpg

Gleiches Problem übrigens beim Nahverkehr. Also zumindest was die Lösung betrifft. Wenn ich z.B. Haltestellenknoten bearbeite, sie also in Relationen neu zuordne, werden diese nicht neu gerendert. Problematisch ist das, weil die Relationszugehörigkeit aber offenbar das Rendern beeinflusst. Ich war dann mal dem Tipp oben gefolgt und habe einen Knoten leicht verschoben, und prompt wurde die betroffene Kachel korrigiert. Ist schon blöd – man kann ja nicht immer auf Verdacht irgendwelche Knoten bewegen. Irgendwann kommt dann der Spruch “Wir bewegen nicht für den Renderer!” :wink: Bin mal gespannt, wie die Verkehrs- und Radfahrerkarte damit umgehen. Die sind nur leider “zu langsam” mit den Updates. Keine Ahnung, was die für ein Intervall haben.

Das könnte aber auch eine ganz andere Ursache haben: Beim Rendern “entscheidet” Mapnik, welche Symbole er auf der Karte darstellt und welche nicht. Kommt es zu Platzproblemen, weil da zu viele Icons nebeneinander liegen, werden manche halt nicht gerendert (Verdrängung).
Dabei ist das ganze auch noch zoom-abhängig, also etwas schwer zu erkennen.

Gruss
walter

Zur Zeit ist humanitarian sehr schnell - manchmal schneller als Mapnik.