답변:
권장되는 방법은 PostGIS와 함께 설치해야하는 pgsql2shp 유틸리티를 사용하는 것 입니다. 쿼리에 형상 열을 포함시켜야합니다.
$ pgsql2shp -f <path to output shapefile> -h <hostname> -u <username> -P <password> databasename "<query>"
예 ( qds_cnt.shp
현재 디렉토리에서 작성 ) :
$ 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].
전체 테이블을 shapefile로 저장하려면 테이블 이름을 쿼리로 사용하십시오.
ogr2ogr 유틸리티를 사용할 수도 있지만 더 많은 종속성이 있으므로 첫 번째 옵션이 아니어야합니다. 결정되면 동등한 명령은 다음과 같습니다.
$ 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'"
또한보십시오
나는 rudivonstaden의 대답에 대해 언급할만한 평판이 충분하지 않지만 대문자로 sql 명령을 작성하는 것이 pgsql2shp에 중요하다는 것을 덧붙일 것입니다.
예를 들어, 작동하지 않습니다.
$ pgsql2shp -f qds_cnt -h localhost -u postgres -P password gisdb "Select sp_count, geom from grid50_rsa where province = 'Gauteng'"
반면 이것은 작동합니다 :
$ pgsql2shp -f qds_cnt -h localhost -u postgres -P password gisdb "SELECT sp_count, geom FROM grid50_rsa WHERE province = 'Gauteng'"
pgsql2shp
뷰를 shapefile로 내보내는 데 사용할 수 있습니까?