x

Re: Renderprobleme bei MPs nach Tagging-Änderungen ohne Geometrieänderung


Geschrieben von Nakaner (Gast) am 30. August 2017 17:44:19: [flux]

Als Antwort auf: Renderprobleme bei MPs nach Tagging-Änderungen ohne Geometrieänderung geschrieben von hsimpson (Gast) am 29. August 2017 14:54:

Hallo,

mmd wrote:

Warum nicht gleich die Leute fragen die sich damit auskennen: pnorman, lonvia, tomhughes und Nakaner natürlich.

osm2pgsql hat eine solche Logik (https://github.com/openstreetmap/osm2pgsql), für die Hauptkarte kommt aber eine eigene Logik zum Einsatz (offenbar ohne Relationen): https://github.com/openstreetmap/chef/b … /expire.rb

Die Tileserver der OSM Foundation nutzen nicht die Tile-Expiry-Technik von osm2pgsql, auch wenn sie selbst osm2pgsql für den Import des Planets und der Diffs in die Rendering-Datenbank einsetzen. Wie mmd schon geschrieben hat, wird besagtes Ruby-Skript eingesetzt.

Interessant ist dieses Skript ab Zeile 96. Es liest aus dem Diff alle Nodes ein und markiert die Tiles, in denen sie liegen, als veraltet. Es liest auch alle Ways ein. Da Ways in einem OSC-Diff-File nur eine Liste der Nodes enthalten und die Nodes nicht zwangsläufig in demselben Diff mit ihren Koordinaten enthalten sind, werden die Koordinaten der Nodes der Ways in der Flatnodes-Datei (eine ~ 30 GB große Datei auf der SSD) nachgeschlagen, die osm2pgsql als Cache für die Koordinaten der Nodes verwendet.

Dieses Skript ist verhältnismäßig schnell. Da die Ressourcen begrenzt sind, lässt man Relationen außen vor. Zwar löst dann u.U. eine Änderung kein Neurendering aus, aber der Mehraufwand rechtfertigt den Nutzen nicht (man muss mit den zur Verfügung stehenden Mitteln sparsam umgehen). Würde man Relationen unterstützen wollen, müsste man bei jeder geänderten Relation erst einmal die Nodelisten der Ways nachschlagen, die die Relation referenziert – und dann noch die Koordinaten der Nodes.

osm2pgsql unterstützt Relationen schon bislang bei der Tile-Expiry, aber die von mmd verlinkte Issue im osm2pgsql-Bugtracker zeigt ja, dass es nicht das Gelbe vom Ei ist.

Ich bin gerade dabei, die Tile-Expiry von osm2pgsql neu zu schreiben (ich habe im Rahmen meiner Masterarbeit für einen anderen Zweck eine geschrieben). Die OWG muss nämlich entweder ihre Tile-Expiry anpassen, da das Flatnodes-File künftig ein anderes Format hat, oder auf osm2pgsql umsteigen, was bislang keine Option war. Ob nach der Umstellung Relationen berücksichtigt werden und, wenn ja, wie, müssen Versuche zeigen.

Viele Grüße

Michael