eigene Tiles hosten

Nicht so wirklich, weil die jeweilige Dateigröße davon abhängt, was alles gerendert wird.

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

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

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

bye
Nop

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

Oder bei mir 9-10 Stunden mit Maperitive (Zoom 8-16 !!!)

Was genau ist “alles”? :slight_smile:

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

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.

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

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

Das klingt gut. Ich werde das die Tage mal testen.

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

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

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

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

  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
  1. Nein.
  2. Entsprechendes Python Skript.

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

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.

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.