GIS

QGIS/PostGIS 연결하기

유병혁 2023. 5. 17. 18:23

안녕하세요? 이번 글은 QGIS와 PostGIS와 연결하는 과정을 정리해 보겠습니다. 앞서 PostgreSQL/PostGIS에서 gongju라는 이름의 공간 데이터베이스를 생성했었는데요, QGIS를 열고 gongju 공간 DB를 확인해 보겠습니다.

 

QGIS를 실행하고 탐색기 패널에서 'PostgreSQL > 새 연결'을 클릭합니다.

다음과 같이 '새 PostGIS 연결 생성' 창이 실행되는데요, 여기에 gongju 공간 DB에 해당하는 정보를 입력하면 되겠습니다.

이름은 '공주시', 데이터베이스는 'gongju'를 입력해 보겠습니다.

인증은 기본 탭을 선택한 후, 사용자 이름과 비밀번호를 입력해 주겠습니다. 실습 편의를 위해 사용자 이름, 비밀번호는 둘다 'postgres'로 지정했습니다. '연결 테스트'를 클릭해 보겠습니다.

다음과 같이 '공주시 에 성공적으로 연결했습니다.'라는 메시지가 표출됩니다. 이제 '확인' 버튼을 클릭해서 QGIS에서 gongju 공간 DB 연결을 생성합니다!

다음과 같이 'PostgreSQL > 공주시'가 추가되었는데요, 공주시를 클릭해 보겠습니다.

인증서 입력 창에서 사용자 이름과 비밀번호를 입력하고 '확인'을 클릭해 보겠습니다.

다음과 같이 gongju 공간 데이터베이스에 포함된 테이블들이 표시됩니다. 각각 테이블은 QGIS에서 즉시 열람 가능합니다.

앞서 실습했던 네트워크 데이터, trail_kr 테이블과 trail_kr_vertices_pgr 테이블을 추가해 보겠습니다. 간단하죠?!

이번에는 '데이터베이스 > DB 관리자'를 실행해 보겠습니다.

DB 관리자에서도 공주시, 즉 gongju 공간 데이터베이스를 확인할 수 있습니다.

pgAdmin4에서는 Query Tool을 사용했었는데요, DB 관리자에서는 SQL 윈도우를 통해 쿼리 실행이 가능합니다. '데이터베이스 > SQL 윈도우'를 실행해 보겠습니다.

다음과 같은 창이 실행됩니다.

쿼리를 한번 실행해 보겠습니다. "trail_kr" 테이블에서 산 이름이 '보문산'인 객체들만 선택해 봅니다. 

SELECT * FROM trail_kr
WHERE mntn_nm = '보문산';

쿼리 입력 후 '실행' 버튼을 클릭하시면 다음과 같이 결과를 확인하실 수 있습니다.

'뷰 생성' 버튼을 클릭해 보겠습니다. 여기서 뷰는, 데이터베이스에서 데이터를 저장하지 않고 쿼리 결과를 가상의 테이블로 표현하는 것입니다. 뷰 이름은 "trail_bomunsan"으로 지정하겠습니다.

새로 고침 또는 F5 버튼을 클릭하면, 공주시 공간 데이터베이스 목록에서 "trail_bomunsan" 테이블을 확인할 수 있습니다. 더블클릭하면 QGIS 레이어 패널에 해당 레이어가 추가됩니다.

gongju 공간 데이터베이스에 저장된 "trail_bomunsan" 테이블은 QGIS에서 공간 데이터 파일과 동일하게 사용할 수 있습니다. 여기서는 '네트워크 분석 > 최단 경로 (포인트에서 포인트로)'를 실행해 보겠습니다.

 

네트워크를 나타내는 벡터 레이어는 "trail_bomunsan"을 지정하고 시작점과 종단점은 지도 뷰에서 원하는 지점을 클릭해서 입력해 보겠습니다.

결과는 다음과 같습니다. 여기까지 QGIS와 PostGIS를 연결하는 과정을 학습해 봤는데요, 탐색기 패널 또는 DB Manager에서 PostgreSQL/PostGIS 공간 데이터베이스와 연계한 후, SQL 또는 공간 처리 툴박스를 통해 분석할 수 있음을 확인해 봤습니다.