Indice

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 <stringa> Cerca un pacchetto tra quelli disponibili.
apt-get install <pacchetto> 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:

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