💻 Programs & Tools

[지도 시각화] shp에서 geoJSON으로 변환하기

민이언즈 2023. 7. 28. 13:46

공모전을 준비하면서 파이썬으로 지도 시각화를 해야했는데,

shp 파일을 처음 제대로 만져보다보니 생각보다 시행착오가 꽤 있었다..

 

1) 파이썬 내에서 코드로 파일 변환

2) GIS에서 파일 변환

3) 이곳저곳 사이트에서 변환

 

직접 삽질한 끝에 아주 편리하고 올바른 방법이 있어서 공유한다. ㅠ

결론 : mapshaper 사이트 추천

 


서울특별시 경계 shp 파일은 아래에서 다운로드할 수 있다.

Raw data : http://data.nsdi.go.kr/dataset/15144

 

행정구역시군구_경계 - 오픈마켓

법정동(시군구) 경계도면

data.nsdi.go.kr

 

 

zip 파일을 다운로드 받으면 총 4개의 파일이 들어있다.

  • cf) Python에서 shp파일은 위 파일들이 같이 있어야 열린다. 아니면 에러 발생함.

 

1. mapshaper 사이트 접속하기

 

mapshaper

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

mapshaper.org

 

2. select 눌러서 / drag & drop 으로 변환할 zip 파일 업로드

보통 처음 다운로드 받을 때 shp을 포함한 여러 파일이 함께 들어있는 zip 형태일 것이다. 

압축을 풀지 않고 그대로 넣어주는 게 편하다. 

파일 인코딩 확인 후 입력해준 후 import 클릭 !

 

import를 누르면 아래처럼 지도 형상이 만들어진다. 

 

 

 

3. Console 클릭 후 -proj wgs84 입력 후 엔터

  • wgs84 : 지구의 평균 해수면을 정의하는 좌표 시스템 중 하나로, 전 세계적으로 널리 사용되는 경위도 좌표 시스템
  • "-proj wgs84"를 입력하면 데이터의 좌표 시스템을 WGS84로 변경하는 작업을 수행

명령어를 입력 하면 지도 모양이 아주 살짝 달라진다.

 

 

4. Export 클릭 → File format GeoJSON 클릭 → Export 버튼 클릭

만약 파일 크기가 걱정된다면 Simplify 활용도 가능하다.

 

 

5. 중요 : 파일 변환이 올바르게 됐는지 확인

파일 변환 시 올바른 변환 + 올바른 인코딩 방법이 중요하다.

당연한 소리지만 위에서 말한 온갖 방법을 다 해보다가

결국 변환된 파일이 잘못돼서 시각화 결과가 안나오는 것이었다는 걸 알게 됨..

 

아래 사진들은 Notepad ++ 로 파일을 직접 열어본 결과이다.

 

mapshaper 이용, 올바르게 변환된 파일
잘못 변환된 파일들

파일들을 비교했을 때 데이터가 검은색 글자로 뜨면서 알록달록한 위 사진과 확연히 다른 걸 알 수 있다. 

파일 변환 후 Notepad ++로 직접 확인해보자 ! 아니면 삽질 파티가 된다..

 


Reference

 

대한민국 행정구역(SHP) GeoJSON 으로 변환하는 법

GeoJSON는 BI / Analytics 툴에서 데이터 Visualization 용으로 사용하기 위한 규격입니다. 다양한 곳에서 SHP (Shape file)을 제공하지만 GeoJSON으로 변환 및 BI 툴에 적용하는 과정에서  몇가지 문제가 있습니

park9eon.com

 

728x90