2011년 6월 7일 화요일

[GeoServer]Custom CRS Definitions

GeoServer에서 CRS를 새로 정의하거나 기 정의된 CRS를 재정의(Override)하는 방법입니다. 특히 데이텀간의 변환을 위해서는 CRS 내에 TOWGS84 parameters 추가가 필요하며, 이를 위해서 기존 CRS를 재정의해야 합니다.


▣ 1. 새로운 CRS의 등록
새로 등록할 WKT (well known text) 및 EPSG 코드를 준비합니다.
GeoServer의 data_dir 폴더  내의 user_projections 폴더로 이동합니다.
만약 epsg.properties 파일이 없다면 노트패드 등의 텍스트 편집기를 열어 이 이름으로 저장합니다.
만약 Default로 설치했다면 다음과 같이 Google Mercator(900913)가 마지막으로 정의되어 있습니다.
900913=PROJCS["WGS84 / Google Mercator", GEOGCS["WGS 84", DATUM["World Geodetic System 1984", SPHEROID["WGS 84", 6378137.0, 298.257223563, AUTHORITY["EPSG","7030"]], AUTHORITY["EPSG","6326"]], PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]], UNIT["degree", 0.017453292519943295], AUTHORITY["EPSG","4326"]], PROJECTION["Mercator (1SP)", AUTHORITY["EPSG","9804"]], PARAMETER["semi_major", 6378137.0], PARAMETER["semi_minor", 6378137.0], PARAMETER["latitude_of_origin", 0.0], PARAMETER["central_meridian", 0.0], PARAMETER["scale_factor", 1.0], PARAMETER["false_easting", 0.0], PARAMETER["false_northing", 0.0], UNIT["m", 1.0], AUTHORITY["EPSG","900913"]]
그 다음에 추가할 WKT를 위와 같은 포맷으로 추가하면 됩니다.
저장 종료 후 GeoServer를 재시작하면 반영이 됩니다.


▣ 2. 기존 CRS의 수정 및 재정의

수정할 WKT (well known text) 및 EPSG 코드를 준비합니다.
GeoServer의 data_dir 폴더  내의 user_projections 폴더로 이동합니다.
만약 epsg_overrides.properties가 없다면 노트패드 등의 텍스트 편집기를 열어 이 이름으로 저장합니다.

2097=PROJCS["Korean 1985 / Korea Central Belt", GEOGCS["Korean 1985", DATUM["Korean Datum 1985", SPHEROID["Bessel 1841", 6377397.155, 299.1528128, AUTHORITY["EPSG","7004"]], TOWGS84[-115.8,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"], PARAMETER["central_meridian", 127.00289027777001], 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","2097"]]"
위 예는 기존 2097 EPSG 코드에  TOWGS84[-115.8,474.99,674.11,1.16,-2.31,-1.63,6.43] 파라미터를 추가한 예입니다.


역시 저장 종료 후 GeoServer를 재시작하면 반영이 됩니다.


만약 PostgreSQL(+ PostGIS)를 데이터베이스로 사용한다면 spatial_ref_sys 테이블에도 이의 정보가 수정/포함되어야 합니다.


▣ 참고
 - GeoServer 2.2.x User Manual : Custom CRS Definitions