Base de données spatiales
Atelier 2
Création d’une bases de données spatiales
sous Postgis
1 Pr ése n ta ti o n g é né ra le du T P
1. 1 Co ntex te et obj ecti fs du TP
Maîtriser le module spatiale PostGis (création de la base de données
spatiales et analyse des requêtes).
Conversion des données ESRI (shp) vers le module spatiale PostGis.
Affichage des données géographiques dans le SIG libre QuantumGIS .
1. 2 Pr inci pales éta pes à réaliser
Création d’une table sous postGis (points géodésique),
Ajout d’une colonne géographique dans notre table,
Remplissage de la table (point),
Saisi et l’analyse des requêtes spatiales,
Chargement de données ESRI Shapefiles dans le module spatiale PostGis,
Affichage des données géographiques dans le SIG QuantumGIS
1. 3 Ma téri el et l ogic iels nécessai res
On dispose pour ce travail :
d'un PC sous Windows,
du SGBD PostgreSQL avec son module spatial PostGIS
d'une interface d'administration de bases phpPgAdmin,
du logiciel libre QuantumGlS
1. 4 Li ens utile s
Documentation PostgreSQL/PostGIS en français
http://www.davidgis.fr/documentation/win32/html/indexhtml ,
Site officiel QuantumGlS http://www.qgis.org,
Soussi bilel 1 2015-2016
Base de données spatiales
Pour connaître la version de postGis, veuillez tapez cette requête :
SELECT postgis_full_version();
2 ) L a ta b le s o us P os tg i s :
2. 1 Cr éati on d’un e ta ble :
création d’une table « point » qui va contenir les points géodésiques.
CREATE TABLE point(
Num INTEGER,
ordre INTEGER,
nom CHAR(20), Les colonnes de la table point.
date date,
CONSTRAINT point_pkey PRIMARY KEY (Num) Création d’un
clé primaire pour la table amis.
) ;
Fig :phpPgAdmin(administrateur de base de données spatiale)
Ajout d’une table sous Postgis
Soussi bilel 2 2015-2016
Base de données spatiales
Création des
Contraintes :
Clé primaire
&&
Clé étrangère
Fig :Ajout d’une table sous PostGis
Fig :Ajout d’un colonne
Soussi bilel 3 2015-2016
Base de données spatiales
Les
colonnes
de la table
point
Fig :Affichage des colonnes de la table point
2- 2 Aj oute r une col onne géographique dans la tab le « poi nt »
Vous allez ajouter une colonne supplémentaire « geometry » dans la table « point » pour
contenir l’information géographique sur les lieux des points géodésiques.
Remarques : Sous PostGis, l’information liée au système de projection est
introduite à travers des codes bien spécifiques (SRID) dans la table « spatial_ref_sys »
pour chaque projection. Par exemple, pour connaître les projections qui contiendront
Carthage, on exécute la requête suivante :
SELECT *from spatial_ref_sys where srtext like ‘%carthage%’;
Le % remplace une chaîne de caractères
Projection Nord Tunisie (code SRID = 22391)
Projection Sud Tunisie (code SRID = 22392)
Par contre, pour connaître les paramètres d’un système de projection associé à un code
SRID, il suffit de taper la requête suivante :
SELECT get_proj4_from_srid(code srid);
Soussi bilel 4 2015-2016
Base de données spatiales
Cette colonne utilisera le système de projection Nord Tunisie (code SRID = 22391)
et contiendra des objets géographiques de type point sur trois dimensions (X, Y,Z). Pour
cela, exécutez la requête SQL suivante :
SELECT AddGeometryColumn('point','geometry' , 22391,'POINT'
,3);
Code sql
Pour la
création de
la table
point
Fig:Administration de la table point
Soussi bilel 5 2015-2016
Base de données spatiales
Zone pour la
saisie d’une
requête
spatiales
Résultat de
l’exécution de la
requête
2- 3 Re mpli ssage de la t able:
Insertion de l’information géographique dans le champ « geometry » pour les 6
points suivants :
INSERT INTO point VALUES (1,1,'ouedchrida','1997-12-17 07:37:16-
08',GeometryFromText('POINT(518833.330277 369581.195599 20)',
22391));
INSERT INTO point VALUES (2,1,'Bardo','1997-12-17 07:37:16-
08',GeometryFromText('POINT(524333.815975 365815.762437 14)',
22391));
INSERT INTO point VALUES (3,1,'Menzeh','1997-12-17 07:37:16-
08',GeometryFromText('POINT(526401.112613 367513.898961 23)',
22391));
INSERT INTO point VALUES (4,1,'Manar','1997-12-17 07:37:16-
08',GeometryFromText('POINT(514661.820990 362456.405400 31)',
22391));
Soussi bilel 6 2015-2016
Base de données spatiales
INSERT INTO point VALUES (5,1,'cité el Tadhamen','1997-12-17
07:37:16-08',GeometryFromText('POINT(519977.726631 361828.833206
11)', 22391));
INSERT INTO point VALUES (6,1,'Mennouba','1997-12-17 07:37:16-
08',GeometryFromText('POINT(517282.857799 370282.599815 18)',
22391));
2- 4 Mi se à jour de la t able point:
Delete from point where point.num=1 ;
UPDATE point SET nom='test' where nom='Bardo';
UPDATE point SET geometry=GeometryFromText(‘POINT(517482.857799
370321.599815 18)’, 22391) where nom=' Mennouba ';
2- 5 Af fich age d e la géo métrie des objets:
Pour afficher uniquement la géométrie des objets contenus dans la colonne geometry ,
vous pouvez exécuter la requête suivante :
SELECT num ,GeometryType (geometry) from point ;
2- 6 Sa isir les requ êtes suivantes et analyser le rés ulta t :
SELECT * from point ;
SELECT Astext(geometry) from point ;
SELECT Astext(geometry) from point where point.nom='test';
SELECT area2d(geometry) from point;
SELECT x(geometry) from point;
SELECT y(geometry) from point;
Soussi bilel 7 2015-2016
Base de données spatiales
SELECT Z(geometry) from point;
3 - Cha r ge me n t d e d o n nées par E SRI S ha pef i le s (s h p2 p g s q l)
PostGIS est livré avec un convertisseur shp2pgsql.exe qui permet d’importer
directement - à la volée - les données fournies dans un fichier .shp.
Voici ce qu'il faut taper:
shp2pgsql -s monSrid -D -I monfichiershp.shp -d monshema.matable
| psql -U monutilisateur mabasededonnees
Supposons que:
votre base de données s'appelle 'titi'.
l'utilisateur 'pierre' a les droits d'écriture sur cette base de données.
vous avez 2 shémas qui se nomment 'test' et 'toto'.
vous voulez insérer le fichier 'forets.shp' dans la table 'arbre' qui se trouve dans
le shéma 'toto'.
les données graphiques contenues dans 'forets.shp' sont référencées par le
SRID 22391.
Alors, vous tapez :
shp2pgsql -s 22391 -D -I forets.shp -d toto.arbre | psql -U pierre
titi.
4 - A fficha ge des d onnée s gé ographiques da ns le SI G
Qua ntumGI S
Grâce au SIG libre QuantumGlS,vous allez afficher les données géographiques de la
base.Vous réaliserez des requêtes d'analyse spatiale grâce à PostGIS et vous visualiserez
également es résultats dansQuantumGIS.
Lancez QuantumGlS (Démarrer>Programmes>QuantumGIS>QuantumGIS).
Sélectionnez le menu Couche>Ajouter une couche PostGIS. Dans la nouvelle fenêtre,
Soussi bilel 8 2015-2016
Base de données spatiales
entrez les paramètres suivants Nom = BD , Hote = localhost, Base de données = notre
base, Port = 5432, Nom utilisateur = postgres, Mot de passe = postgres. Cochez
sauvegarder le mot de passe, puis cliquez sur le bouton OK. Cliquez sur le bouton
Connecter. Les deux couches géographiques contenues dans la base s'affichent
Sélectionnez les deux couches lme2006 et peche puis cliquez sur le bouton Ajouter.
Zone d’affichage
Pour les données
géographiques
Zone
d’affichage
pour les
tables crées
sous postgis
Listes des
tables sous
Paramètres postgis
pour se
connecter à
postgis
Soussi bilel 9 2015-2016
Base de données spatiales
Fin
Soussi bilel 10 2015-2016