Team Project/제주도 여행 프로젝트

카카오 맵 API를 이용해 멀티 폴리곤을 만드는 방법(QGIS,MAPSHAPER)

ChoiDooSic 2021. 10. 12. 04:10

 

 

위의 이미지의 지도부분에 카카오 Map api를 이용하여 지도를 띄우고

나누어진 구역을 클릭시 모달창으로 해당 지역을 간략하게 소개해주고

해당하는 지역의 맛집 게시판으로 이동시켜줄건데 

카드형 게시판으로 이미지와 맛집이 쭈르르륵 나열되는 형태를 구상하고있다.

위의 사진이 폴리곤으로 구역을 나눈모습이다...! 아직 2구역바께는 못나눴다

문제들을 해결하고 나니 새벽3시... 더 이상은 못하겠다.

내일도 프로젝트를 진행해야하니 포스팅만하고 자려구 2구역만 하고 마무리지었다

 

#본격적으로 폴리곤으로 구역을 나누는 방법 포스팅 시작

1. 대한민국 최신 행정구역(SHP) 파일을 다운로드 받아주자

주소 | http://www.gisdeveloper.co.kr/?p=2332 

 

대한민국 최신 행정구역(SHP) 다운로드 – GIS Developer

 

www.gisdeveloper.co.kr

2. QGIS를 다운로드 받아주자

(장기 릴리스(가장 안정적)) 가장 안정적이라고하는 버전을 받았다.

최신버전은 어떤 오류가있을지 모르기마련..

주소 | https://www.qgis.org/ko/site/forusers/download.html

 

QGIS 다운로드

 

www.qgis.org

 

3. QGIS를 통해 1번에서 다운로드받은 최신 행정구역(SHP)파일을 열어주자!

3-1

레이어 -> 레이어 추가 -> 백터 레이어 추가

3-2

원본 칸의 [...] 클릭후 파일을 선택해주는대 이때에 주의할점!

shp와 shx 파일을 둘다 꺼내주어야 한다.

하나씩 추가해도되지만 (Ctrl+왼쪽 마우스 클릭)을 해준다면 둘다 한번에 선택가능하다.

 

3-3

파일을 추가해주면 지도가 나온다.

레이어에보면 파일 2개가 추가된걸 볼 수 있다.

 

자 정말 여기서는 집중해야한다

이 부분때문에 정말 해매었다......

좌표계라는것이 다르기때문이다 좌표계가 무엇인지 궁금하다면 직접 검색하길바란다 글쓴이도

잘 모른다 그냥 좌표계가 다르다니 그렇구나 했다.

우리는 카카오 Map api를 사용하니 카카오 Map api에 맞게 좌표계를 설정해줄것이다.

잘 따라오길 바란다.

3-4
3-5

오른쪽 사진에보면 좌표계에 지구본 모양의 작은 아이콘이있는데 클릭해준다면

왼쪽에 사진이 나올것이다 냅다 4326을 적어주고 WGS 84를 클릭하여 확인을 눌러주면된다.

3-6

공간범위를 꼭 체크해주길 바란다... 글쓴이는 공간범위를 체크를 안하고 시도해본적이 없다

궁금하다면 체크를 안하고 시도해보고 글쓴이도 궁금하니 답글을 남겨주면 감사하겠습니다. ㅎㅎ

파일 이름부분에 [...]을 클릭하여 저장할 공간을 선택하여주고 참고로 파일이 5개가 생성되니

폴더를 하나 만들어 담아두는것을 추천한다.

 

참고로 포맷에 GeoJSON부터 여러 형식으로 파일을 포맷해줄수 있으나

글쓴이는 GeoJSON으로하면 제대로 출력이 되질않아 ESRI shapefile로 하였다.

 

그렇다면 JSON파일로는 어떻게 변환해야하는가...!

이것도 간단하니 알아보도록 하자

주소 | https://mapshaper.org/

 

mapshaper

Drop files here or select from a folder Shapefile, GeoJSON, TopoJSON, DBF and CSV files are supported Files can be loose or in a zip archive Quick import Drop files here to import with default settings

mapshaper.org

1. mapshaper 사이트에 들어가준다

2. select 버튼을 누른다.

3. ESRI shapefile 형식으로 출력한 파일들을 담아둔 폴더를 열어

.dbf, shp, shx 파일을 셋다 클릭하여준다 앞서 말했지만 Ctrl + 마우스 왼쪽버튼 클릭 시

다중 선택이 가능하다!

4. 이 상태 고대로 Import를 하여준다

인코딩 타입을 보통 적어주는데 Export 할때만 해도 적용이된다.

(글쓴이는 됬으나 문제가 있으신 분들은 Import할때도 적용해주길 바란다.

encoding=UTF-8 , encoding=EUC-KR....등 자기가 원하는 형식으로 인코딩 해주길 바란다)

오른쪽 상단 맨 끝에 Export 버튼이 생겼다 냅다 클릭해주자.

지도 간소화 기능은 Simplify를 클릭하여 사용해주면된다

(글쓴이가 사용해보니 복잡한 선들을 꼭지점들을 조금씩 지워 네모네모해지게 만들어준다

꼭지점이 너무 많으면 입력할 값들이 상당히 많아져 프로그램 속도에 좋지못하니 간소화 하길 추천한다.)

Export를 클릭시에 이렇게 체크박스가 나오는데 Layer name에는 저장할 이름을 입력해주고

File format에는 받을 형식을 체크해주면된다.

GeoJSON 클릭! 이후에는 encoding타입을 결정해 주면되는데

이건 각자 다르기때문에 알아서 입력하셔야 된다는점...

(인코딩에 UTF에 빨간줄이 뜨는데 신경 안써두된다)

Export해주면 .json파일이 나온다

VS로 열어준다면 위도와 경도들이 나온다

검색해서 필요한 부분만 가져다 쓰거나 import하여 불러다 사용하면 될것이다!

참고로 주의할점은 위도와 경도가 앞뒤가 바뀌어있으니 이 부분은 알아서 해결하셔야된다

글쓴이는 양이 얼마 안되서 그냥 노가다로 해결 ㅎㅎ