|
Dimensione: 396
Commento:
|
Dimensione: 9425
Commento:
|
| Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
| Linea 1: | Linea 1: |
| ## page was renamed from TommasoDiBucchianico/prove1 | |
| Linea 8: | Linea 9: |
| Testo... | '''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. |
| Linea 10: | Linea 11: |
| = Titolo 1 = | Mapnik inoltre è il renderer "ufficiale" del progetto di cartografia libera [http://openstreetmap.org openstreetmap]. = Installazione da Repository = |
| Linea 12: | Linea 14: |
| Testo... | Per installare '''Mapnik''' è necessario [:AmministrazioneSistema/InstallareProgrammi:installare] il pacchetto ''python-mapnik'', reperibile dal [:Repository/Componenti:componente] '''universe''' dei [:Repository:repository ufficiali]. |
| Linea 14: | Linea 16: |
| 0. Passo 1 0. Passo 2 0. Passo 3 |
Per installare una versione più aggiornata non presente nei repository ufficiali si deve procedere tramite la [:AmministrazioneSistema/InstallareProgrammi/DaSorgenti:compilare dei sorgenti]. |
| Linea 18: | Linea 18: |
| == Titolo 2 == | = Installazione tramite sorgenti = |
| Linea 20: | Linea 20: |
| = Mapnik = | == Installazione dipendenze == |
| Linea 22: | Linea 22: |
| Testo... | * 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 }}} |
| Linea 24: | Linea 26: |
| 0. Passo 1 0. Passo 2 0. Passo 3 |
* 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 }}} |
| Linea 28: | Linea 30: |
| == Titolo 2 == | * 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 }}} |
| Linea 30: | Linea 34: |
| Testo... | == Compilazione e installazione == === Installazione senza supporto WMS === Se non si sono installati i programmi '''Postgis''', '''Gdal''' e non si ha intenzione di usare '''Mapnik''' come server WMS è suffiente dare i seguenti comandi all'interno di una finestra di terminale:{{{ mkdir ~/src cd ~/src svn co svn://svn.mapnik.org/trunk mapnik cd mapnik python scons/scons.py sudo python scons/scons.py install }}} === Installazione con supporto WMS === Se invece si sono istallati '''Postgis''', '''Gdal''' e si ha intenzione di usare il supporto 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 l'installazione è andata bene e si può passare al [http://trac.mapnik.org/wiki/GettingStarted tutorial] = Primi passi con Mapnik = Vedremo ora come ottenere una mappa molto basilare con Mapnik. Innanzitutto bisogna scaricare un semplice dataset vettoriale in formato [http://it.wikipedia.org/wiki/Shapefile ESRI Shapefile] e salvarlo in un punto qualsiasi nel filesystem. Il secondo passe è scrivere un semplice script in python che punti a questo file, se definisca lo stile e l'estensione geografica. Per fare questo salvare il seguente script in un file chiamato `italia.py` * Non dimenticare di modificare il percorso allo shapefile! {{{ #!/usr/bin/env python from mapnik import * #qui definiamo la mappa da rendere con le sue dimensioni e il sistema di riferimento geografico (latlon WGS84) m = Map(600,300,"+proj=latlong +datum=WGS84") #colore dello sfondo m.background = Color('steelblue') # Qui viene creato un stile s = Style() # Adesso deve venir definito lo stile. Questo può avere una o più rule (regole). Una rule 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) # Aggiungiamo lo stile alla mappa e gli diamo un nome da usare nella definizione del layer (livello) m.append_style('My Style',s) # Adesso vengono definiti uno o più layer (livelli). Innanzitutto definiamo il nome il nome dello stesso lyr = Layer('world') # # # # # # # # # # # # # # # # # # #Percorso allo shapefile. --> DA CAMBIARE! # Lo shapefile deve essere indicato SENZA ESTENSIONE (senza .shp) # # # # # # # # # # # # # # # # # lyr.datasource = Shapefile(file='/percorso/ai/dati/world_borders') # aggiungiamo lo stile al layer lyr.styles.append('My Style') # aggiungiamo il layer alla mappa da rendere m.layers.append(lyr) # Definiamo l'estensione geografica. Le coordinate due coppie di coordinate corrispondono ai due angoli basso-sinistro e alto-destro della # mappa bbox = Envelope(Coord(12, 35), Coord(14, 48)) # zoomiamo all'estensione geografica definita prima m.zoom_to_box(bbox) # rendiamo la mappa m nel file world.png con formato png render_to_file(m,'world.png', 'png') }}} = 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''|| == 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 sono necessari Qt4 (compreso il pacchtto dev) e qmake. 0. Entrare della cartella che contiene il '''Viewer''':{{{ cd ~/src/mapnik/dem/viewer }}} 0. E' necessario adattare alcuni file al proprio sistema, quindi aprire il file `viewer.pro` con un [:Ufficio/EditorDiTesto:editor di testo] e modificarlo il percorso di '''INCLUDEPATH''' la riga '''unix.LIBS''' come segue:{{{ INCLUDEPATH += /usr/local/include/mapnik INCLUDEPATH += /usr/include/boost-1_34_1 INCLUDEPATH += /usr/include/freetype2 INCLUDEPATH += 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.ttf"); freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSans-Bold.ttf"); freetype_engine::register_font("/usr/local/lib/mapnik/fonts/DejaVuSansMono.ttf"); }}} 0. Compilare e installare il '''Viewer''' digitando all'interno di una finestra di terminale i seguenti comandi:{{{ /usr/bin/qmake-qt4 -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 }}} |
| Linea 33: | Linea 167: |
* Risorsa 1 * Risorsa 2 |
* [http://trac.mapnik.org/wiki/UbuntuInstallation/ Documento originale] * [http://trac.mapnik.org/ wiki di Mapnik] * [http://mike.teczno.com/notes/mapnik.html consigli stilistici] * [:UbuntuGis: guida all'installazione di altri strumenti GIS] |
| Linea 39: | Linea 173: |
| CategoryNuoviDocumenti | CategoryHomepage |
Introduzione
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.
Mapnik inoltre è il renderer "ufficiale" del progetto di cartografia libera [http://openstreetmap.org openstreetmap].
Installazione da Repository
Per installare Mapnik è necessario [:AmministrazioneSistema/InstallareProgrammi:installare] il pacchetto python-mapnik, reperibile dal [:Repository/Componenti:componente] universe dei [:Repository:repository ufficiali].
Per installare una versione più aggiornata non presente nei repository ufficiali si deve procedere tramite la [:AmministrazioneSistema/InstallareProgrammi/DaSorgenti:compilare dei sorgenti].
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
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
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
Installazione senza supporto WMS
Se non si sono installati i programmi Postgis, Gdal e non si ha intenzione di usare Mapnik come server WMS è suffiente dare i seguenti comandi all'interno di una finestra di terminale:
mkdir ~/src cd ~/src svn co svn://svn.mapnik.org/trunk mapnik cd mapnik python scons/scons.py sudo python scons/scons.py install
Installazione con supporto WMS
Se invece si sono istallati Postgis, Gdal e si ha intenzione di usare il supporto 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
Aprire una console di python digitando all'interno di una finestra di terminale il seguente comando:
python
Iniziare le operazioni di verifica tramite il seguente comando:
import mapnik
Se non dovesse essere restituito nessun output l'installazione è andata bene e si può passare al [http://trac.mapnik.org/wiki/GettingStarted tutorial]
Primi passi con Mapnik
Vedremo ora come ottenere una mappa molto basilare con Mapnik. Innanzitutto bisogna scaricare un semplice dataset vettoriale in formato [http://it.wikipedia.org/wiki/Shapefile ESRI Shapefile] e salvarlo in un punto qualsiasi nel filesystem.
Il secondo passe è scrivere un semplice script in python che punti a questo file, se definisca lo stile e l'estensione geografica. Per fare questo salvare il seguente script in un file chiamato italia.py
- Non dimenticare di modificare il percorso allo shapefile!
from mapnik import *
#qui definiamo la mappa da rendere con le sue dimensioni e il sistema di riferimento geografico (latlon WGS84)
m = Map(600,300,"+proj=latlong +datum=WGS84")
#colore dello sfondo
m.background = Color('steelblue')
# Qui viene creato un stile
s = Style()
# Adesso deve venir definito lo stile. Questo può avere una o più rule (regole). Una rule 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)
# Aggiungiamo lo stile alla mappa e gli diamo un nome da usare nella definizione del layer (livello)
m.append_style('My Style',s)
# Adesso vengono definiti uno o più layer (livelli). Innanzitutto definiamo il nome il nome dello stesso
lyr = Layer('world')
# # # # # # # # # # # # # # # # # #
#Percorso allo shapefile. --> DA CAMBIARE!
# Lo shapefile deve essere indicato SENZA ESTENSIONE (senza .shp)
# # # # # # # # # # # # # # # # #
lyr.datasource = Shapefile(file='/percorso/ai/dati/world_borders')
# aggiungiamo lo stile al layer
lyr.styles.append('My Style')
# aggiungiamo il layer alla mappa da rendere
m.layers.append(lyr)
# Definiamo l'estensione geografica. Le coordinate due coppie di coordinate corrispondono ai due angoli basso-sinistro e alto-destro della
# mappa
bbox = Envelope(Coord(12, 35), Coord(14, 48))
# zoomiamo all'estensione geografica definita prima
m.zoom_to_box(bbox)
# rendiamo la mappa m nel file world.png con formato png
render_to_file(m,'world.png', 'png')
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
Il Viewer è non è presente nel pacchetto installabile da repository. Se si ha intenzione di usarlo è necessario installare Mapnik da sorgenti |
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 sono necessari Qt4 (compreso il pacchtto dev) e qmake.
Entrare della cartella che contiene il Viewer:
cd ~/src/mapnik/dem/viewer
E' necessario adattare alcuni file al proprio sistema, quindi aprire il file viewer.pro con un [:Ufficio/EditorDiTesto:editor di testo] e modificarlo il percorso di INCLUDEPATH la riga unix.LIBS come segue:
INCLUDEPATH += /usr/local/include/mapnik INCLUDEPATH += /usr/include/boost-1_34_1 INCLUDEPATH += /usr/include/freetype2 INCLUDEPATH += unix:LIBS += -L/usr/local/lib -lmapnik
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.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 digitando all'interno di una finestra di terminale i seguenti comandi:
/usr/bin/qmake-qt4 -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
[http://trac.mapnik.org/wiki/UbuntuInstallation/ Documento originale]
[http://trac.mapnik.org/ wiki di Mapnik]
[http://mike.teczno.com/notes/mapnik.html consigli stilistici]
[:UbuntuGis: guida all'installazione di altri strumenti GIS]
