|
Dimensione: 12776
Commento: aggiunto un link in altre risorse
|
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: |
| '''Mapnik''' è un toolkit 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. | 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: |
| Mapnik inoltre è il renderer "ufficiale" del progetto di cartografia libera [http://openstreetmap.org openstreetmap]. = Installazione da Repository = |
= Preparativi = |
| Linea 14: | Linea 13: |
| Per installare '''Mapnik''' è necessario [:AmministrazioneSistema/InstallareProgrammi:installare] il pacchetto ''python-mapnik'', reperibile dal [:Repository/Componenti:componente] '''universe''' dei [:Repository:repository ufficiali]. | Abilitare i [:Repository/Componenti:componenti] '''universe''' e '''multiverse''' dei [:Repository:repository] ufficiali. |
| Linea 16: | Linea 15: |
| Per installare una versione più aggiornata non presente nei repository ufficiali si deve procedere tramite la [:AmministrazioneSistema/InstallareProgrammi/DaSorgenti:compilazione dei sorgenti]. | = Installazione da repository = |
| Linea 18: | Linea 17: |
| = Installazione tramite sorgenti = == Installazione dipendenze == * Installazione delle dipendenze boost richieste tramite:{{{ sudo 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 libfreetype6 libfreetype6-dev libjpeg62 libjpeg62-dev libltdl3 libltdl3-dev libpng12-0 libpng12-dev libtiff4 libtiff4-dev libtiffxx0c2 python-imaging python-imaging-dbg proj libxml2-dev xml2 g++ }}} * Opzionale: Cairo Renderer: {{{ 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 }}} ||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Nel caso si riceva un errore relativo alla libreria m in fase di compilazione, è necessario disinstallare il pacchetto'' '''libcairomm-1.0-dev'''. || * Opzionale: Installazione di altri strumenti [:UbuntuGis:GIS]:{{{ sudo aptitude install libgdal-dev python2.5-gdal postgresql-8.3-postgis postgresql-8.3 postgresql-server-dev-8.3 postgresql-contrib-8.3 }}} == Compilazione e installazione == Innanzitutto creiamo una cartella apposita nella nostra home, ci entriamo dentro e scarichiamo i sorgenti di Mapnik tramite [:Programmazione/Subversion:Subversion] {{{ mkdir ~/src cd ~/src svn co svn://svn.mapnik.org/trunk mapnik cd mapnik }}} === Installazione senza supporto Postgis, gdal e WMS === Se non si sono installati [http://www.postgis.org/ Postgis], le [http://it.wikipedia.org/wiki/GDAL librerie gdal] e non si ha intenzione di usare '''Mapnik''' come server [http://it.wikipedia.org/wiki/Web_Map_Service WMS] è suffiente dare i seguenti comandi all'interno di una finestra di terminale:{{{ python scons/scons.py sudo python scons/scons.py install }}} === Installazione con supporto Postgis, gdal e WMS === Se invece si sono istallati [http://www.postgis.org/ Postgis], le [http://it.wikipedia.org/wiki/GDAL librerie gdal] e si ha intenzione di usare il supporto [http://it.wikipedia.org/wiki/Web_Map_Service WMS] è necessario specificare il percorso alle librerie necessarie, digitando i seguenti comandi all'interno di una finestra di terminale:{{{ 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 }}} Digitare il seguente comando all'interno di una finestra di terminale:{{{ sudo ldconfig }}} = Test dell'installazione = 0. Aprire una console di python digitando all'interno di una finestra di terminale il seguente comando:{{{ python }}} 0. Iniziare le operazioni di verifica tramite il seguente comando:{{{ import mapnik }}} Se non dovesse essere restituito nessun output di errore l'installazione è andata bene e si può passare al capitolo successivo. |
[:AmministrazioneSistema/InstallareProgrammi:Installare] il pacchetto ''python-mapnik''. |
| Linea 71: | Linea 20: |
| Linea 80: | Linea 30: |
| #qui definiamo la mappa da rendere con le sue dimensioni | # Definizione delle dimensioni della mappa |
| Linea 84: | Linea 34: |
| #colore dello sfondo | # Colore dello sfondo |
| Linea 87: | Linea 37: |
| # Qui viene creato un stile | # Creazione di uno stile |
| Linea 90: | Linea 40: |
| # Adesso deve venir definito lo stile. Questo puo' # avere una o piu' rule (regole). Una rule puo' comprendere # un filtro, la definizione di scale minima e massima, # uno o piu' Symbolizers (PolygonSymbolizer e LineSymbolizer) |
# 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) |
| Linea 96: | Linea 45: |
| # colore di riempimento dei poligoni | # Colore di riempimento dei poligoni |
| Linea 99: | Linea 48: |
| # colore e spessore delle linee di contorno | # Colore e spessore delle linee di contorno |
| Linea 103: | Linea 52: |
| # Aggiungiamo lo stile alla mappa e gli diamo un nome # da usare nella definizione del layer (livello) |
# Aggiunta dello stile alla mappa e definizione di un nome # da usare nella definizione del livello |
| Linea 107: | Linea 56: |
| # Adesso vengono definiti uno o piu' layer (livelli). # Innanzitutto definiamo il nome dello stesso |
# Vengono definiti i nomi di uno o più livelli |
| Linea 111: | Linea 59: |
| ################################################################ #Percorso allo shapefile. --> DA CAMBIARE! # Lo shapefile deve essere indicato SENZA ESTENSIONE (senza .shp) ################################################################ |
# Percorso allo shapefile. # Lo shapefile deve essere indicato senza esenzione! |
| Linea 117: | Linea 63: |
| # aggiungiamo lo stile al layer | # Aggiunta dello stile al livello |
| Linea 120: | Linea 66: |
| # aggiungiamo il layer alla mappa da rendere | # Aggiunta del livello della mappa |
| Linea 123: | Linea 69: |
| # Definiamo l'estensione geografica. Le due coppie di coordinate # corrispondono ai due angoli basso-sinistro e alto-destro della mappa |
# Definizione dell'estensione geografica, le due coppie di coordinate # corrispondono ai due angoli basso-sinistro e alto-destro della mappa |
| Linea 127: | Linea 73: |
| # zoomiamo all'estensione geografica definita prima | # Ingrandimento all'estensione geografica definita prima |
| Linea 130: | Linea 76: |
| # rendiamo la mappa m nel file italia.png con formato png | # Conversione la mappa m nel file italia.png con formato .png |
| Linea 135: | Linea 81: |
| 0. Una volta salvato il file bisogna dargli [:AmministrazioneSistema/PermessiFile:permessi] di esecuzione:{{{ | 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:{{{ |
| Linea 144: | Linea 90: |
| = Compilazione del Viewer = '''Mapnik''' comprende un visualizzatore per la vedere i mapfile di tipo `.xml`. Il Viewer permette le seguenti funzioni: * Visualizzare on-the-fly dei tiles * Leggere nel terminale i livelli di zoom e envelope * Fare lo zoom tramite query * Leggere eventuali errori di configurazione della mappa * Esportare in diversi formati tra cui `.tif` ||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Il '''Viewer''' è non è presente nel pacchetto installabile da repository. Se si ha intenzione di usarlo è necessario installare '''Mapnik''' da sorgenti''|| |
= Ulteriori risorse = |
| Linea 153: | Linea 92: |
| == Compilazione e installazione == Il codice sorgente del '''Viewer''' è contenuto in una sotto cartella del sorgente di '''Mapnik''' e deve essere compilato a parte. Per la compilazione è necessario [:AmministrazioneSistema/InstallareProgrammi:installare] i pacchetti ''qt4-dev-tools'' e ''libqt4-dev''. 0. Entrare della cartella che contiene il '''Viewer''':{{{ cd ~/src/mapnik/demo/viewer }}} 0. E' necessario adattare alcuni file al proprio sistema, quindi aprire il file `viewer.pro` con un [:Ufficio/EditorDiTesto:editor di testo] e modificare 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 }}} 0. Aprire il file `main.cpp` con un [:Ufficio/EditorDiTesto:editor di testo] e modificarlo specificando il percorso ai font a ai plugin di '''Mapnik''':{{{ datasource_cache::instance()->register_datasources("/usr/local/lib/mapnik/input"); freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSans-Bold.ttf"); freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSans-BoldOblique.ttf"); freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSans-ExtraLight.ttf"); freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSans-Oblique.ttf"); freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSans.ttf"); freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSansCondensed-Bold.ttf"); freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSansCondensed-BoldOblique.ttf"); freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSansCondensed-Oblique.ttf"); freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSansCondensed.ttf"); freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSansMono-Bold.ttf"); freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSansMono-BoldOblique.ttf"); freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSansMono-Oblique.ttf"); freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSansMono.ttf"); freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSerif-Bold.ttf"); freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSerif-BoldOblique.ttf"); freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSerif-Oblique.ttf"); freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSerif.ttf"); freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSerifCondensed-Bold.ttf"); freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSerifCondensed-BoldOblique.ttf"); freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSerifCondensed-Oblique.ttf"); freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSerifCondensed.ttf"); }}} 0. Compilare e installare il '''Viewer''' digitando all'interno di una finestra di terminale i seguenti comandi:{{{ /usr/share/qt4/bin/qmake -makefile make }}} == Lanciare il Viewer == Restando nella stessa cartella digitare il seguente comando sempre da una finestra di termiale:{{{ ./viewer }}} Per visualizzare un mapfile lanciare il viewer aggiungendo il percorso dello stesso {{{ ./viewer /percorso/mapfile.xml }}} = Ulteriori risorse = |
|
| Linea 209: | Linea 93: |
| * [http://trac.mapnik.org/ wiki di Mapnik] * [http://trac.mapnik.org/wiki/GettingStarted tutorial] * [http://mike.teczno.com/notes/mapnik.html consigli stilistici] * [:UbuntuGis: guida all'installazione di altri strumenti GIS] * [http://trac.mapnik.org/wiki/InstallationTroubleshooting/ Possibili problemi e soluzioni durante la compilazione] ## da questo punto in poi non modificare! |
* [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]
