[Geoserver-users] Perform equivalent of ST_Intersection and ST_Union via WFS or WPS

Hi,

I'm trying to perform by use of Geoserver the equivalent of the Postgis ST_intersection and ST_Union functions. The server I'm working with is the os indipendent binary with jetty.

In the first case, I need to compute the intersection between a polygon (a rectangle) and a postgis table published as a WFS vector layer via Geoserver. The simple intersects, which I performed succesfully, is not sufficient since I need to minimize the information transimitted over the network, because the application will run on mobile clients.
First I tried with a simple WFS request, since I found on the GetCapabilities response for the WFS service that the "intersection" function was supported, as intersects is. So I tried this simple XML, which works with intersects:

<wfs:GetFeature service="WFS" version="1.1.0"
   xmlns:topp="http://www.openplans.org/topp&quot;
   xmlns:wfs="http://www.opengis.net/wfs&quot;
   xmlns="http://www.opengis.net/ogc&quot;
   xmlns:gml="http://www.opengis.net/gml&quot;
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
   xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd&quot;&gt;
   <wfs:Query typeName="navteq:geoserver_comuni">
     <Filter>
       <Intersection>
         <PropertyName>geom</PropertyName>
           <gml:Polygon srsName="urn:ogc:def:crs:EPSG:6.9:4326">
         <gml:exterior>
           <gml:LinearRing>
         <gml:posList>45.429299 11.82518 45.429299 12.540665 45.77327 12.540665 45.77327 11.82518 45.429299 11.82518</gml:posList>
           </gml:LinearRing>
         </gml:exterior>
           </gml:Polygon>
         </Intersection>
       </Filter>
   </wfs:Query>
</wfs:GetFeature>

However, I got a "Unable to find function Intersection" response from the server.
I did some research, and found the preferred way to do this kind of computation seems to be using a WPS approach, so I installed the WPS extension and looked for some examples.
I tried this example, which was assembled by a mixture of the WPS builder and an example I found on this thread: http://osgeo-org.1560.n6.nabble.com/Geoserver-2-2-Insertection-with-buffer-td5009029.html
This is the code I tried:

<?xml version="1.0" encoding="UTF-8"?>
<wps:Execute version="1.0.0" service="WPS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot; xmlns="http://www.opengis.net/wps/1.0.0&quot; xmlns:wfs="http://www.opengis.net/wfs&quot; xmlns:wps="http://www.opengis.net/wps/1.0.0&quot; xmlns:ows="http://www.opengis.net/ows/1.1&quot; xmlns:gml="http://www.opengis.net/gml&quot; xmlns:ogc="http://www.opengis.net/ogc&quot; xmlns:wcs="http://www.opengis.net/wcs/1.1.1&quot; xmlns:xlink="http://www.w3.org/1999/xlink&quot; xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd&quot;&gt;
<ows:Identifier>gs:IntersectionFeatureCollection</ows:Identifier>
   <wps:DataInputs>
     <wps:Input>
       <ows:Identifier>first feature collection</ows:Identifier>
       <wps:Reference mimeType="text/xml; subtype=wfs-collection/1.0" xlink:href="http://geoserver/wps&quot; method="POST">
         <wps:Body>
           <wps:Execute version="1.0.0" service="WPS">
             <ows:Identifier>gs:Feature</ows:Identifier>
             <wps:DataInputs>
               <wps:Input>
<ows:Identifier>geometry</ows:Identifier>
                 <wps:Data>
                   <wps:ComplexData mimeType="application/wkt"><![CDATA[POLYGON((45.429299 11.82518,45.429299 12.540665,45.77327 12.540665,45.77327 11.82518,45.429299 11.82518))]]></wps:ComplexData>
                 </wps:Data>
               </wps:Input>
               <wps:Input>
                 <ows:Identifier>crs</ows:Identifier>
                 <wps:Data>
<wps:LiteralData>EPSG:4326</wps:LiteralData>
                 </wps:Data>
               </wps:Input>
               <wps:Input>
<ows:Identifier>typeName</ows:Identifier>
                 <wps:Data>
                   <wps:LiteralData>buf</wps:LiteralData>
                 </wps:Data>
               </wps:Input>
             </wps:DataInputs>
             <wps:ResponseForm>
               <wps:RawDataOutput mimeType="text/xml; subtype=wfs-collection/1.0">
                 <ows:Identifier>result</ows:Identifier>
               </wps:RawDataOutput>
             </wps:ResponseForm>
           </wps:Execute>
         </wps:Body>
       </wps:Reference>
     </wps:Input>
     <wps:Input>
       <ows:Identifier>second feature collection</ows:Identifier>
       <wps:Reference mimeType="text/xml" xlink:href="http://geoserver/wfs&quot; method="POST">
         <wps:Body>
           <wfs:GetFeature service="WFS" version="1.0.0" outputFormat="GML2" xmlns:navteq="navteq">
             <wfs:Query typeName="navteq:comuni_ita"/>
           </wfs:GetFeature>
         </wps:Body>
       </wps:Reference>
     </wps:Input>
     <wps:Input>
       <ows:Identifier>intersectionMode</ows:Identifier>
       <wps:Data>
         <wps:LiteralData>INTERSECTION</wps:LiteralData>
       </wps:Data>
     </wps:Input>
   </wps:DataInputs>
   <wps:ResponseForm>
     <wps:RawDataOutput mimeType="text/xml; subtype=wfs-collection/1.0">
       <ows:Identifier>result</ows:Identifier>
     </wps:RawDataOutput>
   </wps:ResponseForm>
</wps:Execute>

I thought this would give me back the set of intersecting geometries, however I got this response, seems to be the bbox I put as input:
<?xml version="1.0" encoding="UTF-8"?>
<wfs:FeatureCollection xmlns:ogc="http://www.opengis.net/ogc&quot;
xmlns:gml="http://www.opengis.net/gml&quot;
xmlns:wfs="http://www.opengis.net/wfs&quot;&gt;
<gml:boundedBy>
<gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml#4326&quot;&gt;
<gml:coord><gml:X>45.429299</gml:X><gml:Y>11.82518</gml:Y></gml:coord><gml:coord><gml:X>45.77327</gml:X><gml:Y>12.540665</gml:Y></gml:coord></gml:Box>
</gml:boundedBy>
</wfs:FeatureCollection>

I'm pretty new to Geoserver, so I've got no big clues on what to do now.
1) Is WPS and gs:IntersectionFeatureCollection the right way to do this, or is something wrong with the WFS intersection example I tried before?
2) Could anyone give me a clue on what is wrong with my WPS example?
3) I need to do the same with ST_Union, I gave a look at the description of gs:union, however it seems to work only with 2 single features, while I'd need to perform an aggregate
function on an entire set of geometries, based on attributes.

The most important issue for me, however, is that I'm trying to use Geoserver because I'd like to put a layer between the database and the application running on the client.
I could do the same with a java webapp performing only the operations I need, basicly mapping them to calls to postgis functions, but I'd really like to avoid all the coding,
mainly because we already have a lot of custom code to mantain. I'd like to switch from implementing code to wiring applications in an infrastructure.
Is Geoserver the right tool to use from this perspective, or should I code the "transactional" operations in Java and use Geoserver just for simple WMS and WFS requests?

Thank you in advance for any response.

Regards.

--
Paolo Crosato

Your WFS query won’t work because is not a supported operation in the OGC Filter Encoding spec. ( is, however, which is why the initial query worked.) In general, WFS supports expressing filters for data, but not manipulation of the retrieved data. So it is not an option for the kind of processing that you want to do. (Perhaps this will be improved in a new version of the spec, or by some GeoServer-specific enhancements…)

As for the WPS query, the syntax looks fine. What you are seeing is an empty result being returned. Are you sure that the “communi_ita” dataset has features in the are that you are trying to intersect?

If you are only intersecting with a rectangle, you may also want to try gs:Clip or gs:RectangularClip - they are optimized for clipping feature geometry to a given polygon and rectangle.

As for union, if what you are wanting to do is to geometrically union all the data from a layer unfortunately there isn’t currently a process which will accomplish this. It’s quite possible to create such a process in Java with fairly small effort, however - you could try and do this yourself, or consider funding someone to do this.

On Mon, Dec 10, 2012 at 8:09 AM, Paolo Crosato <paolo.crosato@anonymised.com> wrote:

Hi,

I’m trying to perform by use of Geoserver the equivalent of the Postgis
ST_intersection and ST_Union functions. The server I’m working with is
the os indipendent binary with jetty.

In the first case, I need to compute the intersection between a polygon
(a rectangle) and a postgis table published as a WFS vector layer via
Geoserver. The simple intersects, which I performed succesfully, is not
sufficient since I need to minimize the information transimitted over
the network, because the application will run on mobile clients.
First I tried with a simple WFS request, since I found on the
GetCapabilities response for the WFS service that the “intersection”
function was supported, as intersects is. So I tried this simple XML,
which works with intersects:

<wfs:GetFeature service=“WFS” version=“1.1.0”
xmlns:topp=“http://www.openplans.org/topp
xmlns:wfs=“http://www.opengis.net/wfs
xmlns=“http://www.opengis.net/ogc
xmlns:gml=“http://www.opengis.net/gml
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation=“http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd”>
<wfs:Query typeName=“navteq:geoserver_comuni”>


geom
<gml:Polygon srsName=“urn:ogc:def:crs:EPSG:6.9:4326”>
gml:exterior
gml:LinearRing
gml:posList45.429299 11.82518 45.429299 12.540665 45.77327
12.540665 45.77327 11.82518 45.429299 11.82518</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>


</wfs:Query>
</wfs:GetFeature>

However, I got a “Unable to find function Intersection” response from
the server.
I did some research, and found the preferred way to do this kind of
computation seems to be using a WPS approach, so I installed the WPS
extension and looked for some examples.
I tried this example, which was assembled by a mixture of the WPS
builder and an example I found on this thread:
http://osgeo-org.1560.n6.nabble.com/Geoserver-2-2-Insertection-with-buffer-td5009029.html
This is the code I tried:

<?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:Identifiergs:IntersectionFeatureCollection</ows:Identifier>
wps:DataInputs
wps:Input
ows:Identifierfirst feature collection</ows:Identifier>
<wps:Reference mimeType=“text/xml; subtype=wfs-collection/1.0”
xlink:href=“http://geoserver/wps” method=“POST”>
wps:Body
<wps:Execute version=“1.0.0” service=“WPS”>
ows:Identifiergs:Feature</ows:Identifier>
wps:DataInputs
wps:Input
ows:Identifiergeometry</ows:Identifier>
wps:Data
<wps:ComplexData
mimeType=“application/wkt”></wps:ComplexData>
</wps:Data>
</wps:Input>
wps:Input
ows:Identifiercrs</ows:Identifier>
wps:Data
wps:LiteralDataEPSG:4326</wps:LiteralData>
</wps:Data>
</wps:Input>
wps:Input
ows:IdentifiertypeName</ows:Identifier>
wps:Data
wps:LiteralDatabuf</wps:LiteralData>
</wps:Data>
</wps:Input>
</wps:DataInputs>
wps:ResponseForm
<wps:RawDataOutput mimeType=“text/xml;
subtype=wfs-collection/1.0”>
ows:Identifierresult</ows:Identifier>
</wps:RawDataOutput>
</wps:ResponseForm>
</wps:Execute>
</wps:Body>
</wps:Reference>
</wps:Input>
wps:Input
ows:Identifiersecond feature collection</ows:Identifier>
<wps:Reference mimeType=“text/xml”
xlink:href=“http://geoserver/wfs” method=“POST”>
wps:Body
<wfs:GetFeature service=“WFS” version=“1.0.0”
outputFormat=“GML2” xmlns:navteq=“navteq”>
<wfs:Query typeName=“navteq:comuni_ita”/>
</wfs:GetFeature>
</wps:Body>
</wps:Reference>
</wps:Input>
wps:Input
ows:IdentifierintersectionMode</ows:Identifier>
wps:Data
wps:LiteralDataINTERSECTION</wps:LiteralData>
</wps:Data>
</wps:Input>
</wps:DataInputs>
wps:ResponseForm
<wps:RawDataOutput mimeType=“text/xml; subtype=wfs-collection/1.0”>
ows:Identifierresult</ows:Identifier>
</wps:RawDataOutput>
</wps:ResponseForm>
</wps:Execute>

I thought this would give me back the set of intersecting geometries,
however I got this response, seems to be the bbox I put as input:

<?xml version="1.0" encoding="UTF-8"?>

<wfs:FeatureCollection xmlns:ogc=“http://www.opengis.net/ogc
xmlns:gml=“http://www.opengis.net/gml
xmlns:wfs=“http://www.opengis.net/wfs”>
gml:boundedBy
<gml:Box srsName=“http://www.opengis.net/gml/srs/epsg.xml#4326”>
gml:coordgml:X45.429299</gml:X>gml:Y11.82518</gml:Y></gml:coord>gml:coordgml:X45.77327</gml:X>gml:Y12.540665</gml:Y></gml:coord></gml:Box>
</gml:boundedBy>
</wfs:FeatureCollection>

I’m pretty new to Geoserver, so I’ve got no big clues on what to do now.

  1. Is WPS and gs:IntersectionFeatureCollection the right way to do this,
    or is something wrong with the WFS intersection example I tried before?
  2. Could anyone give me a clue on what is wrong with my WPS example?
  3. I need to do the same with ST_Union, I gave a look at the description
    of gs:union, however it seems to work only with 2 single features, while
    I’d need to perform an aggregate
    function on an entire set of geometries, based on attributes.

The most important issue for me, however, is that I’m trying to use
Geoserver because I’d like to put a layer between the database and the
application running on the client.
I could do the same with a java webapp performing only the operations I
need, basicly mapping them to calls to postgis functions, but I’d really
like to avoid all the coding,
mainly because we already have a lot of custom code to mantain. I’d like
to switch from implementing code to wiring applications in an
infrastructure.
Is Geoserver the right tool to use from this perspective, or should I
code the “transactional” operations in Java and use Geoserver just for
simple WMS and WFS requests?

Thank you in advance for any response.

Regards.


Paolo Crosato


LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d


Geoserver-users mailing list
Geoserver-users@anonymised.comsts.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Martin Davis
OpenGeo - http://opengeo.org
Expert service straight from the developers.

Hi Martin,

thank you very much for your answer, it was very clarifying. It turned out that what I really needed was gs:RectangularClip, suits perfectly my needs and has very good performance. I was able to build a working query thanks to the integrated query builder. Still don't know what was wrong with my gs:IntersectionFeatureCollection request, I tried to exchange the order of lat/lon, but it doesn't work either. I probably need to study more the protocol or the dataset. But I'm happy with gs:RectangularClip for now.

As for Union, it's not really a big issue, we will code it in our java applet as we are used to. Delegating rasters and vector queries to Geoserver is a big relief already!

Regards,

Paolo

Il 10/12/2012 19:03, Martin Davis ha scritto:

Your WFS query won't work because <Intersection> is not a supported operation in the OGC Filter Encoding spec. (<Intersects> is, however, which is why the initial query worked.) In general, WFS supports expressing *filters* for data, but not *manipulation* of the retrieved data. So it is not an option for the kind of processing that you want to do. (Perhaps this will be improved in a new version of the spec, or by some GeoServer-specific enhancements...)

As for the WPS query, the syntax looks fine. What you are seeing is an empty result being returned. Are you sure that the "communi_ita" dataset has features in the are that you are trying to intersect?

If you are only intersecting with a rectangle, you may also want to try gs:Clip or gs:RectangularClip - they are optimized for clipping feature geometry to a given polygon and rectangle.

As for union, if what you are wanting to do is to geometrically union all the data from a layer unfortunately there isn't currently a process which will accomplish this. It's quite possible to create such a process in Java with fairly small effort, however - you could try and do this yourself, or consider funding someone to do this.

On Mon, Dec 10, 2012 at 8:09 AM, Paolo Crosato <paolo.crosato@anonymised.com <mailto:paolo.crosato@anonymised.com>> wrote:

    Hi,

    I'm trying to perform by use of Geoserver the equivalent of the
    Postgis
    ST_intersection and ST_Union functions. The server I'm working with is
    the os indipendent binary with jetty.

    In the first case, I need to compute the intersection between a
    polygon
    (a rectangle) and a postgis table published as a WFS vector layer via
    Geoserver. The simple intersects, which I performed succesfully,
    is not
    sufficient since I need to minimize the information transimitted over
    the network, because the application will run on mobile clients.
    First I tried with a simple WFS request, since I found on the
    GetCapabilities response for the WFS service that the "intersection"
    function was supported, as intersects is. So I tried this simple XML,
    which works with intersects:

    <wfs:GetFeature service="WFS" version="1.1.0"
       xmlns:topp="http://www.openplans.org/topp&quot;
       xmlns:wfs="http://www.opengis.net/wfs&quot;
       xmlns="http://www.opengis.net/ogc&quot;
       xmlns:gml="http://www.opengis.net/gml&quot;
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
       xsi:schemaLocation="http://www.opengis.net/wfs
    http://schemas.opengis.net/wfs/1.1.0/wfs.xsd&quot;&gt;
       <wfs:Query typeName="navteq:geoserver_comuni">
         <Filter>
           <Intersection>
             <PropertyName>geom</PropertyName>
               <gml:Polygon srsName="urn:ogc:def:crs:EPSG:6.9:4326">
             <gml:exterior>
               <gml:LinearRing>
             <gml:posList>45.429299 11.82518 45.429299 12.540665 45.77327
    12.540665 45.77327 11.82518 45.429299 11.82518</gml:posList>
               </gml:LinearRing>
             </gml:exterior>
               </gml:Polygon>
             </Intersection>
           </Filter>
       </wfs:Query>
    </wfs:GetFeature>

    However, I got a "Unable to find function Intersection" response from
    the server.
    I did some research, and found the preferred way to do this kind of
    computation seems to be using a WPS approach, so I installed the WPS
    extension and looked for some examples.
    I tried this example, which was assembled by a mixture of the WPS
    builder and an example I found on this thread:
    http://osgeo-org.1560.n6.nabble.com/Geoserver-2-2-Insertection-with-buffer-td5009029.html
    This is the code I tried:

    <?xml version="1.0" encoding="UTF-8"?>
    <wps:Execute version="1.0.0" service="WPS"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
    xmlns="http://www.opengis.net/wps/1.0.0&quot;
    xmlns:wfs="http://www.opengis.net/wfs&quot;
    xmlns:wps="http://www.opengis.net/wps/1.0.0&quot;
    xmlns:ows="http://www.opengis.net/ows/1.1&quot;
    xmlns:gml="http://www.opengis.net/gml&quot;
    xmlns:ogc="http://www.opengis.net/ogc&quot;
    xmlns:wcs="http://www.opengis.net/wcs/1.1.1&quot;
    xmlns:xlink="http://www.w3.org/1999/xlink&quot;
    xsi:schemaLocation="http://www.opengis.net/wps/1.0.0
    http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd&quot;&gt;
    <ows:Identifier>gs:IntersectionFeatureCollection</ows:Identifier>
       <wps:DataInputs>
         <wps:Input>
           <ows:Identifier>first feature collection</ows:Identifier>
           <wps:Reference mimeType="text/xml; subtype=wfs-collection/1.0"
    xlink:href="http://geoserver/wps&quot; method="POST">
             <wps:Body>
               <wps:Execute version="1.0.0" service="WPS">
     <ows:Identifier>gs:Feature</ows:Identifier>
                 <wps:DataInputs>
                   <wps:Input>
    <ows:Identifier>geometry</ows:Identifier>
                     <wps:Data>
                       <wps:ComplexData
    mimeType="application/wkt"><![CDATA[POLYGON((45.429299
    11.82518,45.429299 12.540665,45.77327 12.540665,45.77327
    11.82518,45.429299 11.82518))]]></wps:ComplexData>
                     </wps:Data>
                   </wps:Input>
                   <wps:Input>
     <ows:Identifier>crs</ows:Identifier>
                     <wps:Data>
    <wps:LiteralData>EPSG:4326</wps:LiteralData>
                     </wps:Data>
                   </wps:Input>
                   <wps:Input>
    <ows:Identifier>typeName</ows:Identifier>
                     <wps:Data>
     <wps:LiteralData>buf</wps:LiteralData>
                     </wps:Data>
                   </wps:Input>
                 </wps:DataInputs>
                 <wps:ResponseForm>
                   <wps:RawDataOutput mimeType="text/xml;
    subtype=wfs-collection/1.0">
     <ows:Identifier>result</ows:Identifier>
                   </wps:RawDataOutput>
                 </wps:ResponseForm>
               </wps:Execute>
             </wps:Body>
           </wps:Reference>
         </wps:Input>
         <wps:Input>
           <ows:Identifier>second feature collection</ows:Identifier>
           <wps:Reference mimeType="text/xml"
    xlink:href="http://geoserver/wfs&quot; method="POST">
             <wps:Body>
               <wfs:GetFeature service="WFS" version="1.0.0"
    outputFormat="GML2" xmlns:navteq="navteq">
                 <wfs:Query typeName="navteq:comuni_ita"/>
               </wfs:GetFeature>
             </wps:Body>
           </wps:Reference>
         </wps:Input>
         <wps:Input>
     <ows:Identifier>intersectionMode</ows:Identifier>
           <wps:Data>
     <wps:LiteralData>INTERSECTION</wps:LiteralData>
           </wps:Data>
         </wps:Input>
       </wps:DataInputs>
       <wps:ResponseForm>
         <wps:RawDataOutput mimeType="text/xml;
    subtype=wfs-collection/1.0">
           <ows:Identifier>result</ows:Identifier>
         </wps:RawDataOutput>
       </wps:ResponseForm>
    </wps:Execute>

    I thought this would give me back the set of intersecting geometries,
    however I got this response, seems to be the bbox I put as input:
    <?xml version="1.0" encoding="UTF-8"?>
    <wfs:FeatureCollection xmlns:ogc="http://www.opengis.net/ogc&quot;
    xmlns:gml="http://www.opengis.net/gml&quot;
    xmlns:wfs="http://www.opengis.net/wfs&quot;&gt;
    <gml:boundedBy>
    <gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml#4326&quot;&gt;
    <gml:coord><gml:X>45.429299</gml:X><gml:Y>11.82518</gml:Y></gml:coord><gml:coord><gml:X>45.77327</gml:X><gml:Y>12.540665</gml:Y></gml:coord></gml:Box>
    </gml:boundedBy>
    </wfs:FeatureCollection>

    I'm pretty new to Geoserver, so I've got no big clues on what to
    do now.
    1) Is WPS and gs:IntersectionFeatureCollection the right way to do
    this,
    or is something wrong with the WFS intersection example I tried
    before?
    2) Could anyone give me a clue on what is wrong with my WPS example?
    3) I need to do the same with ST_Union, I gave a look at the
    description
    of gs:union, however it seems to work only with 2 single features,
    while
    I'd need to perform an aggregate
    function on an entire set of geometries, based on attributes.

    The most important issue for me, however, is that I'm trying to use
    Geoserver because I'd like to put a layer between the database and the
    application running on the client.
    I could do the same with a java webapp performing only the
    operations I
    need, basicly mapping them to calls to postgis functions, but I'd
    really
    like to avoid all the coding,
    mainly because we already have a lot of custom code to mantain.
    I'd like
    to switch from implementing code to wiring applications in an
    infrastructure.
    Is Geoserver the right tool to use from this perspective, or should I
    code the "transactional" operations in Java and use Geoserver just for
    simple WMS and WFS requests?

    Thank you in advance for any response.

    Regards.

    --
    Paolo Crosato

    ------------------------------------------------------------------------------
    LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
    Remotely access PCs and mobile devices and provide instant support
    Improve your efficiency, and focus on delivering more value-add
    services
    Discover what IT Professionals Know. Rescue delivers
    http://p.sf.net/sfu/logmein_12329d2d
    _______________________________________________
    Geoserver-users mailing list
    Geoserver-users@lists.sourceforge.net
    <mailto:Geoserver-users@lists.sourceforge.net>
    https://lists.sourceforge.net/lists/listinfo/geoserver-users

--
Martin Davis
OpenGeo - http://opengeo.org/&gt;
Expert service straight from the developers.

------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d

_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

--
Paolo Crosato