Prérequis
- Une instance PostGreSQL fonctionnelle
- Le cartouche PostGIS installé
Préparation de la base
su postgres
createdb mabase
createlang plpgsql mabase
psql -d mabase -f /path/to/postgresql/version/share/contrib/postgis.sql
psql -d mabase -f /path/to/postgresql/version/share/contrib/spatial_ref_sys.sql
Création des tables
psql mabase
CREATE TABLE test (id serial PRIMARY KEY,genre text);
Ajout de la colonne géométrique à la table - AddGeometryColumn()
Pour l'instant notre table est vide, nous allons lui ajouter une troisième colonne où seront stockées nos données géométriques.
Nous aurons recours pour cela à la fonction
AddGeometryColumn() de PostGIS dont la synthaxe générale est :
AddGeometryColumn( Table,
Colonne_Geometrique,
SRID,
Type_Geometrie,
Dimension);
où
- Table est le nom de la table à laquelle doit être ajoutée la colonne géométrique;
- Colonne_Geometrique est le nom de la colonne géométrique;
- Type_Geometrie est le le type de géométrie possible:
- SRID est l'identifiant spatial de projection selon le système de projection choisi.
A titre d'exemple pour le Lambert II Carto Etendu, srid=27852;
- Dimension est la dimension des objets géométriques 2D ou 3D ou 4D;
Dans notre cas, nous saisirons :
SELECT AddGeometryColumn( 'test', 'geom', -1, 'GEOMETRY', 2 );
Avec cette requête, nous avons ajouté la
Colonne géométrique
geom à la
Table 'test'.
Comme nous n'utilisons ici aucun système de projection référencé, nous restons donc dans le plan 2D orthonormal par défaut, nous précisons juste
SRID=-1.
Le type de données géométriques
(Type_Geometrie) que nous souhaitons enregistrer peut-être de n'importe quel type. Nous préciserons donc par défaut GEOMETRY.
Enfin, nous sommes en 2
Dimensions.
Note
Il aurait été tout à fait possible de créer la table test en faisant directement
CREATE TABLE test (id serial PRIMARY KEY,genre TEXT,geom GEOMETRY);
Mais il y aurait alors eu un perte concernant les méta-données sur les objets géométriques concernant le type, le srid, la dimension.
Il est donc préférable d'avoir recours à la fonction AddGeometryColumn() pour pouvoir tirer profit de ces métadonnées.