Suite de l’article précédent (Débuter avec Postgres/Postgis ), nous aborderons dans celui-ci une introduction à l’administration des bases Postgres/postgis, le chargement d’un shapefile et la connexion et chargement de la couche Postgis à partir de QGis.
Une mise à jour de cet article en utilisant pgAdmin 4 est disponible en suivant ce lien.
La manière la plus pratique d’administrer des bases de données PostgreSQL est d’utiliser l’interface graphique pgAdmin3.
Cet outil s’installe automatiquement lors de l’installation de PostgreSQL. Vous pouvez le lancer à partir de la barre de programmes:
Pour les objectifs de cet article, charger un shapefile en tant que couche Postgis dans votre nouvelle base de données, vous n’avez pas réellement besoin d’opérations d’administration. Mais c’est plus facile de comprendre le fonctionnement en suivant les modifications de la base.
Un excellent tutoriel express réalisé par Jean FABRE ) est reproduit ci-après:
Nota: placer le curseur sur l'image arrête le défilement automatique[huge_it_gallery id= »2″]
Mais rassurez-vous, vous n’aurez pour l’instant rien à créer. Nous avons demandé au moment de l’installation de Postgis la création d’une base de données exemple. C’est cette base que nous utiliserons dans la suite de l’article.
pgAdmin III vous permet d’administrer une base de données PostgreSQL/Postgis sans vous soucier de la syntaxe SQL correspondante.
Quand vous lancez l’application, le premier écran vous permet de vous connecter au serveur et base de données souhaités.
Le clic-droit sur un élément ouvre le menu contextuel qui vous propose les différentes opérations possibles pour cet élément.
Au moment de l’installation nous avons créé automatiquement deux bases:
- une base de données PostgreSQL classique, appelée postgres
- une base de données PostgreSQL/Postgis, appelée postgis_22_sample
C’est cette deuxième que nous allons utiliser pour charger un shapefile. Mais auparavant, profitons pour jeter un coup d’œil et voir quelles sont les différences entre ces deux bases.
Si vous regardez les extensions de chacune d’elles, vous constaterez que la base Postgis possède toute une série d’extensions spécifiques qui permettent de gérer les informations spatiales. C’est la présence de ces extensions qui rend une base PostgreSQL en une base Postgres/Postgis.
Quand vous créez une base de données, vous devez ajouter ces extensions pour la rendre utilisable avec Postgis.
En cliquant droit sur extensions, puis Ajouter une extension, vous aurez la liste des extensions possibles.
Ajouter un fichier shapefile dans une base Postgis.
Tout d’abord, qu’est-ce que ça veut dire ajouter un fichier shapefile à une base de données Postgis? Un « fichier » shapefile est en réalité un groupe de fichiers avec le même nom et différentes extensions. Par exemple:
L’ensemble de ces fichiers constitue le « shapefile » ouessantCLC_L93. Un fichier contient les géométries, un autre les données attributaires, etc.
Les informations contenues dans ces fichiers, seront chargées en tant que Table de la base de données. Une seule table contiendra l’ensemble des informations dispersées dans les fichiers shapefile.
Vous voyez dans l’image précédente à quel niveau les données seront stockées, et vous remarquerez que le niveau « Tables » est un sous-niveau d’un « Schéma » qui est un sous-niveau de « Base de données ». Vous devrez donc indiquer au moment du chargement du shapefile quelle base de données et, éventuellement, quel schéma doivent être utilisés.
Dans notre base d’exemple il y a un schéma « Public » qui a, contrairement aux autres schémas présents, la totalité des fonctions (1280). Nous laisserons ce concept pour plus tard. Retenons seulement que l’on ajoute des fonctions à un schéma au fur et à mesure des besoins. Dans notre exemple, toutes les fonctions étant déjà chargées, ça nous évite ces opérations supplémentaires.
Nous pouvons charger le shapefile avec le programme « Postgis 2.0 Shapefile and DBF Loader ».
Vous pouvez le lancer en tant qu’application autonome, à partir de la barre de programmes Windows:
Ou bien à partir de la console de pgAdmin III
La fenêtre de l’application s’ouvre:
Si vous le lancez depuis la console pgAdmin III, la connexion avec votre base de données est déjà établie. Si non, vous devrez l’établir.
Cliquez sur « Add File » et naviguez pour sélectionner le fichier shapefile à charger. Cliquez sur Ouvrir, les informations du fichier à charger s’affichent dans l’Import List
Voilà! C’est fait. Vous pouvez voir maintenant sur votre console pgAdmin III (après avoir actualisé l’affichage) votre table importée
Renseigner le système de coordonnées
Peut-être vous avez remarqué dans la fenêtre de l’Import List qu le SRID (système de coordonnées) est à zéro. Ceci indique que le programme de chargement n’a pas pu interpréter correctement le fichier .prj du shapefile. Dans notre cas il devrait être 2154 (code EPSG du Lambert 93/RGF93).
Nous allons donc mettre à jour l’information de la colonne géométrie de la table que nous avons créée.
Ouvrez la fenêtre SQL de pgAdmin III:
Dans la fenêtre Editer SQL tapez la requête suivante:
SELECT UpdateGeometrySRID(‘ouessantclc_l93′,’geom’,2154);
Changez seulement le nom de la table (ouessantclc_l93) par le nom de votre table et le code du SRID (2154) par le code EPSG de votre système de coordonnées.
Exécutez la requête en ckiquant sur le bouton Exécuter (indiqué par la flèche bleue sur l’image).
Vous aurez un message indiquant que la requête s’est bien exécutée:
Charger la couche Postgis dans QGis
Pour nous assurer que tout s’est passé correctement, ouvrez QGis et sélectionnez le bouton de chargement d’une couche Postgis
La fenêtre de connexion s’ouvre. La première fois que vous vous connectez à une base de données il faut configurer sa connexion.
Cliquez sur « Nouveau« , puis renseignez les informations de connexion
Vous avez tout ce qui est nécessaire dans la fenêtre de la console pgAdmin III. Au niveau du Serveur vous avez « PostgreSQL 9.5(localhost:5432) » ce qui est l’Hôte/Port de la fenêtre de connexion. Le Nom n’est utilisé que pour afficher le menu déroulant des connexions. Vous êtes libre de rentrer n’importe quel nom. Le Service vous le laissez en blanc.
La base de données où vous avez chargé le shapefile est « postgis_22_sample ».
Vous devez rentrer le nom d’utilisateur : on utilisera pour l’instant « postgres » et le mot de passe que vous avez défini pour cet utilisateur au moment de l’installation.
Cliquez sur « Tester la connexion » pour vous assurer que toutes les informations sont bien entrées, puis sur OK.
La nouvelle connexion est ajoutée à la liste. Cliquez sur « Connecter« . Vous aurez les différents Schémas disponibles et dans chacun la liste de tables spatiales:
Sélectionnez la seule ligne sélectionnable du schéma Public et cliquez sur le bouton Ajouter.
La fenêtre de définition du système de coordonnées s’affiche. Sélectionnez le SRC des donnés (dans cet exemple Lambert 93)
La couche est chargée dans QGis.
Vous pouvez maintenant travailler sur cette couche comme sur toute autre couche dont vous aviez l’habitude (affichage, symbologie, mise à jour géométrique ou attributaire,…)
*
Merci pour ce tuto !!
Merci pour ce tuto !
Mais je ne trouve pas les fichiers shapes
Où se trouvent ils ?
Merci
Le fichier utilisé dans l’exemple n’est pas nécessaire. Vous pouvez utiliser tout fichier shapefile en votre possession pour faire la manip.
Merci beaucoup pour votre réponse !
Dans ce cas ou puis je trouver des shapefile …
Merci 😉
Merci beaucoup pour la réponse !
Mais dans ce cas ou trouvé des shapefile ?
Voici un lien où vous trouverez des shapefiles
http://www.naturalearthdata.com/downloads/10m-cultural-vectors/10m-admin-0-countries/
Bonjour, j’avais installé postgres 9.1 sur mon PC. pour la création de la base de donnée, je pouvais choisir dans l’onglet définition comme modèle template_postgis_20. Actuellement, j’ai installé postgres9.5 mais je retrouve plus dans l’onglet définition le modèle template_postgis_20. Que Faire?
Désolé, mais je n’ai plus d’installation Postgres 9ous la main. Je travaille avec la version 11 et il y a bien le modèle postgis (postgis_25_sample dans mon cas) qui s’affiche
Est-ce que vous avez bien installé Postgis sur votre nouvelle version?