Ich habe mal eine grundsätzliche Frage zum Kacheln rendern und hosten:
Wenn ich mir mit beispielsweise Mapnik eine Karte rendere und diese dann als Kacheln fürs Web exportiere, diese Kacheln dann auf einen Webserver kopiere, kann ich diese Karte dann per Openlayers, Leaflet etc. einbinden oder muss der Webserver eine spezielle Funktion zum Kacheln ausliefern unterstützen. So könnte man sich ja schnelle eine eigene Karte machen und diese hosten.
Ja, das funktioniert, wie von dir beschrieben.
Den Webserver braucht man, wenn man zur Verkürzung der Renderzeit die Kacheln in höheren Zoomstufen nur auf Anforderung on-demand rendern lässt.
Um das auszuprobieren, kannst du auch erst mal einen lokalen apache-Server installieren, und per http://localhost darauf zugreifen.
Danke da schaue ich mal nach. On the fly rendern will ich nicht. Ich möchte die Kacheln lokal rendern und dann werde ich die immer neu hochladen. So aktuell braucht die Karte nicht zu sein. Die wird auch nicht sehr groß. Gibt es ein Tool womit ich die Kachelanzahl bzw. die Größe der Karte berechnen kann?
Ganz NRW (221MB pbf) Zoom 1 bis 15 sind ca 90.000 Kacheln in 700 Ordnern und belegen 1GB; davon Z14 229 MB und Z15 668 MB. Jede weitere Zoomstufe entsprechend drei-vierfach mehr.
Alles klar Danke, dann habe ich schon einmal eine ungefähre Ahnung von der Größe. Gibt es außer Mapnik und Maperitive noch andere Renderer? Welcher ist einfacher zu bedienen? Habe zu Hause schon eine Postgis Datenbank mit importierten Daten laufen nutze aber momentan zum testen Tilemill, da bekomme ich aber scheinbar keine Webtiles exportiert. Das rendern damit geht aber supereinfach.
Zum Importieren bitte osm2pgsql statt osmosis benutzen. Sonst musst du dich noch selber um die Umwandlung von Multipolygonrelationen und geschlossenen Wegen zu Polygonen kümmern. Der Vorteil gegenüber Maperitive ist die Datenhaltung in einer Datenbank, und Verwendung des bekannten Mapnik-Stils. Und keine Größenbeschränkung bzw Entgeltordnung wie bei Tilemill.
EDIT: MIt Geoserver und Mapserver kann man sowas auch organisieren; beide können auf Postgis-Datenbanken zugreifen. Nur muß man sich dann erst mal nen kompletten Stil basteln.
Was Du noch wissen solltest: Die normale Web-Renderchain wie z.B. bei switch2osm beschrieben erzeugt nicht direkt Kacheln, sondern Metatiles, die 64 Kacheln enthalten. Dann brauchst Du noch eine zusätzliche Verarbeitungsstufe, um die Einzelkacheln dort auszupacken. Im Webbetrieb macht das das Modul mod_tile im Apache Server.
Über die Mapnik Python Schnittstelle kannst Du auch einzelne Kacheln mit dem Skript generate_tiles.py direkt erzeugen - aber das ist fürchterlich ineffizient und langsam, weil er dann den Renderer und die DB Abfragen für jede einzelne Kachel neu initialisiert während die Webvariante mit etwa demselben Overhead immer gleich 64 Kacheln auf einmal produziert.
Für große Gebiete mußt Du also
Metatiles erzeugen und hinterher auspacken
oder Metatiles rendern und in Python in Einzelkacheln zerlegen
Also wenn ich mir Python und Mapnik installiere dann kommen da nicht gleich die passenden Kacheln fürs Web heraus? Das stellt mich ja wieder vor Probleme. Hatte das so verstanden das das quasi “out of the box” läuft wenn man Mapnik über die Konfigurationsdateien zum laufen gebracht hat. Die Datenbank habe ich schon mit osm2pgsql laufen. Machen werde ich das unter Win7.
Das, was bei switch2osm aufgelistet ist. Einschliesslich dem Rendern von Metatiles und mod_tile. Oder laufen die auch mit Windows? Ich habs noch nie probiert, sondern immer nur generate_tiles.py.
Doch, so läuft das bei mir. Am Ende der generate_tiles.py trägst du Wunschgebiet und Zoomstufen ein, und los gehts. Wobei ich für jeden meiner transparenten Layer eigene py-Dateien angelegt habe.
Klar funktioniert das. Man muß sich nur im Klaren sein, daß es extrem ineffizient ist, ich kann mich erinnern daß damals ein Python Skript, das ähnlich wie die Web-Renderchain mit 10x10 Metatiles gearbeitet hat, mehr als 50 mal schneller war als generate_tiles.
Wo ist der Unterschied zwischen den Varianten? Weiß Du wie ich das machen kann ohne tirex oder renderd zu installieren? Metatiles haben bei Mapnik ja außerdem den Vorteil, daß die Beschriftung über den Rand eines normalen Tiles hinausgehen kann.
Hab zwar keine Erfahrung damit, aber aus einer von TileMill erzeugten MBTiles Datei müsste sich mit mbutil auch ein Tile-Verzeichnis exportieren lassen, siehe FAQ.