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

2016-09-19 Diskussionsfäden Sven Geggus
Alexrk  wrote:

> 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.

Einfacher ist es stattdessen kosmtik[1] oder Magnacarto[2] zu verwenden,
wenn der Stil mit cartoCSS erstellt wurde.  Beim osm Standardstil ist das
der Fall.

[1] https://github.com/kosmtik
[2] https://github.com/omniscale/magnacarto

Gruss

Sven

-- 
"Thinking of using NT for your critical apps?
  Isn't there enough suffering in the world?"
   (Advertisement of Sun Microsystems in Wall Street Journal)
/me is giggls@ircnet, http://sven.gegg.us/ on the Web

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


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

2016-09-12 Diskussionsfäden Alexrk
Da ich wie gesagt keinen eigenen Server aufsetzen, sondern lediglich für 
ein lokales Gebiet eine Karte erzeugen möchte, habe ich einfach die 
Ausschnitte von Geofabrik bsw. für ein Bundesland genommen. Das geht 
recht schnell zu importieren.



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


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

2016-09-12 Diskussionsfäden Alexrk

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


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

2016-09-12 Diskussionsfäden gmbo

Am 11.09.2016 um 18:56 schrieb Alexrk:
Leider finde ich im OSM-Wiki nur eher konfuse und größtenteils 
veraltete Anleitungen. Ich habe soweit die Daten schon in PostGIS und 
Mapnik (per Ubuntu/OSGeoLive) installiert. Wie so ein Carto-Style nun 
mit Mapnik zusammen zu einem PNG als Ausgabe führt, ist mir aber noch 
ein Rätsel.


Ich habe mit Hilfe von Sven Geggus inzwischen auch so eine Datenbank 
aufsetzen können.

Das war nicht so ganz einfach, da es da Versionsabhängig einige Hürden gibt.
Die Umsetzung mit osm2pgsql ist mit größeren Gebieten recht aufwendig 
was Rechnerleistung und Zeit betrifft.
Auch die Version spielt  eine Rolle. Die Version für den deutschen, 
sollte aber für CartoCSS auch gelten, wird mindestens  0.89 benötigt, da 
die  nocolumn option dort erst eingebaut ist.


Die Version die Ubuntu 16.04 mitbringt ist zu alt und hat mir anfangs 
viel Kopfzerbrechen gemacht, da die ersten Renderversuche dadurch fast 
leere Tiles ergaben.
Ich habe mir dann die letzte Version als Quellen geholt und damit lief 
das ganze fast rund.
Fast, da ich wegen meiner langsamen Internetanbindung davon ausging, 
dass es möglich wäre mit einem Bundesland anzufangen und dann zu erweitern.
Das klappt so anscheinend aber nicht, da das erweiten bei mir immer zu 
Abruch führte und die vorgeschlagene  Lösung im zusammensetzen des 
OSM-Files und neueinlesen bestand.
Ein rechteckiger Ausschnitt etwas größer als DACH bringt einer 2 Kern 
3500 AMD mit 12 GB Ram und normaler SATA Platte ca. 4 Tage Arbeit.  Die 
Swap-Partition sollte nicht kleiner als 32 GB sein.


OSM-Wiki war mir da auch keine große Hilfe, Habe aber vor den Weg für 
den deutschen Carto Style in Deutsch einzubringen.



Schau dir mal die Beschreibungen in Github zu
https://github.com/giggls/mapnik-german-l10n und
https://github.com/giggls/openstreetmap-carto-de
an, die Beschreibungen sind auf einem neuen Stand.

Ich brauche keinen TileServer, nur erstmal eine Möglichkeit, überhaupt 
Karten lokal zu erstellen. 
Für den deutschen Style kann ich mit dem Tool render_single_tile.py 
 
einzelne Kacheln erstellen.
Warnungen sollten nur noch für Schriftarten da sein, da in den Styles 
meiner Meinung nach Doppel wegen unterschiedlicher Betriebssysteme  
eingeplegt sind.


Gruß
Gisbert


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


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

2016-09-12 Diskussionsfäden lars lingner
Guten Morgen,

auf der OSGeoLive [1] gibt es auch ein Mapnik-Quickstart Dokument [2]
mit Copy-Paste-Anleitung um mit Mapnik-Python ein Kartenbild zu rendern.
Im Mapnik-Repository [3] findest du weitere Beispiele.

Im Repository des osm-carto-styles gibt es auch eine Anleitung [4] zum
Setup des gesamten Stacks. Wenn das läuft wird auch osm-bright keine
Probleme bereiten.

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


Viele Grüße

Lars


[1] http://live.osgeo.org/
[2] http://live.osgeo.org/de/quickstart/mapnik_quickstart.html
[3] https://github.com/mapnik/mapnik/wiki/MapnikTutorials
[4]
https://github.com/gravitystorm/openstreetmap-carto/blob/master/INSTALL.md


Am 11.09.2016 um 18:56 schrieb Alexrk:
> Hallo zusammen,
> 
> nachdem ich in der Vergangenheit meist mit Maperitive gearbeitet habe,
> möchte ich es nun mal mit dem "OSM-eigenen" Rendering versuchen. Leider
> finde ich im OSM-Wiki nur eher konfuse und größtenteils veraltete
> Anleitungen. Ich habe soweit die Daten schon in PostGIS und Mapnik (per
> Ubuntu/OSGeoLive) installiert. Wie so ein Carto-Style nun mit Mapnik
> zusammen zu einem PNG als Ausgabe führt, ist mir aber noch ein Rätsel.
> 
> Ich brauche keinen TileServer, nur erstmal eine Möglichkeit, überhaupt
> Karten lokal zu erstellen. (Bsw. mit dem OSM-Bright Stil von
> https://github.com/mapbox/osm-bright)
> 
> Was muss ich da tun?
> 
> 
> Viele Grüße
> Alex
> 
> 

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