본문 바로가기
Programming/GeoServer

[GeoServer] 좌표계 이격 문제 해결

by 가가가가가가 2023. 11. 9.
반응형

● 문제

  - 공간데이터 좌표계 변환 과정 중 좌표계를 올바르게 설정해 줬음에도 불구하고 300m 정도의 이격 발생

 

● 원인

    - 옛날 좌표계로 된 자료를 요즘 좌표계로 변환하는 과정에서 발생

    - 옛날 좌표계 :  7개 파라미터 사용

        · 이동(3) + 회전(3) + 축척(1)

        · Bursa-Wolf 모델

    -  요즘 좌표계 : 10개의 파라미터 사용

        · 이동(3) + 회전(3) + 축척(1) + 회전기준점(3)

        · Molodensky-Badekas 모델

 

● 해결

    ❗3개의 추가인자를 대체할 만한 것이 필요 

    ❗towgs84(타원체 변환 계수) 파라미터가 포함된 좌표계로 재정의 해줘야

   

    1.  geoserver 디렉터리 내 user_projections > epsg_overrides.properties를 아래 첨부파일을 다운 및 교체

        - 혹시 모르니 이전꺼는 백업해 두기
        - epsg_overrides.properties 파일이 없을 경우 새로 생성해 줘도 되고,
          geoserver 설치 시 자동 생성되는 epsg.properties에 바로 수정해도 됨

          (좌표계 재정의할 때는 보편적으로 override 파일에 수정해 주는 듯함)  

epsg_overrides.properties
0.02MB

 

    2.  서버 재시작 후 좌표계 재설정

        - 바뀐 부분이 제대로 적용됐는지 확인 후 레이어 정보 저장

 

 

 

    3. 이격이 없어졌는지 확인

 

    4. (postgreSQL을 사용하는 경우) spatial_reg_sys 테이블의 srtext, proj4text 정보 수정

        - ex ) EPSG:5174

srtext PROJCS["Korean 1985 / Modified Central Belt", GEOGCS["Korean 1985", DATUM["Korean Datum 1985", SPHEROID["Bessel 1841", 6377397.155, 299.1528128, AUTHORITY["EPSG","7004"]], TOWGS84[-115.80,474.99,674.11,1.16,-2.31,-1.63,6.43], AUTHORITY["EPSG","6162"]], PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]], UNIT["degree", 0.017453292519943295], AXIS["Geodetic longitude", EAST], AXIS["Geodetic latitude", NORTH], AUTHORITY["EPSG","4162"]], PROJECTION["Transverse_Mercator", AUTHORITY["EPSG","9807"]], PARAMETER["central_meridian", 127.00289027777775], PARAMETER["latitude_of_origin", 38.0], PARAMETER["scale_factor", 1.0], PARAMETER["false_easting", 200000.0], PARAMETER["false_northing", 500000.0], UNIT["m", 1.0], AXIS["Easting", EAST], AXIS["Northing", NORTH], AUTHORITY["EPSG","5174"]]
proj4text +proj=tmerc +lat_0=38 +lon_0=127.0028902777778 +k=1 +x_0=200000 +y_0=500000 +ellps=bessel +units=m +no_defs +towgs84=-115.80,474.99,674.11,1.16,-2.31,-1.63,6.43

   

 

 ※ 그래도 안될 경우

     1. Geoserver 재시작 및 오류 확인

     2. Geoserver 디렉터리 경로 확인

        -  epsg_overrides.properties의 경로가 데이터 디렉터리 하단의 user_projections 폴더 내에 있는지 확인

          (geoserver의 버전마다 디렉토리 구조가 다를 수 있음)

 

     3.  아래 링크를 참고하여 epsg_overrides.properties에서 DATUM 값 수정

        - https://docs.geoserver.org/stable/en/user/configuration/crshandling/customcrs.html

    

 


참고

 

 

반응형

댓글