3. Creazione immagini e tiles utilizzando lo stile principale di OpenStreetMap

Requisiti

Primi passi

Dopo aver creato il database italia_osm seguendo la precedente guida, dovrete entrare nella solita cartella $HOME/osm scaricare dal sistama di versionamento di OpenStreetMap, l’ultima versione dello stile del portale principale del progetto, tramite il comando

svn co svn.openstreetmap.org/applications/rendering/mapnik openstreetmap_main

A questo punto entrare nella cartella openstreetmap_main prima di incominciare a testare lo stile dovrete per prima cosa scaricare i dati utili non presenti all’interno del database di OpenStreetMap, lanciate lo script dedicato a ciò, tramite:

./get-coastlines.sh

Il suo compito è quello di scaricare quattro file contenenti ESRI Shapefiles (processed_p.tar.bz2, shoreline_300.tar.bz2, 10m-populated-places.zip, 110m-admin-0-boundary-lines.zip) e decomprimerli dentro la cartella world_boundaries.

Renderizzare un’immagine statica

A questo punto siete pronti per lanciare tre comandi che vi permetteranno di ottenere la mappa desiderata. Per prima cosa andiamo a compilare il file xml contente lo stile da utilizzare con Mapnik.

All’interno della cartella avrete un file osm.xml che contiene lo “scheletro” del vostro foglio di stile e che dovrete compilare utilizzando generate_xml.py. Questo comando legge da alcuni file, contenuti nella cartella inc, le regole per lo stile dei vari elementi che vengono suddivisi in singole pagine per facilitarne la lettura e la modifica; inoltre utilizza dei template per permettere l’inserimento di alcuni dati “personali”

Ecco il comando da lanciare:

python generate_xml.py --dbname italia_osm --user $USER --password "vostrapassword" --host localhost osm.xml vostro_stile.xml

Avvertimento

Lanciando il comando con la vostra password questa verrà salvata nella history, per maggiore sicurazza potete pensare di elimintare la linea contentente la password dal file $HOME/.history

Adesso dovrete aggiornare il file per essere conforme con Mapnik2

upgrade_map_xml.py vostro_stile.xml vostro_stile2.xml

L’ultimo passaggio da fare prima di stampare attraverso Mapnik è quello di modificare leggermente il file generate_image.py impostando il nome del file di configurazione, il nome di file di output (di default è image.png, si può lasciare anche quello) e la regione che si vuole stampare (tramite le quattro coordinate estreme espresse in latitudine e longitudine decimali).

Bisogna modificare le seguenti impostazioni del file generate_image.py

#il vostro mapfile
mapfile = "vostro_stile.xml"
#per il confine italiano
bounds = (6.602728, 35.489256, 18.517970, 47.085215)
#le dimensioni del file
imgx =
imgy =

A questo punto potete lanciare il comando

python generate_image.py

Ed ecco l’immagine risultante

_images/main_osm.png