개발공작소
article thumbnail
728x90

자 저번 시간에 GeoServer에 Postgres를 연동해보았다. 이제 GeoServer에서 해당 DB에 있는 공간데이터를 포함하는

테이블을 가지고 레이어를 발행할 수 있을 것이다. 

그럼 또 문제가 생긴다. 공간데이터를 포함하는 데이터를 어떻게 DB에 넣지? 

오늘은 공간정보파일(이하 Shp파일)을 DB화 하는 방법을 알아보겠다.

 

Shp파일을 얻는 방법은 크게 2가지가 있다.

1. Qgis툴을 이용하여 Shp파일을 생성하는 방법.

2. 국가공간정보포털이나 공공사이트에서 다운로드 하는 방법. 

 

오늘은 국가공간정보포털을 통해 Shp파일을 다운 받아서, DB에 적재하는 것을 목표로 한다.

 

1. Shp파일 다운로드

============================================================================

아래 링크를 통해 국가공간정보포털에 들어간다.

 

http://www.nsdi.go.kr/lxportal/?menuno=2679 

 

국가공간정보포털

국가는 다양한 방법으로 공간정보 서비스를 제공하기 위해 노력해왔으나, 산재된 서비스 체계로 인해 공간정보 활용에 어려움이 있었습니다. 그래서 국가·공공·민간에서 생산한 공간정보를

www.nsdi.go.kr

 

개방공간의 오픈마켓에 들어간다. 오픈마켓에서는 공개 된 공간정보 관련 데이터를 다운로드 받을 수 있다.

 

샘플 : 연속지적_서울

나는 샘플로 연속지적도_서울의 Shp파일을 다운로드 받겠다. 

 

여기서 서울_종로구.zip을 다운로드 받아보겠다. ( 회원가입후 로그인을 해야 다운로드 받을 수 있다! )

그렇게 다운로드를 받으면 아래와 같이 파일이 보인다.

 

다운로드 받은 shp파일

shp파일은 .zip 형태로 안에 여러 파일이 있다. 그건 나중에 기회가 되면 정리하는 걸로..

 

PostGis

그리고 PostGis 녀석을 실행한다. ( postgres 확장 패키지 설치에 대한 건 아래 링크 참조 )

 

실행화면

그리고 [ View connection details... ] 버튼을 누르면 DB연동 정보를 입력하는 창이 나오는데, 본인

DB정보를 넣고 [ OK ] 버튼을 누르도록 하자.

 

연결이 제대로 되면 아래와 같이 로그가 뜬다. [ Add File ] 버튼을 누르도록 하자.

 

그럼 이제 본인 디렉토리에서 .shp와 .dbf 파일을 선택하여 추가하도록 한다. ( 둘 중 하나라도 추가 하지 않으면

제대로 테이블이 생성되지 않는다. )

 

추가 된 모습

그럼 shp와 dbf가 추가 된 것이 보인다. 여기서 SRID를 입력해줘야 하는데, 연속지적도 같은 경우는 5174를 맞춰준다.

SRID는 Qgis로 만들었으면 prj 파일을 참고하면 되고, 국가공간정보포털에서 다운로드 받은 경우는 홈페이지에서

찾아서 하거나, 고객센터에 문의하면 된다.

Options

이제 [ Options ] 버튼을 눌러 모든 체크를 해제한 뒤 [ OK ] 버튼을 눌러 설정을 적용해주고, [ Import ] 버튼을

눌러주면 해당 데이터베이스의 해당 스키마에 테이블이 생성 되는 것을 확인 할 수 있다!

 

근데 위와 같이 에러가 2개 발생했다. 

에러1 : dbf file (.dbf) can not be opened. Shapefile import failed.

에러2 : Unable to convert data value to UTF-8 (iconv reports "Illegal byte sequence"). Current encoding is "UTF-8". Try "LATIN1"....

 

해결방법

첫번째 에러는 경로에 한글이 들어가 있어서 그런 것. 경로를 영어로 바꿔주니 두번째 에러가 발생하였다.

두번째 에러는 dbf의 인코딩 방식을 UTF-8이 아니라, CP949로 변경하면 해결 된다.

 

Options에서 변경해주면 된다. 그럼 다시 Import를 해보면 정상적으로 해당 테이블이 생성 되는 것을 확인 할 수 있다.

아래와 같이 SELECT문을 활용하여 확인이 가능.

성공

 

자 이렇게 테스트용 공간정보 테이블을 생성해보았다. 근데 어째 SRID가 안맞는 것 같은 느낌이..

국가공간정보포털을 믿을 수가 없어지는.. 시간이 되면 Qgis로 좌표계를 맞춰봐야겠다.

그럼 다음 글에서 이 테이블로 GeoServer에 레이어를 발행해보자~

728x90
profile

개발공작소

@모찌바라기

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!