Mis datos están en una base de datos PostGIS. Me gustaría generar un shapefile a partir de una consulta. ¿Cómo puedo hacerlo?
Respuestas
¿Demasiados anuncios?La forma recomendada de hacerlo es utilizando la pgsql2shp utilidad, que debe ser instalado con PostGIS. Tenga en cuenta que debe incluir la geometría de la columna en la consulta.
$ pgsql2shp -f <path to output shapefile> -h <hostname> -u <username> -P <password> databasename "<query>"
Ejemplo (crea qds_cnt.shp
en el directorio actual):
$ 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 quería salvar a toda la tabla como un shapefile, sólo tiene que utilizar el nombre de la tabla como la de la consulta.
También puede utilizar el ogr2ogr utilidad, pero tiene más dependencias, por lo que no debe ser la primera opción. Si se determina que usted es, el equivalente al comando sería:
$ 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'"
Ver también
Dependiendo de la pieza de datos que desea exportar, otra forma es usar qgis o un producto similar: se abre una conexión postgis y seleccionar los datos que te interesa; luego guardar como archivo de formas...
Si desea exportar automáticamente las partes grandes de datos, rudivonstaden dieron soluciones adecuadas.