GeoServer에 PostGIS 연결하기

Geoserver에 DB를 연결시키면 대용량의 공간데이터를 저장 관리하는데 많은 이점이 있다.
공간데이터를 관리하는 대표적인 데이터베이스로는 Oracle, PostGresql 등이 있고, 최근에 MySQL 확장버전과 H2 확장버전이 있다. Oracle은 오래된 상용DB로서 ArcGrid 등의 상용솔루션과 궁합을 맞춰왔다. 이 외에 공개소프트웨어의 무료버전으로 사용할 수 있는 도구로는 PostGresql 기반에 PostGIS가 있다.

PostGresql에 대한 소개는 한눈에 살펴보는 PostgreSQL을 살펴보시고

PostGIS는 확장기능으로 PostGresql 설치 위치에 추가로 설치된다.

설치방법은 두가지이다.
1) PostGresql 설치 후 이어지는 ‘Stack Builder’ 마법사로 PostGIS 확장판을 추가 설치
2) PostGresql 설치 후 PostGIS install 페이지에서 별도로 다운받아 설치

설치된 후 PostGresql의 GUI 관리자인 ‘pgAdmin III’를 실행시킨다.
* 위치는 윈도우 메뉴의 PostGresql 아래에 있다.
postgresql_win_menu

pgAdmin 관리자에서는 DB 객체들을 관리한다. (생성/삭제/수정)

postgresql_gui_client

쿼리편집기는 메뉴 Tool 아래에 ‘Query tool’이란 항목을 클릭하면 된다.

postgresql_sql_client

테스트를 위해 올레1코스에 대한 Point를 입력해 보겠다.
* PostGIS 쿼리 작성은 loading_geometry_data를 참조


create table roads(
road_name varchar,
road_desc varchar
);
select AddGeometryColumn('roads','road_geom',4326,'POINT',2);

-- truncate table roads;
-- select * from roads;

insert into roads values(
'1코스 시작점-시흥초등학교',
'0km (시작점 스탬프박스)',
ST_GeomFromText('POINT(126.8958600238 33.4772999771)', 4326)
);
insert into roads values(
'1코스 종점-광치기해변',
'15.1km (종점스탬프박스) [구급함]',
ST_GeomFromText('POINT(126.924261013 33.4520049859)', 4326)
);
insert into roads values(
'1코스 중간지점-목화휴게소',
'8.1km (중간스탬프박스)',
ST_GeomFromText('POINT(126.9017019589 33.4818899911)', 4326)
);
insert into roads values(
'4.3묘지석',
'14.3km',
ST_GeomFromText('POINT(126.9287689682 33.4578439873)', 4326)
);
insert into roads values(
'공중화장실',
'13.4km',
ST_GeomFromText('POINT(126.9355240278 33.4616310149)', 4326)
);
insert into roads values(
'간세',
'2.2km (남은거리 13.5km)',
ST_GeomFromText('POINT(126.8872760329 33.4778120276)', 4326)
);
insert into roads values(
'간세',
'4.4km (남은거리 10.5km)',
ST_GeomFromText('POINT(126.8816409633 33.4880019911)', 4326)
);

이것을 Geoserver의 Data Importer로 가져와 Layer로 발행을 하면 다음과 같이 표시된다.
* Data Importer는 Geoserver의 확장기능으로 추가설치를 해야한다.

olle-road-map-cource01_postgres
* 빨간점을 클릭하면 아래에 featureInfo가 표시된다.

Layer 발행을 위한 작업순서는 다음과 같다.

1) 작업공간 ‘postgis’ 생성
2) 저장소 ‘postgis_sample’ 생성
3) 레이어 메뉴에서 새로운 리소스 생성을 하여 ‘postgis_sample’ 저장소를 설정하면
4) geometry 데이터가 있는 테이블을 보여준다. 그중 해당 테이블을 선택해 ‘발행’하면 된다.

레이어는 Geometry 타입에 따라 분리되어 생성하도록 되어 있다.
* Point는 Point대로, LineString은 LineString 대로 따로따로..

  1. 좋은글 감사합니다. PostGis에 흥미를 느낀 초보인데 많은 참고 되었습니다. 앞으로 좋은글 많이 부탁드립니다.

    좋아요

    응답

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중

%d 블로거가 이것을 좋아합니다: