GIS

QGIS 3.4에서 PostgreSQL/PostGIS 연동하기

유병혁 2018. 10. 31. 22:56

안녕하세요? 이번 글은 QGIS 3.4에서 PostgreSQL/PostGIS 연동하는 방법을 정리해 보겠습니다.

QGIS 3.2 버전부터는 프로젝트 자체를 PostgreSQL에 저장하실 수 있습니다. 한 번 살펴볼까요?!


먼저, '레이어 > 데이터소스 관리자'를 실행합니다.


아래 Data Source Manager에서 PostgreSQL 탭을 선택합니다.


참고로, PostgreSQL/PostGIS 설치는 다음 글을 참조하시면 됩니다.

윈도우에서 PostgreSQL과 PostGIS 설치하기 | http://blog.daum.net/geoscience/1237


'새로 생성' 버튼을 클릭합니다.


아래와 같이 '새 PostGIS 연결 생성'을 정의해 보겠습니다. 저는 앞서 PostgreSQL에

Seoul 데이터베이스를 생성하였습니다. 이제 '연결 테스트' 버튼을 클릭해 볼까요?!


아래와 같이 사용자명, 비밀번호를 입력하여 연결을 확인합니다.


자, 아래와 같이 Seoul 연결을 추가하였습니다. 이제 이 Seoul 연결을 통해 쉐이프파일을 임포트해 보겠습니다.


상단 메뉴 '데이터베이스 > DB 관리자'를 실행합니다.


'DB 관리자' 창은 아래와 같습니다. 여기서 PostGIS Query를 적용하실 수 있습니다.


제공자 > PostGIS 하단에 다음과 같이 Seoul DB를 확인하실 수 있습니다.


이제 'Import Layer/File' 버튼을 클릭하면,


다음과 같이 '벡터 레이어 가져오기' 창이 실행됩니다.


아래 쉐이프파일은 서울시 행정구역 읍면동 공간정보입니다.


벡터 레이어 가져오기 창을 실행했더니 아래와 같은 오류가 발생합니다. 왜 그럴까요?

PostGIS 확장 모듈을 로드하지 않아 쉐이프파일을 인식하지 못하는 상태인 것입니다.


이럴 때는 아래와 같은 'SQL Window'를 실행하고,


아래와 같이 쿼리를 적용하여 PostGIS 확장 모듈을 로드합니다.

create extension postgis;


자, '벡터 레이어 가져오기'를 다시 실행해볼까요?! 여기서 '도형 열'은 체크해 주겠습니다.


임포트가 성공하였습니다! 반가운 결과를 확인해 볼까요?!


아래와 같이 'Seoul > public' 하부에 성공적으로 임포트된 것을 확인하실 수 있습니다.


DB 관리자는 다음과 같이 테이블이나 미리보기를 확인하실 수 있습니다.


해당 레이어를 더블 클릭하여 맵 뷰에 추가하였습니다.


이번엔 프로젝트까지 PostgreSQL에 저장해 볼까요?! 상단 메뉴 '프로젝트 > 다음에 저장 > PostgreSQL'를 선택합니다.


아래와 같이 'Save project to PostgreSQL' 창이 실행되는데요, 이 데이터베이스 연결은

QGIS 프로젝트 저장이 불가 하다고 안내하고 있습니다. 저장 가능하도록 활성화해 보겠습니다.


방법은 '데이터소스 관리자 > PostgreSQL 탭'에서 Seoul DB를 편집해 주시면 되겠습니다.

맨 아랫쪽 'Allow saving/loading QGIS projects in the database'를 체크해 주시면 됩니다.


자, 이제 프로젝트를 PostgreSQL에 저장하실 수 있습니다!


이제 QGIS를 재실행할 때 '최근 사용한 프로젝트' 목록에서 해당 프로젝트를 클릭해 주시면 됩니다.


인증서 입력을 확인하고 나면,


아래와 같이 PostgreSQL/PostGIS와 연동되어 있는 프로젝트에서 작업을 이어가실 수 있습니다.