Mes données sont dans une base de données PostGIS. J'aimerais générer un fichier de formes à partir d'une requête. Comment puis je faire ça?
44
La méthode recommandée consiste à utiliser l' utilitaire pgsql2shp , qui devrait être installé avec PostGIS. Notez que vous devez inclure la colonne de géométrie dans la requête.
$ pgsql2shp -f <path to output shapefile> -h <hostname> -u <username> -P <password> databasename "<query>"
Exemple (crée qds_cnt.shp
dans le répertoire courant):
$ pgsql2shp -f qds_cnt -h localhost -u postgres -P password gisdb "SELECT sp_count, geom FROM grid50_rsa WHERE province = 'Gauteng'"
Initializing...
Done (postgis major version: 2).
Output shape: Polygon
Dumping: XXXXXXXXXXXXXXXXXXXX [1947 rows].
Si vous souhaitez enregistrer une table entière en tant que fichier de formes, utilisez simplement le nom de la table en tant que requête.
Vous pouvez également utiliser l' utilitaire ogr2ogr , mais il comporte davantage de dépendances et ne devrait donc pas être la première option. Si vous êtes déterminé, la commande équivalente serait:
$ ogr2ogr -f "ESRI Shapefile" qds_cnt.shp PG:"host=localhost user=postgres dbname=gisdb password=password" -sql "SELECT sp_count, geom FROM grid50_rsa WHERE province = 'Gauteng'"
Voir également
pgsql2shp
pour exporter une vue vers un fichier de formes?Je n'ai pas assez de points de réputation pour commenter la réponse de rudivonstaden, mais j'ajouterais que l'écriture de commandes SQL en majuscules est importante pour pgsql2shp.
Par exemple, cela ne fonctionnera pas:
alors que cela fonctionnera:
la source
Selon le type de données que vous souhaitez exporter, vous pouvez également utiliser qgis ou un produit similaire: ouvrez une connexion postgis et sélectionnez les données qui vous intéressent. alors vous enregistrez en tant que fichier de formes ...
Si vous souhaitez exporter automatiquement et / ou de grandes quantités de données, rudivonstaden vous a fourni les solutions appropriées!
la source