2011년 6월 21일 화요일

[FOSS4G]Altibase Spatial JdbcDataStore for GeoTools, GeoServer

최신 정보는 이 블로그의 다음 포스트([GeoTools Data Store] 국내 공간 DBMS 및 파일 포맷 지원)를 참조하세요.

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)에서 사용하는 좌표체계 테이블입니다.
첨부한 파일을 다운로드 후 Command 창에서 다음을 실행합니다.

다운로드 : spatial_ref_sy.zip

C:\>isql -u sys -p manager -f spatial_ref_sys.sql

◎ GeoTools 샘플코드
다음 코드는 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로 미리보기 한 이미지입니다.

2011년 6월 20일 월요일

Altibase Spatial SQL Quick Reference

ALTIBASE Technical Center(http://atc.altibase.com)의 자료실에 등록된 [Spatial SQL User’s Manual Release 5.5.1] 문서에서 발췌했습니다.

============================================
◎ Geometry Reference Table
============================================
1. How to Install
You can add $ALTIBASE_HOME/thirdparty/ArcGIS/geometry_colums.sql to ALTIBASE package by running iSQL.

$ isql -u sys -p manager -f
$ALTIBASE_HOME/thirdparty/ArcGIS/geometry_columns.sql

2. How to Use
SPATIAL_REF_SYS and GEOMETRY_COLUMNS are PUBLIC SYNONYM tables. You can only look up them.

ADDGEOMETRYCOLUMNS and DROPGEOMETRYCOLUMNS are PUBLIC SYNONYM procedures. You can insert and delete information in GEOMETRY_COLUMNS table by executing them.

You can add extra information to geometry reference table besides information of geometry reference system by modifying $ALTIBASE_HOME/thirdparty/ArcGIS/geometry_colums.sql.

3. GEOMETRY_COLUMNS
You can use this to define and mange SRID (Spatial Reference ID) in GEOMETRY column.

Column name               Type                  Description
F_TABLE_SCHEMA         VARCHAR(256)     User Name
F_TABLE_NAME             VARCHAR(256)    Name of Feature
F_GEOMETRY_COLUMN  VARCHAR(256)    COLUMN Name
COORD_DIMENSION      INTEGER           Dimension of Geometry Object
SRID                           INTEGER           Spatial Reference Indentifier

4. SPATIAL_REF_SYS
You can manage information of SRID (Spatial Reference System) and SRS (Spatial Reference System) with this.

Column name       Type                   Description
SRID                   INTEGER             Spatial reference identifier
AUTH_NAME         VARCHAR(80)      Certified name
AUTH_SRID          INTEGER            Certified spatial reference identifier
SRTEXT               VARCHAR (2048)  Description of WKT geometries
PROJ4TEXT          VARCHAR (2048)  PROJ4 infromation

5. Stored Procedure
▷ ADDGEOMETRYCOLUMNS
ADDGEOMETRYCOLUMNS(f_schema VARCHAR(40), f_table_name VARCHAR(40), f_column_name VARCHAR(40), srid INTEGER);

ISQL> exec AddGeometryColumns( 'SYS', 'T2', 'I1', 100 );
Execute success.
ISQL> exec AddGeometryColumns( 'SYS', 'T2', 'I1', -1 );
[ERR-F1F14 : This column is already added.

▷ DROPGEOMETRYCOLUMNS
DROPGEOMETRYCOLUMNS( varchar(40), varchar(40), varchar(40) );

iSQL> exec DropGeometryColumns( 'SYS', 'T2', 'I1' );
Execute success.
ISQL> exec DropGeometryColumns( 'SYS', 'T1', 'I1' );
[ERR-F1F13 : This column is not geometry column.

============================================
◎ Spatial SQL
============================================
1. GEOMETRY Data Types
▷ POINT
▷ MULTIPOINT
▷ LINESTRING
▷ MULTILINESTRING
▷ POLYGON
▷ MULTIPOLYGON
▷ GEOMETRYCOLLECTION

ex)
CREATE TABLE road ( id INTEGER, obj GEOMETRY ) ;
INSERT INTO road VALUES (1, GEOMETRY'LINESTRING( 0 18, 10 21, 16 23, 28 26, 44 31 )') ;
INSERT INTO road VALUES (2, GEOMFROMTEXT('LINESTRING( 30 31, 56 34, 70 24)')) ;
INSERT INTO road VALUES (3, LINEFROMTEXT('LINESTRING( 70 38, 32 12, 36 36)')) ;

2. GEOMETRY Data Type Format
In Altibase, GEOMETRY data type can be expressed in one of the three ways described below :
▷ WKT (Well-Known Text) 
▷ WKB (Well-Known Binary)
▷ A binary form that is used to store data in Altibase. 

3. DDL For Geometry
▷ CREATE TABLE
CREATE TABLE table_name (column_name GEOMETRY [(precision)] );

ex)
CREATE TABLE t1 ( id INTEGER, obj GEOMETRY ) ;
CREATE TABLE t2 ( id INTEGER, obj GEOMETRY (128) ) ;

▷ CREATE INDEX
CREATE INDEX index_name ON table_name ( column_name ) [INDEXTYPE IS RTREE] ;

ex)
CREATE TABLE t1 ( id INTEGER, obj GEOMETRY ) ;
CREATE INDEX idx_t1 ON t1 ( obj ) ;
CREATE INDEX idx_t2 ON t2 ( obj ) INDEXTYPE IS RTREE ;

4. Spatial Functions for Altibase
Depending on their features, spatial functions that are available in Altibase can be classified as follows:
• Basic Functions: Used to find characteristics and basic attributes.
• Spatial Analysis Functions: Used to perform various analyses using GEOMETRY.
• Spatial Object Creation Functions: Used to create a spatial object in WKT or WKB format rather than the interior storage format of Altibase.


Functions support ST_*  : ASTEXT or ST_ASTEXT

4.1 Basic Spatial Functions
▷ DIMENSION( GEOMETRY )
▷ GEOMETRYTYPE( GEOMETRY )
▷ ENVELOPE( GEOMETRY )
▷ ASTEXT( GEOMETRY[,precision] )
▷ ASBINARY( GEOMETRY )
▷ ISEMPTY( GEOMETRY )
▷ ISSIMPLE( GEOMETRY )
▷ ISVALID( GEOMETRY )
▷ BOUNDARY( GEOMETRY )
▷ X( GEOMETRY ) or COORDX( GEOMETRY )
▷ Y( GEOMETRY ) or COORDY( GEOMETRY )
▷ MINX( GEOMETRY )
▷ MINY( GEOMETRY )
▷ MAXX( GEOMETRY )
▷ MAXY( GEOMETRY )
▷ GEOMETRYLENGTH( GEOMETRY )
▷ STARTPOINT( GEOMETRY )
▷ ENDPOINT( GEOMETRY )
▷ ISCLOSED( GEOMETRY )
▷ ISRING( GEOMETRY )
▷ NUMPOINTS( GEOMETRY )
▷ POINTN( GEOMETRY, N )
▷ AREA( GEOMETRY )
▷ CENTROID( GEOMETRY )
▷ POINTONSURFACE( GEOMETRY )
▷ EXTERIORRING( GEOMETRY )
▷ NUMINTERIORRING( GEOMETRY )
▷ INTERIORRINGN( GEOMETRY, N )
▷ NUMGEOMETRIES( GEOMETRY )
▷ GEOMETRYN( GEOMETRY, N )

ex) SELECT MIN(MINX(F2)), MIN(MINY(F2)), MAX(MAXX(F2)), MAX(MAXY(F2) FROM TB1;


4.2. Spatial Analysis Functions
▷ DISTANCE( GEOMETRY1, GEOMETRY2 )
▷ BUFFER( GEOMETRY, NUMBER )
▷ CONVEXHULL( GEOMETRY )
▷ INTERSECTION( GEOMETRY1, GEOMETRY2 )
▷ UNION( GEOMETRY1, GEOMETRY2 )
▷ DIFFERENCE( GEOMETRY1, GEOMETRY2 )
▷ SYMDIFFERENCE( GEOMETRY1, GEOMETRY2 )

7. Spatial Object Creation Functions
▷ GEOMFROMTEXT( WKT )
▷ POINTFROMTEXT( WKT )
▷ LINEFROMTEXT( WKT )
▷ POLYFROMTEXT( WKT )
▷ MPOINTFROMTEXT( WKT )
▷ MLINEFROMTEXT( WKT )
▷ MPOLYFROMTEXT( WKT )
▷ GEOMCOLLFROMTEXT( WKT )

▷ GEOMFROMWKB( WKB )
▷ POINTFROMWKB( WKB )
▷ LINEFROMWKB( WKB )
▷ POLYFROMWKB( WKB )
▷ MPOINTFROMWKB( WKB )
▷ MLINEFROMWKB( WKB )
▷ MPOLYFROMWKB( WKB )
▷ GEOMCOLLFROMWKB( WKB )

4.3. Spatial Relational Operators
▷ EQUALS( GEOMETRY1, GEOMETRY2 )
▷ DISJOINT( GEOMETRY1, GEOMETRY2 )
▷ INTERSECTS( GEOMETRY1, GEOMETRY2 )
▷ TOUCHES( GEOMETRY1, GEOMETRY2 )
▷ CROSSES( GEOMETRY1, GEOMETRY2 )
▷ WITHIN( GEOMETRY1, GEOMETRY2 )
▷ CONTAINS( GEOMETRY1, GEOMETRY2 )
▷ OVERLAPS( GEOMETRY1, GEOMETRY2 )
▷ RELATE( GEOMETRY1, GEOMETRY2 , patterns )

▷ ISMBRINTERSECTS( GEOMETRY1, GEOMETRY2 )
▷ ISMBRWITHIN( GEOMETRY1, GEOMETRY2 )
▷ ISMBRCONTAINS( GEOMETRY1, GEOMETRY2 )

* PostGIS Reference도 한번 보세요~
http://postgis.refractions.net/documentation/manual-1.5/reference.html

2011년 6월 18일 토요일

OGC Compliant & Implementing Products

2011년 6월 15일 기준 국내 OGC Compliant Products 입니다.
Compliant Products 목록에 등록된 회사(또는 제품)의 알파벳 순서입니다.


OGC Compliant Products는 다음 URL에서 확인하시면 됩니다.
http://www.opengeospatial.org/resource/products/compliant


1. 국내 - Compliant Products
● OGC Web Service(WMS, WFS, WCS...) Products
◎ CCI Co. Ltd.(씨씨아이)
▷ URL: http://www.ccigis.co.kr/
▷ Name: GeoNURIS GeoWeb Server V1.0


◎ CmWorld(씨엠월드)
▷ URL: http://www.cmworld.co.kr
 Name: Spatial Broker 1.2


◎ G-Inno Systems(지노시스템)
▷ URL: http://www.g-inno.com/ginnohome/gis/geogate.aspx
 Name: GeoGate 3.0


◎ GeoMEX soft co., Ltd(지오멕스소프트)
▷ URL: http://www.geomex.co.kr/
 Name: GEOMEX-Web 3.0


◎ Geotwo Co., Ltd(지오투정보기술)
▷ URL: http://www.geotwo.com/
 Name: O2Map Web 1.0


◎ KSIC Co., LTD(한국공간정보통신)
▷ URL: http://www.ksic.net
 Name: IntraMap/Web 6.0


◎ Samsung SDS(삼성SDS)
▷ URL: http://www.all4land.com/intro/anyguide.php 최신자료는 올포랜드로만 검색이 되네요...
 Name: anyGuide Map Server Suite 1.0



● Spatial DBMS - SFS(Simple Features - SQL)
◎ Altibase Corporation(알티베이스)
▷ URL: http://www.altibase.com
 Name: Altibase 5


◎ TmaxData Co., Ltd(티맥스소프트)
▷ URL: http://www.tmax.co.kr/tmaxsoft/main.screen?mmCd=0010&smCd=0010HH10
 Name: Tibero RDBMS 4


● SensorWeb

◎ Inha University(인하대)
 Name: InhaSensorWeb 1.0

2. 국내 -  Implementing Products
● OGC Web Service(WMS, WFS, WCS...) Products
◎ CCI Co. Ltd.(씨씨아이)
▷ URL: http://www.ccigis.co.kr/
 Name: GeoNURIS Desktop Pro V1.0, GeoNURIS GeoSpatial Sever V1.0, GeoNURIS GeoWeb Server V1.0


◎ CmWorld(씨엠월드)
▷ URL: http://www.cmworld.co.kr
 Name: Spatial Broker 1.0


◎ Geotwo Co., Ltd(지오투정보기술)
▷ URL: http://www.geotwo.com/ Name: O2Map Web 1.0


◎ Kainess Co. Ltd.(카이네스)
▷ URL: http://www.kainess.com/ Name: Mapplus 4, Mapplus 3


◎ KSIC Co., LTD.(한국공간정보통신)
▷ URL: http://www.ksic.net
 Name: IntraMap/Web v5.6, IntraMap/Web 6.0


◎ Samsung SDS(삼성SDS)
 Name: anyGuide Map Server Suite 1.0


3. 외산 상용 - Compliant Products
외산 제품은 분야별로 구분하지 않았습니다.


◎ Autodesk, Inc.
▷ URL: http://usa.autodesk.com/
 Name: Autodesk MapGuide Enterprise 2011, Autodesk MapGuide® Enterprise 2011, Autodesk® Infrastructure Map Server 2012, Autodesk® Topobase® Web 2011




◎ ERDAS Inc.
▷ URL: http://www.erdas.com/products/ERDASAPOLLO/ERDASAPOLLO/Details.aspx
 Name: ERDAS APOLLO Essentials - SDI 2011, ERDAS APOLLO Server 2009 (9.3), RedSpider ImageArchive 3.0, RedSpider Web 3.0, 3.3, 3.4




◎ ESRI
▷ URL: http://www.esri.com/software/arcgis/arcgisserver/index.html
 Name: ArcGIS Server 9.3 ~ 10.0, ArcGIS Server Enterprise (ArcSDE) for DB2, Informix, Oracle, PostgreSQL, SQL Server ...
.........
.........

◎ GE Smallworld
▷ URL: http://www.gedigitalenergy.com/geospatial/catalog/smallworld_Integration.htm
 Name: Smallworld GeoSpatial Server 4.1.1, 4.1.2, 4.2


◎ Intergraph
▷ URL: http://www.intergraph.com/gis/geomedia/ Name: GeoMedia Data Server for Oracle Object Model Server (Read/Write) 05.01, GeoMedia WebMap 6.1, GeoMedia WebMap Professional 6..1


◎ Oracle
▷ URL: http://www.oracle.com/technetwork/database/options/spatial/index.html
 Name: Oracle Spatial, Oracle Locator, Oracle Application Server MapViewer 10g ...



2011년 6월 7일 화요일

[FOSS4G] GeoServer WPS Plugin의 설치 및 맛보기


GeoServer의 Extension 중 하나인 WPS(Web Processing Service) Plugin을 설치하는 방법과 간단한 데모입니다.

▣ GeoServer의 설치
이 블로그의 설치문서( GeoServer 2.0.0 설치 및 활용 가이드 )를 참조하여
최신버전(http://geoserver.org/display/GEOS/Stable)의  GeoServer 2.1.0(Stable,  2010년 6월 7일 현재) 버전을 다운로드 후 설치합니다.


▣ WPS Plugin 다운로드 및 설치
http://geoserver.org/display/GEOS/Stable로 이동하여 다음 그림과 같이 WPS Plugin을 다운로드합니다.
geoserver-2.1.0-wps-plugin.zip 파일을 다운받아서 압축 해제하면 다음과 같은 파일들이 있으며 버전에 따라 다를 수 있습니다.

gt-geojson-2.7.1.jar
gt-process-2.7.1.jar
gt-xsd-wps-2.7.1.jar
jt-attributeop-1.1.1.jar
jt-contour-1.1.1.jar
jt-rangelookup-1.1.1.jar
jt-utils-1.1.1.jar
jt-vectorbinarize-1.1.1.jar
jt-vectorize-1.1.1.jar
jt-zonalstats-1.1.1.jar
net.opengis.wps-2.7.1.jar
web-wps-2.1.0.jar
wps-core-2.1.0.jar

GeoServer설치 폴더의 webapps\geoserver\WEB-INF\lib 폴더에 위 파일을 복사(덮어쓰기)합니다.

GeoServer를 재시작하면 다음과 같이 WPS 서비스가 추가됩니다.


▣ WPS Demo
GeoServer 왼족 메뉴 중 좌하단의 Demos를 눌러 Demos 페이지로 이동합니다.

아래 내용들은 Demo 페이지를 보면서 한번 확인하세요.

▷ GeoTools에서 제공하는 Default Process
 GeoTools의 Unsupported module에서 제공하는 WPS 및 Process
 ⊙ JTS Namespace
  - Geometry Handling Process로 JTS Geometry Handling
  : area, boundary, buffer, centroid, contains, convexHull, crosses, densify, difference, dimension, disjoint, distance, endPoint, envelope, equalsExact, equalsExactTolerance, exteriorRing, filterString, geometryType, getGeoemtryN, getX, getY, interiorPoint, interiorRingN, intersection, intersects, isXlised, isEmpty, isRing, isSimple, isValid, isWithinDIstance, length, numGeometries, numnteriorRing, numPoints, overlaps, pointN, relate, relatePattern, simplify, startPoint, symDifference, touches, union, within
  
 ⊙ gt Namespace
 - GeoTools Sample Process들도 FeatureCollection과 GridCoverage를 활용
 : BufferFeatureCollection, DoubleAddition, FeatureBuffer, Inersect, RasterToVector, Union, VectorToRaster, buffer
▷ GeoServer에서 제공하는 Process
 ⊙ gs Namespace
 - GeoTools를 활용하여 GeoServer WPS Extension에서 제공하는 샘플 Process들로  FeatureCollection과 GridCoverage를 활용
 : Aggregate, Bounds, CollectGeometries, Contour, Count, CropCoverage, Import, Nearest, PointBuffers, PolygonExtraction, Query, RangeLookup, RaserAsPointCollection, RasterZonalStatistics, RectangularClip, Reproject, ReprojectGeometry, ScaleCoverage, Simplify, Snap, StoreCoverage, StyleCoverage, Unique, VectorZonalStatistics

▷ 향후 제공(?)될 Process 들
 ⊙ SEXTANTE GIS Libraries
 ⊙ GRASS Analysis Tools

▣ GeoServer WPS 지원 PPIO(ProcessParameterIO)
 - Input/Output에 대한 Encoding/Decoding을 지원
 - 사용자 정의 PPIO 추가 가능
 - FeatureCollection은 타 WFS 서비스의 결과(GML 등)를 사용할 수 있음
 - GridCoverage는 타 WCS 서비스의 결과(GridCoverage raw data)를 사용할 수 있음

▷ Primitives LiteralPPIO
BigInteger, BigDecimal, Double, double, Float, float, Integer, int, Long, long, Short, short, Byte, byte, Number, Boolean, boolean, String, CharSequence, Date, java.sql.Date, Time, Timestamp

▷ Geometries - GMLPPIO, WKTPPIO
GML3.Geometry, GML2.Geometry, WKTPPIO, GML3.GeometryAlternate, GML2.GeometryAlternate

▷ FeatureCollection - WFSPPIO, GeoJSONPPIO, BinaryPPIO(ShapeZIP)
WFS10, WFS11, GeoJSONPPIO, WFS10Alternate, WFS11Alternate, ShapeZip

▷ CRS
 - CoordinateReferenceSystemPPIO
▷ GridCoverage
GeoTiff, ArcGrid

▷ Envelopes
JTS Envelope, JTS ReferencedEnvelope, org.opengis.geometry.Envelope

▷ Filters
Filter10, Filter11, CQLFilter

▣ GeoServer WPS Demo - Centroid
Demos 페이지에서 WPS Request builder를 클릭 후 Choose process에서 JTS:centroid process를 선택합니다.


▷ JTS:centroid Process 예
inputGeometry(geom) = WKT: POLYGON((164158.90 262753.79, 164158.90 262881.74, 164326.22 262881.74, 164326.22 262753.79, 164158.90 262753.79))

⊙ DescribeProcess
DescribeProcess 버튼을 누르면 아래 그림과 같이 Processs에 대한 상세정보를 확인할 수 있습니다.

⊙ Input parameters 설정
위에서 제공된 Polygon WKT를 복사 후 process input geometry로 붙여넣기 합니다. PPIO Type을 application/wkt로 선택해야 합니다.
Process output은 Geometry이며 GMLPPIO, WKTPPIO 등을 선택할 수 있습니다.


⊙ WPS Request문 확인
Generate XML from process inputs/outputs 버튼을 누르면 다음과 같이 request XML을 확인할 수 있습니다.

<?xml version="1.0" encoding="UTF-8"?>
<wps:Execute version="1.0.0" service="WPS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.opengis.net/wps/1.0.0" xmlns:wfs="http://www.opengis.net/wfs" xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" xmlns:wcs="http://www.opengis.net/wcs/1.1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd">
  <ows:Identifier>JTS:centroid</ows:Identifier>
  <wps:DataInputs>
    <wps:Input>
      <ows:Identifier>geom</ows:Identifier>
      <wps:Data>
        <wps:ComplexData mimeType="application/wkt"><![CDATA[POLYGON((164158.90 262753.79, 164158.90 262881.74, 164326.22 262881.74, 164326.22 262753.79, 164158.90 262753.79))]]></wps:ComplexData>
      </wps:Data>
    </wps:Input>
  </wps:DataInputs>
  <wps:ResponseForm>
    <wps:RawDataOutput mimeType="text/xml; subtype=gml/3.1.1">
      <ows:Identifier>result</ows:Identifier>
    </wps:RawDataOutput>
  </wps:ResponseForm>
</wps:Execute>

⊙ Execute process
Execute process 버튼을 누르면 결과가 다음과 같이 GML 3.1.1 버전의 output이 출력됩니다.

<gml:Point>
<gml:pos>164242.55999999997 262817.765</gml:pos>
</gml:Point>

▣ GeoServer와 GeoTools의 WPS 지원에 대한 정보는 여기를 참고