Tiles im voraus berechnen

Hi,

ich arbeite am Projekt “Deutsche Digitale Bibliothek” mit und habe u.a. die Aufgabe, dafür einen eigenen OSM-Server für Deutschland einzurichten. Dazu habe ich einen Rechner mit Ubuntu als Mapnik-Server installiert und die Tiles mit dem Skript “generate_tiles_multiprocess.py” generiert. Das hat auch funktioniert, wenn es auch > 4 Wochen gedauert hat. Nun stelle ich aber fest, daß über mod_tile diese Tiles nicht gefunden werden. Stattdessen fängt der renderd an, die angeforderten Tiles neu zu berechnen. Genau das wollte ich eigentlich vermeiden.

Soweit ich das verstehe, hat das o.g. Python-Sktipt die Tiles als PNGs abgelegt, während mod_tile und renderd mit Meta-Dateien arbeiten. Ist das korrekt?

Gibt es einen Weg, beide Formate “zusammenzubringen”? Kann also mod_tile auch die PNGs benutzen?

Falls nicht, kann man die PNGs irgendwie in Metadateien konvertieren?

Und wenn auch das nicht geht, gibt es denn ein Python-Skript, das gleich Metadateien generiert?

Vielen Dank für Eure Hilfe!

Tschüß André

Wenn du mit renderd arbeitest musst du mit render_list Tiles prerendern, siehe http://switch2osm.org/serving-tiles/building-a-tile-server-from-packages/ (am Schluss).

Simon

Ja.

Theoretisch kann man die PNGs wieder zu metatiles zusammenpacken (Ein Metatile sind lediglich 64 PNGs mit Inhaltsverzeichnis), das Script dafür müßtest Du aber erst mal schreiben.

Genauso ist es möglich, metatiles per python zu erzeugen. Es ist aber sinnvoller, gleich renderd dafür zu benutzen.

Mit render_list kannst Du renderd mit Kachelkoordinaten füttern, die er dann im Voraus berechnet und ablegt.

bye, Nop

Hallo,

vielen Dank für Eure schnellen Antworten!

render_list erzeugt nun neue Kacheln. Bei generate_tiles_multiprocess.py hatte ich als bounding box die Geokoordinaten von Deutschland angegeben, damit nur Tiles für Deutschland gerendert werden. Muß ich das bei render_list auch tun oder passiert das automatisch, wenn die Datenbank eh nur Geoinformationen für Deutschland enthält?

Tschüß André

Hallo,

etwas habe ich vergessen zu fragen: Muß ich mir Sorgen machen, daß die im voraus berechneten Tiles irgendwann expired sind und dann doch neu erzeugt werden, obwohl sie schon vorhanden sind?

Ich habe da an den Properties ModTileCacheDurationMax, ModTileCacheDurationDirty, ModTileCacheDurationMinimum, ModTileCacheDurationMediumZoom, ModTileCacheDurationLowZoom von mod_tile gedreht, aber reicht das auch?

Tschüß André