본문 바로가기
공부/naver map api

[naver map api 예제] QGIS로 예제 데이터 만들기

by 고기 2022. 3. 4.

※ 참고

naver map api 예제라고 했지만 사실 이번 글은 api 사용과는 상관없는 글이다. 예제 데이터를 준비하는 과정이므로 이미 데이터가 준비된 사람은 다음 글부터 읽으면 된다.

 

shp file은 지리 공간 벡터 데이터 형식으로, 행정구역 shp file은 아마도 주로 공공기관(통계청 등)에서 배포가 될 것이라고 생각한다. 그걸 받아서 사용해도 되고, 능력자분들께서 무료 혹은 유료로 배포하는 shp file도 있을테니 그걸 받아서 사용해도 되고. 자유롭게 shp file을 다운로드 받으면 된다. shp file을 구하지 못하겠다면 뭐... 일단은 naver map api에서 폴리곤 직접 그리는 기능도 제공하니까 그걸로 테스트하면 된다. 폴리곤 관련 내용은 이후 작성하겠다.

 

나는 국가공간정보포털에서 다운로드 했다. 내가 지금 대전에서 자취하고 있기 때문에 대전으로 다운로드 받았는데(tmi), 똑같이 따라할 사람은 아래 링크에서 행정구역_읍면동과 행정구역시군구_경계 두 가지 shp file을 대전으로 다운로드 받으면 된다.

http://data.nsdi.go.kr/dataset?q=%ED%96%89%EC%A0%95%EA%B5%AC%EC%97%AD 

 

데이터셋 - 오픈마켓

다울지오인포 다울지오인포에서 제공하는 공간정보, 행정경계 입니다. HTML 조회수: 3914

data.nsdi.go.kr

 

다운로드 받은 zip file 압축을 해제하면 다음과 같은 파일들이 생성된다.

사진1

 

shp file을 수정하기 위해 지리정보시스템 소프트웨어를 사용하면 된다. 몇 가지 소프트웨어들이 있는걸로 알고 있는데, 나는 무료 소프트웨어인 QGIS를 사용했다. 설치하는 방법은 어렵지 않기 때문에 글을 따로 작성하진 않는다.

https://qgis.org/ko/site/

 

QGIS 프로젝트에 오신 것을 환영합니다!

여러분의 GIS 작업에 QGIS를 사용해 보세요.

qgis.org

 

QGIS를 실행하고 shp file을 드래그한다.

사진2

 

왼쪽에 로드된 파일들을 레이어라고 하는데, 읍면동 레이어가 시군구 레이어 위에 있기 때문에 시군구 레이어가 가려져있는 상태다. 시군구 레이어를 더블클릭해서 심볼 부분을 조금 바꿔준다. 채우기 스타일을 브러시 없음으로 설정하고 획 너비를 조금 키워주고 적용하면 된다.

사진3

 

마찬가지로 읍면동 레이어를 더블클릭하고 채우기 색상과 획 색상 등을 자유롭게 설정해준다. 나는 채우기 색상에서 불투명도를 10%로 설정하고 획 색상을 붉은 계열로 아무거나 선택했다.

사진4

 

배경이 밋밋하니까 지도를 아래 깔아준다. 우선 상단의 플러그인 - 플러그인 관리 및 설치에서 tms를 검색해서 설치한다.

사진5

 

웹 - TMS for Korea - VWorld Maps - VWorld Street을 선택하면 다음과 같은 지도가 출력된다. 왼쪽에 VWorld Street 레이어를 맨 아래로 내리면 된다.

사진6

 

naver map api를 사용해서 코드를 구현할 때, 구분할 수 있는 컬럼이 필요해서 시군구 레이어와 읍면동 레이어에 구분 컬럼을 추가해준다. 시군구 레이어를 클릭하고 F6을 눌러서 속성 테이블을 연 다음 ctrl+i로 필드 계산기를 연다. 새로운 필드 생성에서 산출 필드 이름을 "구분"으로 설정하고 산출 필드 유형을 "텍스트(string)"으로 설정해준다. 표현식에 작은 따옴표를 사용해서 " '구' "라고 작성한 다음 확인을 누르고 ctrl+e로 저장해준다.

사진7

 

마찬가지로 읍면동 레이어도 구분 컬럼을 생성해서 " '동' "을 입력하고 저장하면 된다.

사진8

 

이제 shp file을 json file로 변환시켜서 저장한다. 레이어 오른쪽 클릭 - 내보내기 - 객체를 다른 이름으로 저장을 클릭한다.

사진9

 

포맷을 GeoJSON으로 변경하고 파일 이름을 원하는대로 설정한다. 단, 파일 이름 입력창 오른쪽 끝에 ...버튼을 클릭해서 경로를 설정해주지 않으면 기본 경로에 파일이 저장되기 때문에, 그걸 원치 않으면 ...을 클릭해서 사진처럼 직접 경로를 설정해주면 된다.

사진10

 

좌표계는 naver map 좌표계인 4326을 검색해서 설정한 다음 파일을 저장하면 된다.

사진11

 

두 개의 파일이 생성됐으면 정상적으로 예제 데이터가 준비된 상태다.

사진12

 

여기까지 예제 데이터를 만드는 과정, 즉 shp file을 가공하고 json file로 변환하는 과정까지 알아보았다. 다음 글에서는 naver map api를 활용해서 naver map 위에 만들어둔 시군구와 읍면동 파일을 올리는 과정을 알아본다.

daejeon_yuseong_all.geojson
0.43MB

 

daejeon_yuseong_Administrative.geojson
2.97MB

 

 

댓글