PostGIS 데이터베이스에 쉐이프 파일 추가


30

Postgresql 데이터베이스를 만든 다음 실행했습니다.

createlang plpgsql geospecies
psql -d geospecies -f postgis.sql
psql -d geospecies -f spatial_ref_sys.sql

이제 shapefile을 직접 가져올 수 있습니까? 이것이 올바른 명령일까요?

ogr2ogr -f PostgreSQL PG:"host=server_ip user=username dbname=dbname password=password" yourshapefile.shp;

데이터베이스를 구성하는 방법을 잘 모르겠습니다. 테이블이 필요하지 않습니까? 결국 많은 모양의 파일을 추가해야하며 그렇게하는 명령이 있습니까?

답변:


49

시도하십시오 shp2pgsql. 기본 구문은 다음과 같습니다.

shp2pgsql -s SRID SHAPEFILE.shp SCHEMA.TABLE | psql -h 호스트 -d 데이터베이스 -U 사용자

나는 항상 http://www.bostongis.com 에서이 치트 시트 를 유용하게 생각합니다. 약간 아래로 스크롤하면 데이터를로드하는 방법에 대한 간단한 예를 찾을 수 있습니다.

도움이 되길 바랍니다.


그러나 나는 테이블이 없습니다. 어떤 테이블과 스키마를 만들어야합니까?
Sam007

1
당신이 한 번 봐 걸릴 경우 쪽지를 , (-d|-a|-c|-p)테이블에 대한 플래그입니다. 아무것도 지정하지 않으면 -c기본적으로 선택 됩니다 (새 테이블을 작성하고 채 웁니다). 에 관해서는 SRID, 나는 모른다-그것은 데이터의 투영에 달려있다. .projshapefile과 함께 제공된 파일 이있는 경우 prj2epsg.org/search 에서 투영을 확인할 수 있습니다 . 그것이 도움이

답장 @Haziq 주셔서 감사합니다. 나는 어디에서 -c오는지 혼란 스럽 습니까? 시도 shp2pgsql -s 4326 /var/www/geo/shapefile/PimaPine.shp -c public.Pima | psql -h localhost -d geospecies -U smaranh했지만 오류가 발생했습니다 dpaste.com/834563
Sam007

나는 생각 -c후 진행해야 -s 4326하고, 전 /var/www/geo/shapefile/PimaPine.shp... 구문은 shp2pgsql [OPTIONS] shapefile [schema.]table. -c스틸 효과 의 위치를 ​​변경하면 오류가 발생합니까?

여전히 같은 오류입니다. 또한 ROLLBACK 오류에 직면 할 수도 있습니다. gis.stackexchange.com/questions/41807/…
Sam007

4

아! 아직 댓글을 달 수 없습니다!

Haziq가 게시 한 것은 Sam을 수행하는 올바른 명령 줄 방법입니다.

TABLE은 이름을 지정하려는 모든 항목이며 쿼리에서 호출 할 때 사용할 이름이며 가져 오기시 테이블이 생성됩니다.

나처럼 게으 르면 QGIS 플러그인으로 사용할 수있는 멋진 SPIT (Shapefile to PostGIS Import Tool)를 사용하여 모든 모양 파일을 가져옵니다. 이전에 OpenGeo를 사용한다고 말한 것처럼 QuantumGIS를 사용한다고 가정합니다.


1
문제는 GUI가 없다는 것입니다. 우분투 서버에서 원격으로 작업하고 있습니다.
Sam007

SPIT은 원격으로 작동하며 직장에서 집 DB까지 항상 작동하므로 psql에 로그인 할 때 연결 정보를 입력하면됩니다.
RomaH

실행 방법
Sam007

글쎄, 로컬 shp 파일을 가져 와서 원격 서버에 저장한다고 가정했습니다. QGIS를 시작하고 로컬 컴퓨터에서 SPIT 플러그인을 사용하고 원격 서버를 연결 한 후 업로드합니다.
RomaH

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