Problématique du jour
On dispose d’une couche de données représentant le découpage administratif des communes selon une base de données issue du cadastre.
Cette couche de données est au format SIG shapefile.
On souhaite l’importer puis la stocker au sein d’une base de données spatiales hébergée sous un serveur PostgreSQL qui dispose l’extension PostGIS.
Le SIG est administré grâce au logiciel QGIS.
L’instant WIKI
PostgreSQL est un SGBD relationnel objet avancé. C’est un logiciel libre. Associé à son extension spatiale PostGIS, il permet de gérer des données à dimension spatiale, exploitables au sein de logiciels SIG.
QGIS est un logiciel SIG libre et open source, offrant de fonctionnalités nombreuses et croissantes.
L’extension SPIT – Shapefile to PostGIS Import Tool (outil d’import de shapefiles vers PostGIS) – permet d’importer un shapefile ou un lot de shapefiles dans PostGIS.
Les pré-requis
Ce tutoriel admet donc comme pré-requis :
l’installation préalable du logiciel SIG QGIS. QGIS est un logiciel SIG libre et open source,
l’installation préalable du logiciel SGBD PostgreSQL et de l’extension spatiale PostGIS,
la détention d’une couche de données au format shapefile (*.shp).
Suivre le tutoriel pas à pas…
Étape 3 - Créer et paramétrer une connexion PostgreSQL/PostGIS
Dans la fenêtre « SPIT – Outil d’Importation de Shapefile dans PostGIS », créez une nouvelle connexion vers la base de données au sein de laquelle vous souhaitez importer les données.
Dans la rubrique « Connexion PostgreSQL », cliquez sur « Nouveau »
Dans la fenêtre « Créer une nouvelle connexion PostGIS »
Paramétrer les informations de connexion à une BD PostGIS :
« Nom » : saisir le nom que vous souhaitez attribuer à votre connexion – pour ce tutoriel, nous appellerons la connexion « Bd Tutoriel ».
« Hôte » : saisir le nom de l’hôte de votre base de données. Si elle est hébergée sur le même ordinateur que QGIS, saisir « localhost ». Si elle est hébergée sur un autre ordinateur, saisir son nom ou son adresse.
« Port » : renseigner le port écouté par votre serveur PostgreSQL. Par défaut, en conséquence au sein de la majorité des configuration, le port utilisé est « 5432 ».
« Base de données » : renseigner le nom de la base de données PostgreSQL/PostGIS à laquelle on souhaite se connecter – ici on souhaite se connecter à la base de données « Tutoriel » .
« mode SSL » : laisser le choix « désactivé » permet une accélération du rendu des couches PostGIS
« Utilisateur » : saisir le nom d’utilisateur (ou rôle) PostgreSQL avec lequel on souhaite se connecter à la base de données.
« Mot de passe » : mot de passe associé à l’utilisateur saisi dans le champ précédent.
« Enregistrer le nom d’utilisateur » : cocher la case permet de ne pas saisir le nom d’utilisateur à chaque connexion vers la base de données. La fonctionnalité peut être utilisée si votre ordinateur n’est pas partagé.
« Enregistrer le mot de passe » : cocher la case permet de ne pas saisir le mot de passe utilisateur à chaque connexion vers la base de données. La fonctionnalité peut être utilisée si votre ordinateur n’est pas partagé.
« Tester la connexion » : cette fonctionnalité permet de tester rapidement la connexion avant de la valider.
Lorsque tous les paramètres sont saisis, cliquer sur « OK »
Étape 4 - Les options d'importation de SPIT
Dans la rubrique « Options d’importation et liste des shapefiles »
« Nom de la colonne de géométrie » : renseigner le nom à attribuer au champ qui contiendra la géométrie des objets de la couche à importer dans PostgreSQL/PostGIS.
Si vous souhaitez personnaliser le nom de ce champ, il vous faut décocher la case « Utiliser le nom de colonne géométrique par défaut ». Sinon, le champ s’intitulera « the_geom ».
Essayer d’utiliser toujours le même nom, pour l’ensemble de vos couches PostGIS.
« SRID » : saisir le SRID – Spatial Reference System Identifier – de votre couche shapefile. Pour cela, il vous faut décocher la case « Utiliser le SRID par défaut ». Sinon, le SRID de votre couche PostGIS sera celui par défaut, c’est-à-dire « -1 ».
« Nom de la clé primaire » : saisir le nom de la clé primaire qu’aura votre couche dans PostGIS.
« Schéma global » : sélectionnez le schéma de votre base de données PostGIS au sein duquel vous souhaitez importer la couche shapefile.
Étape 6 : Valider l'importation des shapefiles dans PostGIS
De retour dans la fenêtre « SPIT – Outil d’Importation de Shapefile dans PostGIS », les shapefiles sélectionnés sont listés ainsi que leurs principales caractéristiques, dans la rubrique d’ajout des fichiers shapefile.
Le bouton « Ajouter » : permet d’ajouter de nouveaux fichiers shape, pour un traitement par lot.
Le bouton « Supprimer » : permet de supprimer de la liste d’import un fichier shape qui auraient été ajouté, en cliquant sur sa ligne pour le sélectionner.
Le bouton « Tout enlever » : permet de supprimer de la liste d’import tous les fichiers shape ajoutés.
Lorsque la connexion à la base de données PostgreSQL a été effectuée, les options d’importation paramétrées et les shapefiles ajouté, cliquer sur « OK » pour lancer l’importation !
Si vos données sont lourdes, une barre de progression des tâches s’affiche…
Étape 8 - Vérifier le contenu de la nouvelle couche PostGIS
Pour ouvrir la nouvelle couche PostGIS, il existe 2 méthodes :
Dans le fenêtre des données de la table, vérifier que les champs présents dans La table d’origine sont présents, ainsi que la colonne qui reprend la géométrie des objets.
Si vous avez paramétré le nom de la colonne géométrique lors de l’import, alors la colonne dans PostgreSQL aura ce nom.
Ex : pour le tutoriel, le nom de la colonne géométrique n’a pas été paramétré avec celui donné par défaut, mais avec le libellé « Geometrie ». Dans la table PostGIS, on trouve donc le champ « Geometrie », de type « Geometry » et détaillant le type d’objets et le SRID de la table.
Si vous avez laissé le libellé par défaut, la table PostGIS aura un champ « the_geom », de type « Geometry ».
Ce tutoriel est terminé !!
Le fichier shapefile a été importé dans le SGBD PostgreSQL/PostGIS grâce au logiciel SIG QGIS et à l’extension SPIT !
Ce tutoriel a été réalisé avec les logiciels PostgreSQL 9.4, l’extension PostGIS 2.1 et QGIS 2.8.1-Wien
Pour en savoir + …
Vous avez aimé ?
Alors dites-le avec des , des likes, des tweets, des shares et des commentaires … !
On vous gâte…
Toujours + de tutoriels Impuls’Map !!
Tutoriel video by Impuls’Map pour apprendre à créer une carte web interactive, à partir de la librairie javascript Leaflet et exploitant des données geojson stockées dans des fichiers externes
Grâce à ce tutoriel, vous allez apprendre à créer un trigger pour pouvoir enregistrer et suivre les mises à jour effectuées au sein d’une base de données PostgreSQL. Et comme Impuls’Map est dédié aux SIG, nous effectuerons ce tutoriel au sein d’une base de données détenant l’extension spatiale PostGIS et à partir de données à dimension géographique, exploitables dans un SIG.