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)


_______________________________________________
Talk-de mailing list
Talk-de@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-de

Antwort per Email an