Cute Happy Ghost
본문 바로가기
QGIS·Geo

[openlayers][proj4] proj4에 좌표 정의 및 openlayers에 proj4좌표 정의 등록, proj.js에서 getCode오류해결 Cannot read properties of null (reading 'getCode')

by JENN_tech7 2023. 6. 1.
728x90
SMALL

한국에서 쓰는 좌표는 거의 다 비슷하다

근데 좌표를 등록해야하는 경우가 있다

이걸 몰라서 한참을 헤맸다....

 

소스에서 projection이 null일 때는 좌표가 정의되어있지않은 것이다

 

 

 

아니면 아래와 같이 proj코드에서 getCode에 대한 오류가 났을 때도 동일한 원인이다

 

 

 

 

 

데이터에서 들어오지 않는 줄 알고 한참 찾았는데 

QGIS에서 데이터를 올려보면 기가막히게 올라가있는거다

아래처럼 QGIS에서 좌표계와 공간범위를 잘 찾아온다면 데이터는 멀쩡한 것임

 

 

 

 

 

그럼 어떻게 좌표를 등록해주느냐

proj4를 통해 정의를 일단 먼저 해줘야한다

그러려면 proj4라이브러리를 데려와야한다

https://github.com/proj4js/proj4js/releases

 

Releases · proj4js/proj4js

JavaScript library to transform coordinates from one coordinate system to another, including datum transformations - proj4js/proj4js

github.com

위 링크를 통해 받아주고

임포트해서 데려온다

 

 

 

 

 

나는 32630좌표정보가 필요하니 정의를 해준다

그리고 openlayers에 proj4정의를 등록해준다

openlayers버전에 따라 다를 수 있는 점 참고

나는 6.15.1버전을 쓰고 있음

이 두가지가 선행되어야 projection이 등록이 된다

// proj4에 32630좌표 등록
proj4.defs("EPSG:32630", "+proj=utm +zone=30 +ellps=WGS84 +datum=WGS84 +units=m +no_defs");

// openlayers에 proj4정의 등록 
ol.proj.proj4.register(proj4);

 

 

 

 

다시 보면 null이었던 projection에 32630이 추가되어있음을 확인할 수 있다

 

 

 

 

 

 

 

 

 

 

본인이 원하는 좌표계의 정의 문자열정보를 알고싶으면 아래 글 참고

https://wogus789789.tistory.com/403

 

좌표계 proj4 문자열 정의, EPSG:32630좌표계 문자열 등록, EPSG문자열 proj4정의

원하는 좌표계의 문자열 정의를 알고 싶다면 아래 사이트로 들어간다 https://epsg.io/ EPSG.io: Coordinate Systems Worldwide EPSG.io: Coordinate systems worldwide (EPSG/ESRI), preview location on a map, get transformation, WKT, OGC G

wogus789789.tistory.com

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
LIST

댓글