Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Programmazione/Mapnik"
Differenze tra le versioni 55 e 59 (in 4 versioni)
Versione 55 del 30/10/2008 11.38.55
Dimensione: 12312
Commento:
Versione 59 del 23/11/2008 10.11.29
Dimensione: 3763
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 9: Linea 9:
'''Mapnik''' è un uno strumento utile alla 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]. È scritto in C++, consente una renderizzazione molto veloce e utilizza Python per lo sviluppo delle mappe.

'''Mapnik''' è il ''renderer'' ufficiale del progetto di cartografia libera [http://openstreetmap.org OpenStreetMap].
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 17: Linea 15:
= Installazione da repository = = Installazione =
Linea 21: Linea 19:
= Installazione da sorgenti = = Esempio di utilizzo =
Linea 23: Linea 21:
Per installare una versione più aggiornata non presente nei repository ufficiali si deve procedere tramite la [:AmministrazioneSistema/InstallareProgrammi/DaSorgenti:compilazione dei sorgenti]. Di seguito viene mostrato un esempio di utilizzo di '''Mapnik'''.
Linea 25: Linea 23:
== Preparativi ==  0. Scaricare da [http://mappinghacks.com/data/world_borders.zip questo indirizzo] un ''dataset vettoriale'' in formato [http://it.wikipedia.org/wiki/Shapefile ESRI Shapefile] e [:AmministrazioneSistema/FormatiDiCompressione#metodografico:decomprimerlo] all'interno della propria '''Home'''.
Linea 27: Linea 25:
 * Dipendenze:{{{
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++
}}}

 * Supporto 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 ==

Di seguito verrà illustrata l'installazione di '''Mapnik''' tramite [:Programmazione/Subversion:Subversion].

 0. Creare una cartella denominata `src` all'interno della propria '''Home''', digitando all'interno di una finestra di terminale il seguente comando:{{{
mkdir ~/src
}}}
 0. Entrare all'interno della cartella creata in precedenza e scaricare la versione SVN di '''Mapnik''':{{{
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] è sufficiente digitare 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 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 per applicare le modifiche:{{{
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 d'errore l'installazione è andata bene e si può passare al capitolo successivo.

= Esempio con Mapnik =
Di seguito viene mostrato un primo esempio di utilizzo di '''Mapnik'''.

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

 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: {{{
 0. Aprire un [:Ufficio/EditorDiTesto:editor di testo] e incollare al suo interno il seguente testo: {{{
#!python
Linea 136: Linea 79:
}}} }}} Assegnare il nome `mappa.py` al file e salvarlo all'interno della propria '''Home'''. L'estensione geografica utilizzata dallo script si riferisce all'area mediterranea, è possibile modificare le coordinate se si desidera prendere in esame un'altra zona geografica, non dimenticando di modificare il percorso al file ESRI:
Linea 138: Linea 81:

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:{{{
 0. Una volta salvato il file è necessario impostare i [:AmministrazioneSistema/PermessiFile:permessi] d'esecuzione e avviare lo script, digitando all'interno di una finestra di terminale i seguenti comandi: {{{
cd ~
Linea 141: Linea 84:
}}}
 0. Avviare lo script lanciando il seguente comando all'interno di una finestra di terminale:{{{
Linea 144: Linea 85:
}}}

 0. Il risultato dovrebbe essere il file `italia.png` che rappresenta la mappa.

= 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 è 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
}}}

== Avviare il viewer ==

Sempre dalla medesima 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
}}}
}}} Il risultato dovrebbe essere il file `~/italia.png` contenente la mappa.

BR Indice()

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

[:AmministrazioneSistema/InstallareProgrammi:Installare] il pacchetto python-mapnik.

Esempio di utilizzo

Di seguito viene mostrato un esempio di utilizzo di Mapnik.

  1. Scaricare da [http://mappinghacks.com/data/world_borders.zip questo indirizzo] un dataset vettoriale in formato [http://it.wikipedia.org/wiki/Shapefile ESRI Shapefile] e [:AmministrazioneSistema/FormatiDiCompressione#metodografico:decomprimerlo] all'interno della propria Home.

  2. Aprire un [:Ufficio/EditorDiTesto:editor di testo] e incollare al suo interno il seguente testo:

       1 #!/usr/bin/env python
       2 
       3 from mapnik import *
       4 
       5 # Definizione delle dimensioni della mappa
       6 # e il sistema di riferimento geografico (latlon WGS84)
       7 m = Map(500,300,"+proj=latlong +datum=WGS84")
       8 
       9 # Colore dello sfondo
      10 m.background = Color('steelblue')
      11 
      12 # Creazione di uno stile
      13 s = Style()
      14 
      15 # Definizione dello stile, possono esserci una o più regole.  
      16 # Una regola può comprendere un filtro, la definizione di scale minima e massima, 
      17 # uno o più Symbolizers (PolygonSymbolizer e LineSymbolizer)
      18 r=Rule()
      19 
      20 # Colore di riempimento dei poligoni
      21 r.symbols.append(PolygonSymbolizer(Color('#f2eff9')))
      22 
      23 # Colore e spessore delle linee di contorno
      24 r.symbols.append(LineSymbolizer(Color('rgb(50%,50%,50%)'),0.1))
      25 s.rules.append(r)
      26 
      27 # Aggiunta dello stile alla mappa e definizione di un nome 
      28 # da usare nella definizione del livello
      29 m.append_style('My Style',s)
      30 
      31 # Vengono definiti i nomi di uno o più livelli 
      32 lyr = Layer('world')
      33 
      34 # Percorso allo shapefile.
      35 # Lo shapefile deve essere indicato senza esenzione!
      36 lyr.datasource = Shapefile(file='/percorso/ai/dati/world_borders')
      37 
      38 # Aggiunta dello stile al livello
      39 lyr.styles.append('My Style')
      40 
      41 # Aggiunta del livello della mappa
      42 m.layers.append(lyr)
      43 
      44 # Definizione dell'estensione geografica, le due coppie di coordinate 
      45 # corrispondono ai due angoli basso-sinistro e alto-destro della mappa
      46 bbox = Envelope(Coord(6, 34), Coord(22, 48)) 
      47 
      48 # Ingrandimento all'estensione geografica definita prima
      49 m.zoom_to_box(bbox)
      50 
      51 # Conversione la mappa m nel file italia.png con formato .png
      52 render_to_file(m,'italia.png', 'png')
    

    Assegnare il nome mappa.py al file e salvarlo all'interno della propria Home. L'estensione geografica utilizzata dallo script si riferisce all'area mediterranea, è possibile modificare le coordinate se si desidera prendere in esame un'altra zona geografica, non dimenticando di modificare il percorso al file ESRI:

  3. Una volta salvato il file è necessario impostare i [:AmministrazioneSistema/PermessiFile:permessi] d'esecuzione e avviare lo script, digitando all'interno di una finestra di terminale i seguenti comandi:

    cd ~
    chmod +x ~/mappa.py
    ./mappa.py

    Il risultato dovrebbe essere il file ~/italia.png contenente la mappa.

Ulteriori risorse


CategoryHomepage