You are not logged in.
- Topics: Active | Unanswered
#1 2012-03-29 08:50:57
- MikeOSM
- Member
- Registered: 2012-03-16
- Posts: 15
eigene Tiles hosten
Hallo zusammen,
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.
Gruß
Offline
#2 2012-03-29 08:57:50
- ajoessen
- Member
- Registered: 2009-09-16
- Posts: 2,074
Re: eigene Tiles hosten
Hallo zusammen,
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.
Gruß
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.
Gruß,
ajoessen
Offline
#3 2012-03-29 09:14:53
- stephan75
- Member
- Registered: 2008-05-28
- Posts: 2,907
Re: eigene Tiles hosten
Vielleicht helfen dir ja die HOWTOs auf http://switch2osm.org/ weiter ...?
Offline
#4 2012-03-29 09:18:19
- MikeOSM
- Member
- Registered: 2012-03-16
- Posts: 15
Re: eigene Tiles hosten
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?
Offline
#5 2012-03-29 09:22:00
- aighes
- Member
- From: Shanghai
- Registered: 2009-03-29
- Posts: 5,356
- Website
Re: eigene Tiles hosten
Nicht so wirklich, weil die jeweilige Dateigröße davon abhängt, was alles gerendert wird.
Viele Grüße
Henning, developer of RadReiseKarte
Offline
#6 2012-03-29 09:36:07
- ajoessen
- Member
- Registered: 2009-09-16
- Posts: 2,074
Re: eigene Tiles hosten
Gibt es ein Tool womit ich die Kachelanzahl bzw. die Größe der Karte berechnen kann?
So als grobe Hausnummer:
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.
HTH,
ajoessen
Offline
#7 2012-03-29 09:41:01
- MikeOSM
- Member
- Registered: 2012-03-16
- Posts: 15
Re: eigene Tiles hosten
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.
Offline
#8 2012-03-29 09:57:37
- ajoessen
- Member
- Registered: 2009-09-16
- Posts: 2,074
Re: eigene Tiles hosten
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.
Ist alles hier dokumentiert:
http://wiki.openstreetmap.org/wiki/User:Ajoessen/Mapnik
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.
Gruß,
ajoessen
Last edited by ajoessen (2012-03-29 10:00:48)
Offline
#9 2012-03-29 10:16:06
- Nop
- Moderator
- Registered: 2009-01-26
- Posts: 2,849
Re: eigene Tiles hosten
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
- oder viiiiiel Zeit mitbringen :-)
bye
Nop
Nothing is too difficult for the man who does not have to do it himself...
Projekte: Reit- und Wanderkarte mit Navigation - Kartengenerator Map Composer - GPS Track Editor Track Guru
Offline
#10 2012-03-29 10:22:19
- ajoessen
- Member
- Registered: 2009-09-16
- Posts: 2,074
Re: eigene Tiles hosten
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
- oder viiiiiel Zeit mitbringen :-)
Allerdings funktioniert das alles wohl nur mit Linux. Wenn man sich erst darin einarbeiten muß, braucht man mindestens ebensoviel Zeit.
NRW Zoomstufe 15 in 21 Stunden bei mir unter Windows XP; oder 2 Stunden für 0,5x0,5 Grad.
Gruß,
ajoessen
Offline
#11 2012-03-29 10:56:13
- quasilotte
- Member
- Registered: 2011-01-29
- Posts: 379
Re: eigene Tiles hosten
NRW Zoomstufe 15 in 21 Stunden bei mir unter Windows XP
Oder bei mir 9-10 Stunden mit Maperitive (Zoom 8-16 !!!)
Offline
#12 2012-03-29 11:16:54
- Nop
- Moderator
- Registered: 2009-01-26
- Posts: 2,849
Re: eigene Tiles hosten
Allerdings funktioniert das alles wohl nur mit Linux. Wenn man sich erst darin einarbeiten muß, braucht man mindestens ebensoviel Zeit.
Was genau ist "alles"? :-)
Ich habe meine Tiles früher mit Mapnik/Python unter Win7 lokal erzeugt. Gibt's inzwischen die Tools nicht mehr für Windows?
bye
Nop
Nothing is too difficult for the man who does not have to do it himself...
Projekte: Reit- und Wanderkarte mit Navigation - Kartengenerator Map Composer - GPS Track Editor Track Guru
Offline
#13 2012-03-29 11:35:03
- MikeOSM
- Member
- Registered: 2012-03-16
- Posts: 15
Re: eigene Tiles hosten
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
- oder viiiiiel Zeit mitbringen :-)bye
Nop
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.
Danke für die Antworten bisher.
Offline
#14 2012-03-29 12:06:54
- ajoessen
- Member
- Registered: 2009-09-16
- Posts: 2,074
Re: eigene Tiles hosten
ajoessen wrote:Allerdings funktioniert das alles wohl nur mit Linux. Wenn man sich erst darin einarbeiten muß, braucht man mindestens ebensoviel Zeit.
Was genau ist "alles"? :-)
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.
Gruß,
ajoessen
Last edited by ajoessen (2012-03-29 12:08:38)
Offline
#15 2012-03-29 12:10:26
- ajoessen
- Member
- Registered: 2009-09-16
- Posts: 2,074
Re: eigene Tiles hosten
Also wenn ich mir Python und Mapnik installiere dann kommen da nicht gleich die passenden Kacheln fürs Web heraus?
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.
Gruß,
ajoessen
Offline
#16 2012-03-29 12:58:12
- MikeOSM
- Member
- Registered: 2012-03-16
- Posts: 15
Re: eigene Tiles hosten
Das klingt gut. Ich werde das die Tage mal testen.
Offline
#17 2012-03-29 13:14:06
- Nop
- Moderator
- Registered: 2009-01-26
- Posts: 2,849
Re: eigene Tiles hosten
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.
bye
Nop
Nothing is too difficult for the man who does not have to do it himself...
Projekte: Reit- und Wanderkarte mit Navigation - Kartengenerator Map Composer - GPS Track Editor Track Guru
Offline
#18 2012-03-29 13:20:18
- brogo
- Member
- From: 54,11 +-1°
- Registered: 2009-06-02
- Posts: 553
Re: eigene Tiles hosten
Für große Gebiete mußt Du also
- Metatiles erzeugen und hinterher auspacken
- oder Metatiles rendern und in Python in Einzelkacheln zerlegen
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.
Ich hatte dazu schon mal ein Ticket [1] erstellt.
Christian
Offline
#19 2012-03-29 13:20:59
- mdk
- Member
- Registered: 2010-08-18
- Posts: 304
Re: eigene Tiles hosten
In der April-Ausgabe der iX gibt es einen ausführlichen Artikel über "OSM-Daten in eigenen Karten nutzen":
http://www.heise.de/ix/inhalt/2012/04/136/
mdk
Offline
#20 2012-03-29 13:45:54
- ikonor
- Member
- Registered: 2010-11-08
- Posts: 619
- Website
Re: eigene Tiles hosten
nutze aber momentan zum testen Tilemill, da bekomme ich aber scheinbar keine Webtiles exportiert. Das rendern damit geht aber supereinfach.
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.
Offline
#21 2012-03-29 13:58:25
- ajoessen
- Member
- Registered: 2009-09-16
- Posts: 2,074
Re: eigene Tiles hosten
MikeOSM wrote:nutze aber momentan zum testen Tilemill, da bekomme ich aber scheinbar keine Webtiles exportiert. Das rendern damit geht aber supereinfach.
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.
polytiles.py aus dem Standard-Mapnik-Paket scheint sowas auch zu machen. Habs nur noch nie probiert.
Gruß,
ajoessen
Offline
#22 2012-03-29 14:20:37
- Nop
- Moderator
- Registered: 2009-01-26
- Posts: 2,849
Re: eigene Tiles hosten
Nop wrote:Für große Gebiete mußt Du also
- 1)Metatiles erzeugen und hinterher auspacken
- 2)oder Metatiles rendern und in Python in Einzelkacheln zerlegenWo ist der Unterschied zwischen den Varianten?
1) Metatile wird auf die Platte geschrieben und später wieder von anderem Tool weiterverarbeitet
2) Metatile wird nur im Speicher gerendert und gleich in Einzelkacheln gespeichert, Metatile taucht auf Platte nie auf
Weiß Du wie ich das machen kann ohne tirex oder renderd zu installieren?
1) Nein.
2) Entsprechendes Python Skript.
Metatiles haben bei Mapnik ja außerdem den Vorteil, daß die Beschriftung über den Rand eines normalen Tiles hinausgehen kann.
Nein, das Eine hat mit dem Anderen nichts zu tun.
Um die Beschriftung zu erhalten wird normalerweise ein zusätzlicher Rand von 1/2 Tile mitgerendert und verworfen. Das kann man auch für einzelne Tiles machen. Umgekehrt kann man auch Metatiles ohne Rand rendern.
bye
Nop
Nothing is too difficult for the man who does not have to do it himself...
Projekte: Reit- und Wanderkarte mit Navigation - Kartengenerator Map Composer - GPS Track Editor Track Guru
Offline
#23 2012-03-29 14:37:38
- MikeOSM
- Member
- Registered: 2012-03-16
- Posts: 15
Re: eigene Tiles hosten
MikeOSM wrote:nutze aber momentan zum testen Tilemill, da bekomme ich aber scheinbar keine Webtiles exportiert. Das rendern damit geht aber supereinfach.
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.
Danke für den Tipp. Das wär ja top wenn das geht. Hatte mich gerade in Mapnik ein bißchen eingelesen. Das scheint ja ne Quälerei zu sein damit zu arbeiten.
Offline
#24 2012-03-29 17:43:17
- MikeOSM
- Member
- Registered: 2012-03-16
- Posts: 15
Re: eigene Tiles hosten
Weiß jemand wie ich dieses mbutil zum laufen bekomme? Python habe ich installiert aber ich habe keine Ahnung was ich da starten oder ob ich das Ding noch installieren muss.
Offline
#25 2012-03-29 17:54:05
- ajoessen
- Member
- Registered: 2009-09-16
- Posts: 2,074
Re: eigene Tiles hosten
Weiß jemand wie ich dieses mbutil zum laufen bekomme? Python habe ich installiert aber ich habe keine Ahnung was ich da starten oder ob ich das Ding noch installieren muss.
Am Anfang stehen einige Bibliotheken, die er laden möchte:
import sqlite3, uuid, sys, logging, time, os, json, zlib, glob, shutil
Die musst du erst mal an der richtigen Stelle installiert haben, sonst läuft da nix.
Der Vorteil von Mapnik ist halt, dass alle Abhängigkeiten gut dokumentiert sind. Bei Exoten wie mbutil kommt man nicht drum herum, den Entwickler danach zu fragen :-(
Gruß,
ajoessen
Offline