You are not logged in.

#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

MikeOSM wrote:

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,892

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,328
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

MikeOSM wrote:

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

MikeOSM wrote:

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,793

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

Nop wrote:

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

ajoessen wrote:

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,793

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"?  :-)

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

Nop wrote:

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

Nop wrote:
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

MikeOSM wrote:

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,793

Re: eigene Tiles hosten

ajoessen wrote:

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: 552

Re: eigene Tiles hosten

Nop wrote:

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

[1] http://trac.openstreetmap.org/ticket/4179

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: 612
Website

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.

Offline

#21 2012-03-29 13:58:25

ajoessen
Member
Registered: 2009-09-16
Posts: 2,074

Re: eigene Tiles hosten

ikonor wrote:
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,793

Re: eigene Tiles hosten

brogo wrote:
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 zerlegen

Wo 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

brogo wrote:

Weiß Du wie ich das machen kann ohne tirex oder renderd zu installieren?

1) Nein.
2) Entsprechendes Python Skript.

brogo wrote:

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

ikonor wrote:
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

MikeOSM wrote:

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

Board footer

Powered by FluxBB