자세한 내용은 아래를 참고하세요.
SQL views - http://docs.geoserver.org/latest/en/user/data/sqlview.html
아래 예제는 이를 조금 확장하여 X, Y 필드를 포함한 테이블을 포인트 레이어로 퍼블리싱 하는 방법을 설명합니다.
◎ 가정
- 다음과 같이 PostgreSQL(+PostGIS)의 테이블 중 lon(경도, x좌표값으로 가정), lat(위도, y좌표값으로 가정) 필드를 포함하는 테이블이 있습니다.
- 2011년 7월 4일자 기상청 제공 지진발생현황테이블 엑셀파일
○ PostgreSQL 샘플 테이블 스키마
CREATE TABLE public.earthquake ( rgn character varying(10), t_year integer, et date, em numeric, lon numeric, lat numeric, loc character varying(200), fin_udt character varying(8) ) WITH ( OIDS=FALSE ); ALTER TABLE public.earthquake OWNER TO postgres;
◎ GeoServer에서 퍼블리싱하기
우선 PostGIS DataStore를 추가합니다. GeoServer에서 DataStore를 추가하는 방법은 아래 포스팅을 참고하세요
- GeoServer 2.0.0 설치 및 활용 가이드
Layers - Add a new resource를 선택 후 다음과 같이 X, Y 필드값이 포함된 테이블을 확인 후 스키마정보를 미리 확인합니다. 대상 테이블은 경위도 좌표값이 포함된 earthquake 테이블입니다.
위 그림에서 earthquake 테이블의 publish 버튼을 누르지 않고 [Configure new SQL view...]라는 링크를 클릭합니다.
다음 그림과 같이 View Name과 SQL Statemeht를 입력합니다. 필드 이름은 테이블 스키마에 맞게 수정하시면 됩니다. 필요하다면 SQL Statement에서 GeoServer 도움말에 제시된 Where절 및 파라미터화된 SQL을 사용할 수 있습니다.
- View Name = earthquake_point
- SQL Statemeht
SELECT ST_SetSRID(ST_Point(lon, lat),4326) as the_geom, rgn, t_year, et, em, loc FROM earthquake
여기에서 ST_Point는 X, Y 값을 이용해서 Point를 만드는 PostGIS 공간함수, ST_SetSRID는 Geometry에 좌표체계를 등록하는 공간함수입니다.
Attributes 탭에서 Guess geometry type and srid 체크박스를 체크한 후 Refresh 버튼을 누르면 위 그림과 같이 속성필드값이 추가됩니다. 여기에서 위 그림처럼 the_geom의 Type을 Point, SRID=4326(원본 테이블의 X, Y값을 WGS84 경위도로 가정)을 입력합니다.
Save 버튼을 누르면 아래와 같이 Edit Layer 화면이 나타납니다. 이후 과정은 일반적인 레이어 추가과정이므로 생략합니다.
이후 아래 그림과 같이 Edit Layer 탭의 [Edit sql view] 기능을 이용해서 언제든지 SQL을 편집할 수 있습니다.
다음은 Layer Preview 기능을 사용하여 등록된 레이어를 미리보기한 이미지입니다.
이상으로 간단하게 X, Y 필드값을 가진 속성테이블을 레이어로 퍼블리싱하는 과정을 살펴보았습니다.
성능이 허락하는 한 이 외에도 DBMS가 가진 Spatial Function을 이용하여 속성테이블을 레이어로 퍼블리싱하는 방법들이 있습니다. X, Y 필드값과 버퍼거리 필드값 등을 이용해서 폴리곤(ST_Buffer 활용 등)으로 퍼블리싱하는 등이 그 예라 할 수 있겠습니다.
댓글 없음:
댓글 쓰기