[Talk-de] Suche Starthilfe Mapnik, eigene Karten rendern

Alexrk alexrk2 at yahoo.de
Mo Sep 12 15:51:01 UTC 2016


Hallo Lars,

danke für Deine Hinweise. Ich hab es jetzt geschafft, ein PNG zu 
exportieren. Juhu :) Der entscheidende letzte Baustein, der mir noch 
fehlte, war ein Python-Skript zu schreiben, welches über die Mapnik-API 
das PNG erzeugt.

Meine Schritte waren jetzt:

- eine neue PostGIS Datenbank namens "gis" anlegen (anscheinend wird das 
vom Style vorausgesetzt?)- eine OSM-Datei für ein Bundesland nach 
PostGIS (nach "gis") importiert
- NPM installiert (sudo apt-get install npm)
- Carto installiert (https://github.com/mapbox/carto/blob/master/README.md)
- gravitysorm/openstreetmap-carto installiert 
(https://github.com/gravitystorm/openstreetmap-carto/blob/master/INSTALL.md)
- gemäß INSTALL.md die Shapefiles runtergeladen und Fonts installiert
- mittels Carto aus der project.mml die mapnik.xml erzeugt (carto 
project.mml > mapnik.xml)
- und dann besagtes Python-Skript geschrieben (habe ich unten mal angehängt)

Jetzt kann ich mich erstmal weiter mit dem Styling beschäftigen.

 > Sag doch mal welche Anleitung du probiert hast und wo du gerade nicht
 > weiter kommst. Veraltete Anleitungen können ja aktualisiert werden ;)
 >

Ich hatte es erst mit "Mapnik/Rendering OSM XML data directly" probiert. 
Aber das osm-Plugin scheint in Mapnik 3 nicht mehr unterstützt.

Dann hatte ich "DE:HowTo_Mapnik_%26_Tirex#Mapnik_testen" gefunden, doch 
der Link zu dem render-tool auf toolserver.org ist tot, da ja Toolserver 
schon vor einer Weile abgeschaltet wurde.

Der sehr große Artikel "DE:Mapnik" war auch nicht sehr hilfreich, da 
sehr konfus.

Vielleicht magst Du ja die OSGeo-Live DVD um einen fertigen Stack zur 
lokalen Erzeugung einer OSM-Karte ergänzen.

Mit dem MapBox Studio geht das Styling zwar sehr komfortabel, nur darf 
ich diese Karten leider nicht in Wikipedia nutzen, da die keine Freie 
Lizenz haben. Aber so wie ich das verstehe, darf ich MapBox zumindest 
nutzen, um einen eigenen Style zu entwickeln.

Grüße
Alex



--------------- generate_map.py -------------------------

import mapnik
import sys, os

merc = mapnik.Projection('+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 
+lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs +over')
longlat = mapnik.Projection('+proj=longlat +ellps=WGS84 +datum=WGS84 
+no_defs')

imgx = 2000
imgy = 2000
map_uri = "image.png"

m = mapnik.Map(imgx,imgy)
bounds = (13.31,52.48, 13.36,52.51)

if hasattr(mapnik,'Box2d'):
     bbox = mapnik.Box2d(*bounds)
else:
     bbox = mapnik.Envelope(*bounds)

transform = mapnik.ProjTransform(longlat,merc)
merc_bbox = transform.forward(bbox)

sys.stdout.write('merc_bbox %s!\n' % merc_bbox)

mapnik.load_map(m, "/home/user/openstreetmap-carto-master/mapnik.xml")
m.zoom_to_box(merc_bbox)

im = mapnik.Image(imgx,imgy)
mapnik.render(m, im)
im.save(map_uri,'png')

sys.stdout.write('output image to %s!\n' % map_uri)





Mehr Informationen über die Mailingliste Talk-de