Création d'une base de données PostGIS

Voir /usr/share/doc/postgresql-8.2-postgis/README.Debian.gz.

Passer en utilisateur postgres :

sudo -u postgres sh

Puis créer la base de données :

# create database ownered by user
createdb <databasename> --o <username>

# Need to enable plpgsql for the database before loading the functions
createlang plpgsql -d <databasename>

# Finally, load the functions and reference system tables
psql <databasename> -f /usr/share/postgresql-8.2-postgis/lwpostgis.sql
psql <databasename> -f /usr/share/postgresql-8.2-postgis/spatial_ref_sys.sql

# login in new database (still as superuser postgres)
psql <databasename>

Une fois loggé à la base, faire :

grant all on geometry_columns to <username>;
grant select on spatial_ref_sys to <username>;

Importer des données Shapefile dans la base

Utiliser la commande shp2pgsql Le premier argument est le nom du fichier shp, le deuxième le nom de la table. Puis exécuter le fichier SQL sur la base (ici, maps) :

shp2pgsql isri.shp iris_rhone > iris.sql
sudo -u postgres psql -d maps -f iris.sql

Exemple de requêtes SQL

Créer une nouvelle table avec les Iris de Lyon :

CREATE TABLE iris_lyon AS SELECT * FROM iris_rhone WHERE nom_com LIKE 'LYON%';
ALTER TABLE iris_lyon ADD PRIMARY KEY (gid);