PostgreSQL로 .shp를 가져 오시겠습니까?


14

shgre 파일을 postgreSQL로 가져오고 싶습니다. 먼저 sql 파일을 만든 다음 PostgreSQL을 실행합니다. SQL 파일을 만들려면 Windows cmd에서 다음 명령을 실행하십시오.

shp2pgsql -s 4326 worldCountries.shp worldcountries postgres > worldcountries.sql

그런 다음 다음을 실행하십시오.

psql -d postgres -U postgres -p 4321 -f worldcountries.sql

그러나 결과는 다음과 같습니다.

psql : worldcountries.sql : 21 : 오류 : 함수 addGeometrycolumn (알 수 없음, 알 수 없음, 알 수 없음, 알 수 없음, 정수)이 존재하지 않습니다.

답변:


13
ERROR: **function addGeometrycolumn**(unknown, unknown, unknown, unknown,unknown, integer) does not exist

PostGIS 가 아직 설치되지 않은 것 같습니다 . PostGIS는 지리 파일을 사용할 수있는 Postgres의 확장입니다.

설치하면 가져 오기가 정상적으로 작동합니다.


3
그리고 명령은 "CREATE EXTENSION postgis;"postgis.net/docs/… 입니다.
user30184

1
@ user30184 절대적으로 정확하지만 PostgreSQL 9.1 이상을 가정합니다. (제 생각에는 오래된 것을 사용해야 할 이유가 거의 없습니다.)
jpmc26


1

PostgreSQL에서 PostGis 확장을 설치할 때 설치된 가져 오기 플러그인 빌드를 사용할 수 있습니다. 메뉴의 플러그인에서 찾을 수 있으며 PostGIS Shapefile 및 DBF 로더라고합니다.

이 유튜브 예를 들어 비디오


0

psql에 다른 투영이 있습니다. 프로젝션을 가질 필요는 없습니다. 모양 파일을 추가하려는 스키마가 있습니까?

이것은 작동해야합니다 :

shp2pgsql -s 4326 -I worldcountries.shp schema.worldcountries > dr_worldcountries.sql

psql -f worldcountries.sql -h [host] -d [database] -U postgres

3
-pfor psql는 투영이 아닌 서버의 포트 를 알려줍니다. 투영은 SQL 스크립트에 포함됩니다. 의 동작에 대해서는 훌륭한 매뉴얼 을 참조하십시오 psql. 이 경우 OP가 지정하는 포트가 기본 포트가 아니므로 필수입니다. 또한 일반적으로 투영없이 모양을 저장하지 않는 것이 좋습니다. 이렇게하면 투영을 변경하는 기능이 제한되어보다 정확한 계산을 얻는 데 도움이됩니다.
jpmc26
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.