QGIS를 이용하여 공간데이터를 DB로 구축해보자
1. QGIS 다운로드
QGIS는 데이터 뷰, 편집, 분석을 제공하는 크로스 플랫폼 자유-오픈 소스 데스크톱 지리 정보 체계 응용 프로그램
LTR 버전을 다운로드 한다
QGIS 프로젝트에 오신 것을 환영합니다!
여러분의 GIS 작업에 QGIS를 사용해 보세요.
qgis.org
2. QGIS 설치
다운로드 받은 설치 파일을 실행하여 QGIS를 설치한다
QGIS 버전이 'Bialowieza'로 나와 있어 검색해 보니 폴란드와 벨라루스 구경에 있는 숲 이름이라고 한다. 유네스코 시계유산으로 지정되어 있으며 유럽에 남은 마지막 원시림 이라고 함
3. QGIS 실행
바탕화면이나 시작메뉴에서 QGIS를 선택하여 프로그램을 실행하자
DB에 입력할 공간데이터 SHP파일을 레이어로 불러온다
테스트에 사용할 shp 파일은 국가공간정보포털(openapi.nsdi.go.kr)에서 제공하는 법정동 경계 파일을 사용함
http://www.nsdi.go.kr/lxportal/?menuno=2679
국가공간정보포털
국가는 다양한 방법으로 공간정보 서비스를 제공하기 위해 노력해왔으나, 산재된 서비스 체계로 인해 공간정보 활용에 어려움이 있었습니다. 그래서 국가·공공·민간에서 생산한 공간정보를
www.nsdi.go.kr
법정동 경계 파일을 다운로드 받고 압축을 해제하여 qgis로 드래그 하여 레이어를 불러온다
4. QGIS와 POSTGRESQL 연동
불러온 QGIS 레이어를 POSTGRESQL과 연동하여 DB에 IMPORT 해보자
먼저 좌측 탐색기 메뉴에서 POSTGIS를 선택하여 DB연결을 생성하자
지난번에 생성한 postgresql 정보를 입력하여 연결을 생성한다
상단 메뉴의 데이터베이스를 클릭하여 DB관리자를 실행하자
상단 메뉴의 스키마 생성하기 버튼을 클릭하고 shp2db라는 스키마를 생성하자
스키마 생성 후 레이어/파일 불러오기를 선택
QGIS에서 불러온 레이어가 보인다
레이어 전체에 대해서 utf-8로 인코딩된 값을 가져오기 위해 아래와 같이 설정
SRID는 입력된 데이터에 맞게끔 자동으로 설정됨
4. 오류 발생
확인 버튼을 눌러 DB에 import를 하면 다음과 같이 오류가 발생한다.
PostgreSQL에서 공간데이터를 사용하기 위해서는 PostGIS를 설치하고 해당 DB에 EXTENSION을 해줘야만 한다
5. 오류 해결
PostgreSQL이 설치된 서버에 접속하여 PostGIS를 설치해보자
postgis 확장 모듈 만들기: 한국 포스트그레스큐엘 홈페이지 (postgresql.kr)
postgis 확장 모듈 만들기
CentOS 7에서 postgis 모듈 만들기
postgresql.kr
PostGIS를 사용하기 위해서는 GEOS, PROJ, GDAL, SFCGAL 등등 추가적인 패키지가 필요하다
소스를 직접 찾아 컴파일 하고 설치를 해도 가능하지만 정신건강을 위해서 yum을 이용하여 설치하는것을 추천함
#>yum list | grep postgis
yum list를 확인해보면 postgis 버전이 상당히 많을것을 볼 수 있다
실습용 서버에 설치된 PostgreSQL 버전은 12버전이므로 해당 버전에 맞는 PostGIS를 설치한다
#>yum install postgis30_12
6. 다시 공간데이터 import
다시 QGIS를 실행하고 DB관리자로 이동해보자
생성된 testdb 데이터베이스의 shp2db 스키마에 레이어를 import해보자
또 오류가 발생한다... 당연히 PostGIS EXTENSION을 생성하지 않아서 문제가 발생한다
DB툴이나 PSQL을 이용하여 설치된 PostGIS EXTENSION을 생성하자
QGIS를 이용하여 다시 DB관리자를 실행하여 레이어를 불러오면 비활성화 되었부분이 활성화 되어 있다
확인 버튼을 눌러 import를 실행해보자
DB툴을 이용하여 import한 내용을 확인해보자
DB툴이 여러가지가 있는데 그중에서 DBEAVER가 가장 마음에 들어서 주로 애용함
공간데이터에 대해서 바로 직접적으로 확인이 가능해서 여러모로 아주 좋음
PostgreSQL 설치는 쉬우나 PostGIS 설치 부분이 매우 어렵다
특히 소스 파일을 하나하나 다운로드 받아서 컴파일 해가면서 설치하면 멘탈이 나가기 쉬우므로 yum을 이용한 설치를 추천함
'공부 > postgresql' 카테고리의 다른 글
postgresql 설치 (0) | 2022.07.03 |
---|