postgis 쿼리에서 shapefile을 얻는 방법은 무엇입니까?


44

내 데이터는 PostGIS 데이터베이스에 있습니다. 쿼리에서 shapefile을 생성하고 싶습니다. 어떻게해야합니까?

답변:


85

권장되는 방법은 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'"

또한보십시오


pgsql2shp뷰를 shapefile로 내보내는 데 사용할 수 있습니까?
Ricardo Barros Lourenço

8

나는 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'"

7

내보내려는 데이터 조각에 따라 다른 방법은 qgis 또는 유사한 제품을 사용하는 것입니다. postgis에서 연결을 열고 관심있는 데이터를 선택하십시오. 그런 다음 shapefile로 저장합니다.

자동 및 / 또는 많은 양의 데이터를 내보내려면 rudivonstaden이 적절한 솔루션을 제공했습니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.