Eigener Tile-Server im Intranet und Export der Tiles für Webserver

Hallo Leute,

ich hoffe ihr habt eine Idee. Ich benötige für ein kleines Projekt einen Kartenausschnitt von vielleicht 10x10 km und habe in einer Virtualbox auch schon Ubuntu mit einem Tile-Server laufen. Die Karte wird auch gerendert und unter mod_tiles werden auch die tiles erzeugt und auf dem lokalen Apache kann ich mir den Kartenausschnitt auch via OpenLayers ansehen und je nach Zoom werden auch die Tiles live gerendert. Soweit so gut, läuft alles.

Jetzt brauche ich diesen Ausschnitt auch auf dem Webserver, da will ich aber nur die Tiles als lokale PNG hochladen. Ich kann dort keinen Tile-Server installieren (Managed Server). Auf dem Webserver läuft bereits openLayers und die OSM Karte vom OSM Server lädt problemlos. Ich möchte dort jetzt aber mit “local” die Tiles laden (mittels “osm/{z}/{x}/{y}.png”).

Jetzt ist die Frage: Wie kann ich mit meinem Virtualbox Tile-Server diese PNG Dateien für verschiedene Zoomstufen generieren, die ich dann auf meinen Webserver schubse? Ich habe es schon über den Umweg mit dem JTileDownloader probiert aber mein Virtualbox Tile-Server blockt es natürlich genauso wie auch der OSM Server.

Ich weiß das es grundsätzlich vielleicht schlauer wäre, generell einen Tile-Server auf einem Webserver zu installieren aber die Kartendaten müssen nicht so aktuell sein und mir steht derzeit kein Rootserver zur Verfügung.

Ich finde dazu einfach in keiner Anleitung etwas und ich hoffe man kann sich diese “offline pngs” irgendwie erzeugen. Ich möchte ungerne den/die OSM Server belasten, dafür sind sie ja auch nicht gemacht und das wäre unfair.

Vielen Dank und Grüße
Tim

Hi,

hier https://www.volkerschatz.com/net/osm/offlineosm.html ist was dazu beschrieben, das generelle Schlagwort scheint “pre-rendering” zu sein.

Viele Grüße,
gormo

Hallo Tim,

es gibt mehrere Möglichkeiten:

  • Du lädst mit einem Skript alle Tiles, die du haben möchtest per HTTP von deinem Tileserver. Was noch nicht gerendert wurde, wird dann live gerendert.
  • Falls du Tirex nutzt, kannst du mit Tirex-Batch alle Tiles, die du gerendert haben möchtest, in die Rendring-Queue einfügen. Wenn diese abgearbeitet ist (siehe dazu tirex-status), kannst du aus dem Metatiles im Tile-Cache mit meta2tile PNG-Tiles erzeugen. Meta2tile dürfte auch mit Renderd gehen und Renderd hat auch Äquivalent für tirex-batch, aber das funktioniert meinem Gefühl nach nicht richtig und in der Geofabrik nutzen wir Tirex.

Tileserver legen die Tiles in ihrem Cache als Metatiles ab. Das sind 8x8 Tiles, also 2048x2048 Pixel, die zusammen gerendert und gespeichert werden.

Viele Grüße

Michael

Vielen Dank für die Rückmeldungen!

@Nakaner: Ich habe mir jetzt ein kleines PHP Script geschrieben, das mir die X und Y Werte für die Tiles von den äußersten Ecken (habe ich mit lat/lon angegeben) ausgibt und ich per Schleife und HTTP Requests die PNG pro Zoomstufe Z abrufen kann. So meinst du es? Oder gibt es da was fertiges? :slight_smile:

Hallo Tim,

Ja, so habe ich das gemeint.

Du bist nicht der erste, der so etwas programmiert. Im Netz finden sich sicherlich mehrere Implementierungen. Manchmal ist es aber einfacher, es schnell selber in der Programmiersprache seiner Wahl zu schreiben, als sich mit fremder Leute Code auseinanderzusetzen und diesen zum Laufen zu bringen. :slight_smile:

Viele Grüße

Michael

Ok, dann mache ich es so. Ich denke auch das es schneller geht. Ich war mir nur nicht sicher, ob die Dateien nicht sowieso schon in irgendeinem Cache liegen.

Vielen Dank für die schnelle Hilfe und ein schönes WE!
Tim