====== Appunti 2010/10/21 ====== ===== Installazione pacchetti Debian ===== ^ apt-get update | Aggiorna l'elenco dei pacchetti disponibili sui repository. | ^ less /etc/apt/sources.list | Elenco dei repository utilizzati. | ^ apt-cache search | Cerca un pacchetto tra quelli disponibili. | ^ apt-get install | Installa un pacchetto. | ^ dpkg --list | Lista dei pacchetti installati. | Come impostare un proxy http per scaricare/installare pacchetti via http (metterlo in **''/etc/profile''** per attivarlo automaticamente al login): export http_proxy="http://172.16.1.72:8080" Questi sono i pacchetti GIS installati: * **cgi-mapserver** MapServer versione CGI-BIN * **mapserver-bin** utilities di corredo a MapServer * **php5-mapscript** MapServer versione PHP MapScript * **libgdal1-1.6.0** libreria GDAL/OGR per accesso a formati raster e vettoriali * **gdal-bin** utilities di corredo alla libreria gdal * **postgresql** database PostgreSQL * **postgresql-8.4-postgis** PostGIS: estensione geografica per PostgreSQL * **postgis** utilities di corredo a PostGIS * **php-mdb2** libreria per accedere ai database da PHP * **php-mdb2-driver-pgsql** modulo php-mdb2 per accedere a PostgreSQL Verificare che sia stato installato MapServer versione CGI-BIN in **''/usr/lib/cgi-bin/mapserv''** (posizione specifica di Debian). ===== PostgreSQL ===== Come connettersi al database (ottenere un prompt SQL) prima di aver creato qualunque utente database: # su - postgres $ psql Come creare un utente, un database e abilitarlo spazialmente (comandi da dare al prompt SQL): postgres=# CREATE USER gis PASSWORD 'GisSecret'; postgres=# CREATE DATABASE gis OWNER gis; postgres=# \connect gis gis=# CREATE LANGUAGE plpgsql; gis=# \i /usr/share/postgresql/8.4/contrib/postgis-1.5/postgis.sql gis=# \i /usr/share/postgresql/8.4/contrib/postgis-1.5/spatial_ref_sys.sql gis=# \dt List of relations Schema | Name | Type | Owner --------+------------------+-------+---------- public | geometry_columns | table | postgres public | spatial_ref_sys | table | postgres gis=# GRANT SELECT ON spatial_ref_sys TO gis; gis=# GRANT ALL ON geometry_columns TO gis; gis=# \q ===== Codici EPSG ===== ^ EPSG:32632 | WGS 84 / UTM zone 32N (metri) | ^ EPSG:3003 | Monte Mario / Italy zone 1 (metri) | ^ EPSG:4326 | WGS 84 (gradi lon/lat) | ===== Come caricare dati geografici nel database ===== Con **''shp2pgsql''** si converte uno shapefile in codice SQL: shp2pgsql -s 32632 mezzerie_WGS.shp mezzerie > /tmp/mezzerie.sql Dal prompt SQL si carica il file SQL nel database: psql -U gis -W -h localhost gis gis=> \i /tmp/mezzerie.sql ===== Dove salvare shapefile, mapfile, template, ecc. ===== ^ shapefile | Contengono i dati geografici. È possibile salvarli in una directory qualunque (es. **''/home/gisdata/''**) non pubblicata sul web. L'importante è che siano leggibili al processo server web (utente www-data in Debian). | ^ mapfile | Anche i mapfile dovrebbero stare in una directory **non** pubblicata sul web, a maggior ragione per il fatto che potrebbero contenere le credenziali di accesso al database. | ^ template | Per ogni mapfile è opportuno creare anche il relativo template html, uitile in fase di debug del mapfile stesso. Il template conviene che sia salvato nella stessa directory del mapfile. | ===== Pubblicazione di un server WMS ===== MapServer fornisce le mappe (via HTTP e CGI-BIN) secondo il suo standard proprietario. Con poche modifiche al mapfile è possibile farlo funzionare anche secondo lo **[[wpit>Web_Map_Service|standard WMS]]**. In questo modo qualunque client compatibile WMS può accedere a tali mappe. Ad esempio QGIS (desktop mapping) e OpenLayers (web mapping). ===== Utilizzare le mappe OpenStreetMap o Google ===== Aggiunta la proiezione Google Mercator nel file **''/usr/share/proj/epsg''**, in questo modo MapServer (in veste di server WMS) può riproiettare un layer EPSG:32632 nel sistema di Google e quindi sovrapporlo alla mappa OpenStreetMap o Google. La riga da aggiungere è la seguente: # Spherical Mercator <900913> +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs ===== Installazione e configurazione di p.mapper ===== * Scompattare l'archivio nella DocumentRoot (directory pubblicata dal server Web). Si consiglia la versione in sviluppo (SVN) perché compatibile con il nuovo MapServer 5.6. * Metter un mapfile in **''pmapper/config/default/''** controllare i percorsi che siano giusti. * Editare **''pmapper/config/config_default.xml''**: * %%%% * %%%% * %%%% * Rendere scrivibile la **''pmapper/images/legend/''**