정부, 공공기관이 생산한 대부분의 공간정보는 생산주체 및 제작시기에 따라 적용된 좌표계에 차이가 존재한다. 개별적으로 운영되는 정보시스템에서 이 들 공간정보의 사용은 큰 문제가 없지만, 서로 다른 공간정보와의 매쉬업, 융합 등을 위해 필수적으로 서비스 좌표계를 통일하는 것이 어플리케이션의 관리 편의성, 서비스 응답 성능 개선, 공개SW의 효율적 사용을 위해 요구된다.
GIS 기반 서버로써 지오서버를 사용한다면 서비스 타일을 생성하는 경우 EPSG:4326, EPSG:3857(EPSG:900913)만을 지원한다. 

따라서 본 글을 통해 PostGIS에 등록된 공간테이블을 EPSG:4326좌표계를 가지도록 변환하는 과정을 설명한다.

1. Table Copy

사용하려는 데이터의 좌표계는 EPSG:5181이고 위내용과 같이 지오서버를 사용하여 서비스 타일을 생성하기 위해 좌표계를 변경해야 한다.

이를 위해 기존 데이터를 복사하는 작업을 진행한다.

Query

 CREATE TABLE NEW_TABLE AS SELECT * FROM Z_NGII_UNSPT;


2. 좌표계 정보 업데이트

해당 테이블의 공간정보컬럼의 타입정보를 확인해 보면


geometry(MultiPoint,5179) 으로 되어 있다. 따라서 해당 좌표계정보 변경 쿼리를 아래와 같이 실행한다.

Query

 ALTER TABLE NEW_TABLE

ALTER COLUMN geom TYPE geometry(MultiPoint,4326) USING ST_Transform(ST_SetSRID(geom,5179), 4326);

위의 쿼리 내용은 https://postgis.net/2013/08/30/tip_ST_Set_or_Transform/ 에서 확인 할 수 있다.


최종적으로 해당 좌표가 변경된 것을 알 수 있다.


EPSG:5179                                                                                                                                                        EPSG:4326

Query

SELECT ST_ASText(GEOM) from NEW_TABLE;




서비스바로가기

개요

PostGIS의 좌표 변환 SQL을 이용하여 좌표변환(Coordinates Transformation)을 진행하고 웹에 게시함 

geometry ST_Transform(geometry g1, integer srid);
geometry ST_Transform(geometry geom, text to_proj);
geometry ST_Transform(geometry geom, text from_proj, text to_proj);
geometry ST_Transform(geometry geom, text from_proj, integer to_srid);




목적

PostGIS 가 지원하는 좌표변환(ST_Transform) 함수가 국내에서 이용되는 좌표계에서 정확한 전환을 제공하는지 확인함


환경구성

1. Server : Linux Container, 가상서버 위에 설치되는 DBMS
2. DBMS : Postgre + PostGIS
3. WAS(Web Application Server) : Apache Tomcat


개발환경 및 배포

1. 이클립스에서 일반 웹앱을 제작하는 방법을 준수하고, 
   배포서버를 이클립스에 등록된 서버 중 CloudFoundry를 지정하고 연결계정을 등록하여 해당 서버로 배포함

구현

1. Datum 변환을 위한 축적계수가 등록되지 않은 5174좌표계에 대한 정확한 정의를 Postgre에 신규 등록 (User Custom SRS)
2. ST_Transform 함수를 이용하여 주요 업무기능 제작

구현결과

1. EPSG Database 에 등록된 좌표계 및 국내 좌표계에서의 전환을 정확하게 수행함을 확인함
2. 저사양 서버환경에서도 단 건 좌표변환의 경우 충분한 응답속도를 보이는 것을 확인


이용 제약 사항

1. 웹기반 환경에서 대용량 좌표 셋의 좌표 변환은 서비스 제공 여부는 지양하는 것이 좋음 


2. 위 그림에서와 같이 타원체가 변하는 투영좌표계(Projection Coordinate System) 에서 투영좌표계로 변환하는 것은 7번의 전환과정을 요구함
3. 이 때 순간적으로 많은 연산이 요구됨으로써 비교적 과도한 컴퓨팅 파워를 요구함
4. 따라서, 대용량 데이터의 좌표변환을 실시간으로 처리하는 로직의 적용 여부는 신중을 기해야 함


결론

1. PostGIS의 기본 설정만으로도 훌륭한 좌표변환서비스가 가능함을 확인


서비스 바로가기



+ Recent posts