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 12 e 68 (in 56 versioni)
Versione 12 del 24/09/2008 23.24.17
Dimensione: 5838
Commento:
Versione 68 del 16/03/2024 16.35.20
Dimensione: 3937
Autore: tommaso-db
Commento: Corretti / rimossi vecchi link
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
## page was renamed from Mapnik
## page was renamed from TommasoDiBucchianico/Prove2
Linea 4: Linea 6:
[[BR]]
[[Indice()]]
<<BR>>
<<Indice>>
Linea 7: Linea 9:
= Mapnik =
Linea 10: Linea 11:
Mapnik è un toolkit (insieme di strumenti) per la realizzazione di mappe a partire da dati vettoriali e raster. E' scritto in C++ e ha Python bindings che supportano uno sviluppo semplice e veloce delle mappe. Mapnik può essere usato sia per lo sviluppo di applicazioni web, accoppiato con altri softwar tipo Open Layer, sia per un uso 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.
'''Mapnik''' è il renderer ufficiale del progetto di cartografia libera [[http://www.openstreetmap.org/|Openstreetmap]].
Linea 12: Linea 14:
= Installazione da Repository (Ubuntu 8.04) = = Preparativi =
Linea 14: Linea 16:
Per Ubuntu 8.04 è presente nei repository Universe il pacchetto python-mapnik che contiene Mapnik 0.4 e può essere comodamente installato tramire apt-get. Abilitare i [[Repository/Componenti|componenti]] '''universe''' e '''multiverse''' dei [[Repository|repository]] ufficiali.
Linea 16: Linea 18:
{{{
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).
= Installazione =
Linea 21: Linea 20:
= Installazione tramite sorgenti (Ubuntu 8.04) = [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto ''python-mapnik''.
Linea 23: Linea 22:
== Installazione dipendenze ==
 * Innanzitutto vanno aggiornati i pacchetti già installati
{{{
aptitude update
aptitude upgrade
}}}
= Esempio di utilizzo =
Linea 30: Linea 24:
 * Installazione delle dipendenze boost richieste tramite [:AmministrazioneSistema/Aptitude:Aptitude]: Di seguito viene mostrato un esempio di utilizzo di '''Mapnik'''.
Linea 32: Linea 26:
{{{
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
}}}
 0. Scaricare da [[https://public.opendatasoft.com/api/explore/v2.1/catalog/datasets/world-administrative-boundaries/exports/shp|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 36: Linea 28:
 * 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
}}}
 0. Aprire un [[Ufficio/EditorDiTesto|editor di testo]] e incollare al suo interno il seguente testo: {{{
#!python
#!/usr/bin/env python
Linea 49: Linea 32:
from mapnik import *
Linea 50: Linea 34:
== 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 si sono istallati Postgis, Gdal e si ha intenzione di usare il supporto WMS installre con le seguenti opzioni
{{{
python scons/scons.py DEBUG=y PGSQL_INCLUDES=/usr/include/postgresql/ PGSQL_LIBS=/usr/lib/postgresql/8.2/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.2/lib GDAL_INCLUDES=/usr/local/include GDAL_LIBS=/usr/local/lib XMLPARSER=libxml2
}}}
# Definizione delle dimensioni della mappa
# e il sistema di riferimento geografico (latlon WGS84)
m = Map(500,300,"+proj=latlong +datum=WGS84")
Linea 66: Linea 38:
 * Infine dare i seguente comando
{{{
sudo ldconfig
}}}
# Colore dello sfondo
m.background = Color('steelblue')
Linea 71: Linea 41:
# Creazione di uno stile
s = Style()
Linea 72: Linea 44:
= Testare se l'installazione è andata a buon fine =
Aprire una console di python oppure dare nel terminale il comando
{{{
python
}}}
adesso 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]
# Definizione dello stile. Uno stile puo' comprendere una o piu' regole (Rule).
# Una regola puo' comprendere un filtro, la definizione di scala minima e massima,
# uno o piu' Symbolizers (PolygonSymbolizer e LineSymbolizer)
r=Rule()
Linea 83: Linea 49:
= 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 ==
Il Viewer è incluso nell'installazione di Mapnik ma dev'essere comlilato a parte. Per la compilazione è necessario 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)
{{{
cd ~/src/mapnik/dem/viewer
}}}
 1. 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 la riga unix.LIBS così
{{{
unix:LIBS += -L/usr/local/lib -lmapnik
}}}
# Colore di riempimento dei poligoni
r.symbols.append(PolygonSymbolizer(Color('#f2eff9')))
Linea 108: Linea 52:
# Colore e spessore delle linee di contorno
r.symbols.append(LineSymbolizer(Color('rgb(50%,50%,50%)'),0.1))
s.rules.append(r)
Linea 109: Linea 56:
 2. Modificare il file main.cpp con un qualsiasi [:Ufficio/EditorDiTesto:editor di testo] e 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");
}}}
 3. Compilare e installare il Viewer
{{{
/usr/bin/qmake-qt4 -makefile
make
}}}
 4. Lanciare il Viewer per verificare l'installazione. Restando nella stessa directory dare il comando
{{{
./viewer
}}}
Per visualizzare un mapfile aggiungere il percorso allo stesso
{{{
./viewer /percorso/mapfile.xml
}}}
# Aggiunta dello stile alla mappa e definizione di un nome
# da usare nella definizione del livello
m.append_style('My Style',s)
Linea 130: Linea 60:
== Titolo 2 == # Vengono definiti i nomi di uno o piu' livelli (Layer)
lyr = Layer('world')
Linea 132: Linea 63:
Testo... # Percorso allo shapefile.
# Lo shapefile deve essere indicato senza estensione!
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 della mappa m nel file italia.png con formato .png
render_to_file(m,'italia.png', 'png')
exit()
}}} 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 rendere un'altra zona geografica. Non dimenticare di modificare il percorso al file ESRI.

 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 ~
chmod +x ~/mappa.py
./mappa.py
}}} Il risultato dovrebbe essere il file `~/italia.png` contenente la mappa.
Linea 136: Linea 93:
 * Risorsa 1
 * Risorsa 2

## da questo punto in poi non modificare!
 * [[http://mapnik.org/documentation/|Documentazione ufficiale]]
 * [[UbuntuGis|Guida all'installazione di altri strumenti GIS]]
 * [[http://mike.teczno.com/notes/mapnik.html|Map Design: consigli utili]]
Linea 141: Linea 97:
CategoryHomepage CategoryProgrammazione CategoryDaRevisionare


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. Mapnik è il renderer ufficiale del progetto di cartografia libera Openstreetmap.

Preparativi

Abilitare i componenti universe e multiverse dei repository ufficiali.

Installazione

Installare il pacchetto python-mapnik.

Esempio di utilizzo

Di seguito viene mostrato un esempio di utilizzo di Mapnik.

  1. Scaricare da questo indirizzo un dataset vettoriale in formato ESRI Shapefile e decomprimerlo all'interno della propria Home.

  2. Aprire un 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. Uno stile puo' comprendere una o piu' regole (Rule).  
      16 # Una regola puo' comprendere un filtro, la definizione di scala minima e massima, 
      17 # uno o piu' 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 piu' livelli (Layer)
      32 lyr = Layer('world')
      33 
      34 # Percorso allo shapefile.
      35 # Lo shapefile deve essere indicato senza estensione!
      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  della mappa m nel file italia.png con formato .png
      52 render_to_file(m,'italia.png', 'png')
      53 exit()
    

    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 rendere un'altra zona geografica. Non dimenticare di modificare il percorso al file ESRI.

  3. Una volta salvato il file è necessario impostare i 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


CategoryProgrammazione CategoryDaRevisionare