도로명 주소 공공 데이터를 사용할 일이 있어 다운을 받았다.
하지만 좌표체계가 WGS84(EPSG-5179)로 표시되어 google 지도와 같은 지도 서비스에서 해당 위치를 검색해볼 수가 없었다.
따라서 WGS84 좌표를 GRS80(EPSG-4326, UTM-K, 경위도 좌표)로 변환하는 과정이 필요했다.
변환방법은 도로명주소 개발자센터 Tech & Tips에 잘 설명되어 있다.
WGS84와 GRS80의 차이
ex)
WGS84(EPSG-5179) 좌표 : [ 1018158.6666838044, 1980226.7772867724 ]
GRS80 좌표(EPSG-4326, UTM-K, 경위도 좌표) : [ 127.7063258909378, 37.8216025075155 ]
자세한 정의는 아래 블로그를 참고하자.
https://m.blog.naver.com/whentlr/220205257624
npm 환경설정
1. npm을 통해 proj4js 설치
$ npm install proj4
2. WGS84 <--> GRS80 코드
var proj4 = require("proj4")
const grs80 = "+proj=tmerc +lat_0=38 +lon_0=127.5 +k=0.9996 +x_0=1000000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs";
const wgs84 = "+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees"
var grs80P = proj4(wgs84, grs80, [127.7063258909378, 37.8216025075155]);
var wgs84P = proj4(grs80, wgs84, [1018158.6666838044, 1980226.7772867724]);
console.log(wgs84P)
console.log(grs80P)
아래 공식 github를 참고하면 복잡한 인자 정의 없이도 기본으로 제공하는 좌표 체계의 이름을 통해서 바로 변환이 가능하다. WGS84, GRS80 이외의 인자가 궁금하면 잘 정리된 블로그를 참고하자.
proj4s 공식 github : https://github.com/proj4js/proj4js
하지만 도로명주소 개발자 센터의 전자지도를 다운받으면 아래와 같은 dbf, shp, shx 타입의 파일이 있다.
python 코딩을 통해서 필요한 데이터를 json 타입으로 변환해도 되지만, QGIS라는 프로그램을 이용하면 좀 더 간단하게 json 파일 변환이 가능하다.
QGIS geojson 변환방법은 새로운 글로 정리해야겠다.
'FrontEnd > React.js' 카테고리의 다른 글
[React.js] Leaflet으로 지도 그리기 (0) | 2021.01.10 |
---|---|
[React]Chart 그리기(Recharts) (0) | 2020.11.26 |
[React]달력을 이용해 날짜 범위 정보얻기2 (react-date-range) (0) | 2020.11.25 |
[React]달력을 이용해 날짜 범위 정보얻기1 (react-date-range) (0) | 2020.11.24 |
[React] React 프로젝트 GitHub Pages로 배포하기 (2) | 2020.11.19 |
댓글