Import via Shp2pgsql
Shp2pgsql est un module de conversion pour les fichiers shape uniquement, qui est intégré à PostGIS (et donc disponible uniquement sur les machines ou PostGIS est installé). On l'utilisera donc plutôt pour réaliser des scripts sur le serveur.
La syntaxe est :
shp2pgsql [<options>] <shapefile> [<schema>.]<table>
Les principales options sont :
-s
précise le système de projection (SRS)-I
génère un index spatial (Gist)-S
utilise des géométries simples au lieu de géométrie multiple (défaut géométries MULTI).-d
Supprime la table avant de la récréer avec les nouvelles données.-a
ajoute les données du shape dans la table.-c
créé la table et l'alimente avec les données (option par défaut)-p
crée la table sans insertion des données.-D
Utilise des DUMP PostgreSQL-W
Encodage des données attributaires (exemple : -W LATIN1)-N
Gestion des géométries nulles--help
aide en ligne de la commande
À noter également l'option -m
qui depuis la version 2.2 de PostGIS permet de spécifier une table de conversion des noms de colonnes du fichier SHP vers des nouveaux noms de colonnes dans la table PostGIS. Les colonnes non spécifiées conservent leur nom.
La commande générique dans un shell pour importer sur un serveur distant est :
shp2pgsql [<options>] <shapefile> [<schema>.]<table> | psql.exe -h <serveur> -p <port> -U <user> -d <base>
(on utilise un pipe, de symbole |
, pour exécuter la sortie du shp2pgsql qui est une liste de commandes sql sur le serveur distant)
Aide-mémoire des options (en anglais).
Pour le choix entre shp2pgsql vs ogr2ogr, on pourra se reporter à cette discussion (en anglais) sur l'importation de grand ensemble de données. À noter cependant que la création d'index en import (qui est coûteuse) peut-être désactivée dans ogr2ogr avec l'option -lco SPATIAL_INDEX=NO
. L'index spatial pouvant être créé après coup sur le serveur (voir conseils).
Remarque :
Pour une utilisation de PostgreSQL/PosGIS en mode bureautique, il existe une interface shp2pgsql-gui qui est installée par défaut si vous avez installé PostGIS sous windows avec stackbuilder (entrepriseDB). Cette interface est lancée par PostGIS ShapeFile and DBF loader exporter.

Son utilisation, assez intuitive, est décrite dans le module SQL de la FOAD QGIS perfectionnement. Elle permet également l'export en utilisant en arrière plan pgsql2shp.exe.