|
Dimensione: 7461
Commento:
|
Dimensione: 3801
Commento: tolta guida alla compilazione
|
| Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
| Linea 9: | Linea 9: |
| Questa guida vuole essere una traduzione abbastanza fedele della [http://trac.mapnik.org/wiki/UbuntuInstallation/ guida all'istallazione di Mapnik su Ubuntu 8.04] presente nel sito ufficiale di Mapnik, arricchita con alcuni punti personali. | Questa guida contiene le istruzioni necessarie per l'installazione di '''Mapnik''', uno strumento utile alla realizzazione di mappe a partire da dati vettoriali e raster. |
| Linea 11: | Linea 11: |
| = Preparativi = | |
| Linea 12: | Linea 13: |
| '''Mapnik''' è un toolkit (insieme di strumenti) per la realizzazione di mappe a partire da dati vettoriali e raster ed è un'ottima alternativa ai più famosi [http://mapserver.gis.umn.edu/ Mapserver] e [http://geoserver.org/display/GEOS/Welcome Geoserver]. E' scritto in C++, permette un render molto veloce e utilizza Python bindings che supportano uno sviluppo semplice e veloce delle mappe. Grazie all'ottima [http://mapnik.org/documentation/ documentazione] e ai numerosi [http://trac.mapnik.org/wiki/ExampleCode esempi di codice] l'uso di Mapnik non è precluso a chi non ha conoscenze di programmazione. Mapnik viene usato normalmente per lo sviluppo di applicazioni web ma è adatto anche per la creazione di mappe a livello desktop. | Abilitare i [:Repository/Componenti:componenti] '''universe''' e '''multiverse''' dei [:Repository:repository] ufficiali. |
| Linea 14: | Linea 15: |
| = Installazione da repository = | |
| Linea 15: | Linea 17: |
| Mapnik inoltre è il renderer "ufficiale" del progetto di cartografia libera [http://openstreetmap.org openstreetmap]. = Installazione da Repository (Ubuntu 8.04) = |
[:AmministrazioneSistema/InstallareProgrammi:Installare] il pacchetto ''python-mapnik''. |
| Linea 18: | Linea 19: |
| Per Ubuntu 8.04 è presente nei [http://wiki.ubuntu-it.org/Repository?highlight=%28repository%29 repository] Universe il pacchetto ''python-mapnik'' che contiene Mapnik 0.4 e può essere comodamente installato tramire apt-get. | = Esempio con Mapnik = |
| Linea 20: | Linea 21: |
| {{{ sudo apt-get install python-mapnik }}} Se si volesse installare l'ultima versione (Mapnik 0.5) bisognerà [:AmministrazioneSistema/InstallareProgrammi/DaSorgenti:compilare i sorgenti] (vedi sotto). |
Di seguito viene mostrato un primo esempio di utilizzo di '''Mapnik'''. |
| Linea 25: | Linea 23: |
| = Installazione tramite sorgenti (Ubuntu 8.04) = | 0. Scaricare a [http://mappinghacks.com/data/world_borders.zip questo indirizzo] un dataset vettoriale in formato [http://it.wikipedia.org/wiki/Shapefile ESRI Shapefile], decomprimerlo e salvarlo all'interno della propria '''Home'''. |
| Linea 27: | Linea 25: |
| == Installazione dipendenze == * Innanzitutto vanno aggiornati i pacchetti già installati {{{ aptitude update aptitude upgrade }}} |
0. Scrivere uno script in python che punti a questo file ne definisca lo stile e l'estensione geografica. Per fare questo salvare il seguente script all'interno della propria '''Home''' in un file chiamato `mappa.py`. L'estensione geografica dello script rende l'area relativa al mediterraneo. Modificare le coordinate se si desidera rendere un'altra zona geografica, non dimenticando di modificare il percorso allo shapefile: {{{ #!/usr/bin/env python |
| Linea 34: | Linea 28: |
| * Installazione delle dipendenze boost richieste tramite [:AmministrazioneSistema/Aptitude:Aptitude]: | from mapnik import * |
| Linea 36: | Linea 30: |
| {{{ aptitude install binutils cpp-3.3 g++-3.3 gcc-3.3 gcc-3.3-base libboost-dev libboost-filesystem-dev libboost-filesystem1.34.1 libboost-iostreams-dev libboost-iostreams1.34.1 libboost-program-options-dev libboost-program-options1.34.1 libboost-python-dev libboost-python1.34.1 libboost-regex-dev libboost-regex1.34.1 libboost-serialization-dev libboost-serialization1.34.1 libboost-thread-dev libboost-thread1.34.1 libicu-dev libicu38 libstdc++5 libstdc++5-3.3-dev python2.5-dev }}} |
# Definizione delle dimensioni della mappa # e il sistema di riferimento geografico (latlon WGS84) m = Map(500,300,"+proj=latlong +datum=WGS84") |
| Linea 40: | Linea 34: |
| * Altre dipendenze richieste {{{ sudo aptitude install libfreetype6 libfreetype6-dev libjpeg62 libjpeg62-dev libltdl3 libltdl3-dev libpng12-0 libpng12-dev libtiff4 libtiff4-dev libtiffxx0c2 python-imaging python-imaging-dbg proj }}} * Opzionale: Cairo Renderer dipendenze {{{ sudo aptitude install libcairo2 libcairo2-dev python-cairo python-cairo-dev libcairomm-1.0-1 libcairomm-1.0-dev libglib2.0-0 libpixman-1-0 libpixman-1-dev libpthread-stubs0 libpthread-stubs0-dev ttf-dejavu ttf-dejavu-core ttf-dejavu-extra }}} * Opzionale: Installazione di altri strumenti GIS (Vedi in proposito anche la guida [:UbuntuGis:UbuntuGis]) {{{ sudo aptitude install libgdal-dev python2.5-gdal postgresql-8.3-postgis postgresql-8.3 postgresql-server-dev-8.3 postgresql-contrib-8.3 |
# Colore dello sfondo m.background = Color('steelblue') # Creazione di uno stile s = Style() # Definizione dello stile, possono esserci una o più regole. # Una regola può comprendere un filtro, la definizione di scale minima e massima, # uno o più Symbolizers (PolygonSymbolizer e LineSymbolizer) r=Rule() # Colore di riempimento dei poligoni r.symbols.append(PolygonSymbolizer(Color('#f2eff9'))) # Colore e spessore delle linee di contorno r.symbols.append(LineSymbolizer(Color('rgb(50%,50%,50%)'),0.1)) s.rules.append(r) # Aggiunta dello stile alla mappa e definizione di un nome # da usare nella definizione del livello m.append_style('My Style',s) # Vengono definiti i nomi di uno o più livelli lyr = Layer('world') # Percorso allo shapefile. # Lo shapefile deve essere indicato senza esenzione! lyr.datasource = Shapefile(file='/percorso/ai/dati/world_borders') # Aggiunta dello stile al livello lyr.styles.append('My Style') # Aggiunta del livello della mappa m.layers.append(lyr) # Definizione dell'estensione geografica, le due coppie di coordinate # corrispondono ai due angoli basso-sinistro e alto-destro della mappa bbox = Envelope(Coord(6, 34), Coord(22, 48)) # Ingrandimento all'estensione geografica definita prima m.zoom_to_box(bbox) # Conversione la mappa m nel file italia.png con formato .png render_to_file(m,'italia.png', 'png') |
| Linea 54: | Linea 81: |
| == Compilazione e installazione == * Se non si sono installate Postgis, Gdal e non si ha intenzione di usare Mapnik come server WMS è suffiente dare i seguenti comandi {{{ mkdir ~/src cd ~/src svn co svn://svn.mapnik.org/trunk mapnik cd mapnik python scons/scons.py sudo python scons/scons.py install }}} * Se invece si sono istallati Postgis, Gdal e si ha intenzione di usare il supporto WMS è necessario specificare il percorso alle librerie necessarie. {{{ python scons/scons.py DEBUG=y PGSQL_INCLUDES=/usr/include/postgresql/ PGSQL_LIBS=/usr/lib/postgresql/8.3/lib GDAL_INCLUDES=/usr/local/include GDAL_LIBS=/usr/local/lib XMLPARSER=libxml2 sudo python scons/scons.py install DEBUG=y PGSQL_INCLUDES=/usr/include/postgresql/ PGSQL_LIBS=/usr/lib/postgresql/8.3/lib GDAL_INCLUDES=/usr/local/include GDAL_LIBS=/usr/local/lib XMLPARSER=libxml2 }}} ||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Se si dovesse ricevere in fase di compilazione un messaggio di errore relativo alla libreria m, è necessario disinstallare il pacchetto '' '''libcairomm-1.0-dev'''. || * Infine dare i seguente comando {{{ sudo ldconfig |
0. Una volta salvato il file bisogna impostare i [:AmministrazioneSistema/PermessiFile:permessi] d'esecuzione, digitando all'interno di una finestra di terminale il seguente comando:{{{ chmod +x ~/mappa.py }}} 0. Avviare lo script lanciando il seguente comando all'interno di una finestra di terminale:{{{ ./mappa.py |
| Linea 77: | Linea 88: |
= Testare se l'installazione è andata a buon fine = Aprire una console di python oppure dare nel terminale il comando {{{ python }}} adesso all'interno di python dare il comando {{{ import mapnik }}} Se non si riceve nessun output l'installazione dovrebbe essere andata bene e si può passare al [http://trac.mapnik.org/wiki/GettingStarted tutorial] = Opzionale: Compilazione del Viewer = Mapnik comprende un Viewer (visualizzatore) per la visualizzazione di mapfile di tipo xml. Il Viewer permette: * la visualizzazione on-the-fly dei tiles * di leggere nel terminale i correnti livelli di zoom e envelope * possibilità di zoomare tramite query * di leggere eventuali errori di configurazione della mappa * di esportare in diversi formati tra cui tif == Compilazione e installazione == Il Viewer è incluso nell'installazione di Mapnik ma dev'essere compilato a parte. Per la compilazione sono necessari Qt4 (compreso il pacchtto dev) e qmake. * Entrare della cartella che contiene il Viewer (questo comando è valido solo per l'installazione tramite sorgenti illustrata sopra. Se si è installato dai repository il viewer è in un'altra posizione) {{{ cd ~/src/mapnik/dem/viewer }}} * E' necessario adattare alcuni file al proprio sistema * Aprire il file `viewer.pro` con un qualsiasi [:Ufficio/EditorDiTesto:editor di testo] e modificarlo il percorso di INCLUDEPATH come segue {{{ INCLUDEPATH += /usr/local/include/mapnik INCLUDEPATH += /usr/include/boost-1_34_1 INCLUDEPATH += /usr/include/freetype2 INCLUDEPATH += . }}} * Modificare anche la riga unix.LIBS come segue {{{ unix:LIBS += -L/usr/local/lib -lmapnik }}} * Aprire il file `main.cpp` con un qualsiasi [:Ufficio/EditorDiTesto:editor di testo] modificarlo specificando il percorso ai font a ai plugin di Mapnik come segue {{{ datasource_cache::instance()->register_datasources("/usr/local/lib/mapnik/input"); freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSans.ttf"); freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSans-Bold.ttf"); freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSansMono.ttf"); }}} * Compilare e installare il Viewer {{{ /usr/bin/qmake-qt4 -makefile make }}} == Lanciare il Viewer == Restando nella stessa directory dare il seguente comando {{{ ./viewer }}} * Per visualizzare un mapfile lanciare il viewer aggiungendo il percorso dello stesso {{{ ./viewer /percorso/mapfile.xml }}} |
0. Il risultato dovrebbe essere il file `italia.png` che rappresenta la mappa. |
| Linea 138: | Linea 92: |
| * [http://trac.mapnik.org/ wiki di Mapnik] * [http://mike.teczno.com/notes/mapnik.html consigli stilistici] * [http://trac.mapnik.org/wiki/UbuntuInstallation/ documento originale] * [:UbuntuGis: guida all'installazione di altri strumenti GIS] ## da questo punto in poi non modificare! |
* [http://trac.mapnik.org/wiki/UbuntuInstallation/ Documento originale] * [http://mapnik.org/documentation/ Documentazione ufficiale] * [http://trac.mapnik.org/wiki/ExampleCode Esempi di codice] * [:UbuntuGis:Guida all'installazione di Ubuntu GIS] * [http://trac.mapnik.org/wiki/InstallationTroubleshooting/ Risoluzione dei problemi in fase di compilazione] |
Introduzione
Questa guida contiene le istruzioni necessarie per l'installazione di Mapnik, uno strumento utile alla realizzazione di mappe a partire da dati vettoriali e raster.
Preparativi
Abilitare i [:Repository/Componenti:componenti] universe e multiverse dei [:Repository:repository] ufficiali.
Installazione da repository
[:AmministrazioneSistema/InstallareProgrammi:Installare] il pacchetto python-mapnik.
Esempio con Mapnik
Di seguito viene mostrato un primo esempio di utilizzo di Mapnik.
Scaricare a [http://mappinghacks.com/data/world_borders.zip questo indirizzo] un dataset vettoriale in formato [http://it.wikipedia.org/wiki/Shapefile ESRI Shapefile], decomprimerlo e salvarlo all'interno della propria Home.
Scrivere uno script in python che punti a questo file ne definisca lo stile e l'estensione geografica. Per fare questo salvare il seguente script all'interno della propria Home in un file chiamato mappa.py. L'estensione geografica dello script rende l'area relativa al mediterraneo. Modificare le coordinate se si desidera rendere un'altra zona geografica, non dimenticando di modificare il percorso allo shapefile:
from mapnik import * # Definizione delle dimensioni della mappa # e il sistema di riferimento geografico (latlon WGS84) m = Map(500,300,"+proj=latlong +datum=WGS84") # Colore dello sfondo m.background = Color('steelblue') # Creazione di uno stile s = Style() # Definizione dello stile, possono esserci una o più regole. # Una regola può comprendere un filtro, la definizione di scale minima e massima, # uno o più Symbolizers (PolygonSymbolizer e LineSymbolizer) r=Rule() # Colore di riempimento dei poligoni r.symbols.append(PolygonSymbolizer(Color('#f2eff9'))) # Colore e spessore delle linee di contorno r.symbols.append(LineSymbolizer(Color('rgb(50%,50%,50%)'),0.1)) s.rules.append(r) # Aggiunta dello stile alla mappa e definizione di un nome # da usare nella definizione del livello m.append_style('My Style',s) # Vengono definiti i nomi di uno o più livelli lyr = Layer('world') # Percorso allo shapefile. # Lo shapefile deve essere indicato senza esenzione! lyr.datasource = Shapefile(file='/percorso/ai/dati/world_borders') # Aggiunta dello stile al livello lyr.styles.append('My Style') # Aggiunta del livello della mappa m.layers.append(lyr) # Definizione dell'estensione geografica, le due coppie di coordinate # corrispondono ai due angoli basso-sinistro e alto-destro della mappa bbox = Envelope(Coord(6, 34), Coord(22, 48)) # Ingrandimento all'estensione geografica definita prima m.zoom_to_box(bbox) # Conversione la mappa m nel file italia.png con formato .png render_to_file(m,'italia.png', 'png')Una volta salvato il file bisogna impostare i [:AmministrazioneSistema/PermessiFile:permessi] d'esecuzione, digitando all'interno di una finestra di terminale il seguente comando:
chmod +x ~/mappa.py
Avviare lo script lanciando il seguente comando all'interno di una finestra di terminale:
./mappa.py
Il risultato dovrebbe essere il file italia.png che rappresenta la mappa.
Ulteriori risorse
[http://trac.mapnik.org/wiki/UbuntuInstallation/ Documento originale]
[http://mapnik.org/documentation/ Documentazione ufficiale]
[http://trac.mapnik.org/wiki/ExampleCode Esempi di codice]
[:UbuntuGis:Guida all'installazione di Ubuntu GIS]
[http://trac.mapnik.org/wiki/InstallationTroubleshooting/ Risoluzione dei problemi in fase di compilazione]
