Altibase Spatial(버전 5.5.1)용 GeoTools JdbcDataStore 입니다.
Altibase Spatial에 대한 개략적인 내용은 다음 링크를 참조하세요.
http://www.onspatial.com/2011/06/altibase-spatial-sql-quick-reference.html
◎ gt-jdbc-altibase-1.0.0.jar 설치
다운로드 : https://sourceforge.net/projects/gt-jdbc-korean/files/?source=navbar
첨부한 파일을 GeoTools libraries 폴더로 복사하면 됩니다. 추가로 Altibase 설치폴더의 lib 폴더 내에 있는 Altibase.jar 파일도 같이 복사합니다.
주요 기능
- GeoTools에서 PostGIS 사용하는 방법과 동일합니다.
- Create Layer
- Insert, Update, Delete 지원
◎ Altibase Spatial SPATIAL_REF_SYS 업데이트
Altibase Spatial을 처음 설치하면 SPATIAL_REF_SYS 테이블에는 샘플로 몇 개(우리나라 관련 좌표계)만 포함이 되어 있습니다. 또한 레이어 등록(ADDGEOMETRYCOLUMNS)할 때 이 테이블에 관련 SRID 코드가 없으면 등록이 안되므로 항상 확인이 필요합니다.
따라서 아래에 첨부한 spatial_ref_sys.sql을 사용하여 업데이트 합니다. 이 파일은 PostgreSQL(PostGIS)에서 사용하는 좌표체계 테이블입니다.
따라서 아래에 첨부한 spatial_ref_sys.sql을 사용하여 업데이트 합니다. 이 파일은 PostgreSQL(PostGIS)에서 사용하는 좌표체계 테이블입니다.
C:\>isql -u sys -p manager -f spatial_ref_sys.sql
다음 코드는 Altibase에 접속하여 ADMIN이라는 피쳐소스를 얻고 공간검색을 수행하는 코드입니다.
Map<String, Object> params = new HashMap<String, Object>(); params.put(JDBCDataStoreFactory.DBTYPE.key, "altibase"); params.put(JDBCDataStoreFactory.HOST.key, "localhost"); params.put(JDBCDataStoreFactory.DATABASE.key, "mydb"); params.put(JDBCDataStoreFactory.PORT.key, "20300"); params.put(JDBCDataStoreFactory.USER.key, "sys"); params.put(JDBCDataStoreFactory.PASSWD.key, "manager"); AltibaseNGDataStoreFactory factory = new AltibaseNGDataStoreFactory(); DataStore dataStore = factory.createDataStore(params); // or DataStore dataStore = DataStoreFinder.getDataStore(params); SimpleFeatureSource featureSource = dataStore.getFeatureSource("ADMIN"); // Spatial Filter WKTReader wktReader = new WKTReader(); Geometry geometry = wktReader.read("LINESTRING (70 38, 32 12, 36 36)"); FilterFactory2 fF = CommonFactoryFinder.getFilterFactory2(GeoTools.getDefaultHints()); Filter spatialFilter = fF.intersects(fF.property("THE_GEOM"), fF.literal(geometry)); SimpleFeatureIterator srcIter = null; try { srcIter = featureSource.getFeatures(filter).features(); while (srcIter.hasNext()) { SimpleFeature feature = srcIter.next(); Geometry geom = (Geometry) feature.getDefaultGeometry(); System.out.println(geom.toText()); for (int k = 0; k < feature.getAttributeCount(); k++) { AttributeDescriptor desc = feature.getFeatureType().getDescriptor(k); System.out.println(desc.getLocalName() + " = " + feature.getAttribute(k)); } } } finally { if (srcIter != null) srcIter.close(); }
아래 이미지는 Altibase에 연결 후 레이어를 Unique Value Style을 적용한 예입니다.
◎ GeoServer
GeoServer 설치폴더의 webapps\geoserver\WEB-INF\lib 폴더에 gt-jdbc-altibase-1.0.0.jar 파일과 Altibase.jar 파일을 복사합니다.
GeoServer를 실행합니다.
다음 그림과 같이 Stores -> Add New Store를 클릭합니다.
Altiabse를 클릭한 후 그림과 같이 연결정보를 입력합니다.
이후 과정은 PostGIS를 사용할 때와 동일합니다.
다음은 ADMIN 이라는 레이어 등록 후 OpenLayer로 미리보기 한 이미지입니다.
댓글 없음:
댓글 쓰기