DATABASE 생성
postgresql을 설치하고 데이터베이스 우클릭 > create > database를 선택한다.
생성한 데이터베이스에서 Extensions 우클릭 > create > Extension
postgis를 검색 > 선택 후 저장
public 스키마의 비어있던 function에 gis function이 추가된다
데이터셋 다운
국가공간정보포털에 접속해서 좌측 상단의 오픈마켓을 선택
http://data.nsdi.go.kr/dataset
공공기관에서 작성한 데이터셋을 받을수 있다
연습에선 행정구역_읍면동과 연속지적도를 사용한다 연속지적도를 사용한다
다운 받는 파일은 shapefile이다.
shapefile은 백터 형식이며 점, 선, 면(도형)으로 표현된다.
shapefile은 하나의 파일이 아닌 3개의 확장 포멧(shp, shx, dbf)를 합쳐 shapefile이라고 한다.
QGIS에 데이터셋 설정
QGIS에서 open street map을 추가(실제 지도를 보기위해)하고, 위에서 다운받은 연속지적도, 행정구역_읍면동을 추가한다
좌표가 안맞는다면 좌표계를 수정해가면서 좌표를 일치 시켜야한다.
레이어 우클릭 > 내보내기 > 객체를 다른 이름으로 저장
파일 이름(경로 포함)에 한글이 있으면 안된다.
내가 설정한 좌표계(현재는 4326)을 설정해서 저장한다
저장하면 하나의 레이어당 6개의 파일 포멧으로 저장되는데 각자의 의미는 아래와 같다
.shp : 점, 다각형 등의 지리정보를 담고 있다. 이 때 지리정보의 타입은 혼용되지 않는다. 점과 다각형이 같은 파일에 저장 될 수 없다는 뜻이다.
.shx : 지리정보의 인덱스 정보를 담고 있다.
.dbf : 지리정보의 속성 정보를 담고 있다.
.prj : 데이터가 사용하는 좌표계(제한적) 정보를 담고있다.(ESRI호환)
.qpj : 데이터가 사용하는 좌표계(완전한) 정보를 담고있다.
.cpg : 문자 인코딩의 정보를 담고 있다.
POSTGIS 임포트
postgis를 설치했으면 postgis shapefile import/export manager가 설치된다.
view connection detail을 클릭해 데이터베이스와 연결한다
succeeded가 출력되면 정상적으로 연결됨력되면 정상적으로 연결됨
add file 또는 .shp파일을 드래그해서 파일을 추가한다.
public 또는 사용자가 생성한 스키마(practice)를 설정.
QGIS에서 내보낸 좌표계 타입으로 SRID를 설정.
import가 정상적으로 되었다면 completed가 출력된다.
pgadmin에서 사용자가 선택한 스키마에 테이블이 생성된 것과 데이터를 보면 정상적으로 import된 것을 확인할 수 있다.
생선된 테이블의 DDL을 보면 import할 때 설정한 SRID가 반영되었음을 확인할 수 있다. - geometry(multipolygon,4326)
또한 인덱스가 추가로 선언되는데 데이터 처리 속도를 위한 인덱스이다.
QGIS POSTGIS 데이터 보기
탐색기 POSTGIS 우클릭 > 새연결
데이터 베이스 정보를 입력하고 연결을 선택하면 QGIS에 POSTGIS의 데이터 레이어를 볼 수 있다.
공간 함수
구글에 postgis function을 검색하면 다양한 함수에 대한 설명을 볼 수 있다.
https://www.postgis.net/docs/reference.html#Geometry_Constructors
QGIS 연결시 definition of service not found
서비스 항목을 사용하면 특정 postgresql 데이터베이스에 액세스하는 데 필요한 연결 매개 변수가 포함 된 서비스 파일 을 지정할 수 있습니다 .
서비스 파일이 있으면 데이터베이스, 호스트, 포트, 사용자 및 암호와 같은 기타 세부 정보를 입력하지 않아도됩니다.
다음은 서비스 파일에 포함 할 수있는 몇 가지 옵션 입니다.
sоmеbody는 로컬 DB에 연결할 때 "서비스"상자에 무엇을 써야하는지 설명해 줄 수 있습니다. :
따라서 일부 서비스 파일을 구성하지 않은 경우 아무것도 입력 할 필요가 없습니다. 공백으로 두십시오.