[Geoserver-users] WFS OGR-SHP Export, Axis Order Redux

Good Morning List,
I’m still trying to understand the Axis order issue. I read the article:

http://geoserver.org/display/GEOSDOC/2.+WFS±+Web+Feature+Service"

and this stands out:

“A fully compliant WFS 1.1 client will have to deal with latitude/longitude axis”

Well, then, two things:

  1. The ArcGIS 1.1 client isn’t/doesn’t - 1.1 requests are rotated 90 degrees, 1.0 are not.
  2. The second is that it appears that the OGR-SHP exporter doesn’t either, either that, or I just don’t understand.

For example (you can try this at home…), this request works fine, while the second does not. (the second is rotated 90 degrees). Shouldn’t the OGR-SHP exporter “deal” with the axis issue properly in all cases (including 4326)? Note that I’m using the "srsName=“urn:x-ogc:def:crs:EPSG:XXXX” syntax. The two are identical except for the wfs:Query srsName.

This was tried using the latest nightly build, the server is: http://ogi.state.ok.us/geoserver/wfs

The wfs requests are:

<wfs:GetFeature service=“WFS” version=“1.1.0” outputFormat=“OGR-SHP-ZIP” xmlns:ogi=“http://ogi.state.ok.us/ogi” 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” xmlns:ogc=“http://www.opengis.net/ogc” xmlns:wfs=“http://www.opengis.net/wfs” xmlns:gml=“http://www.opengis.net/gml”>
<wfs:Query typeName=“ogi:streams” srsName=“urn:x-ogc:def:crs:EPSG:26914”>
ogc:Filter
ogc:Intersects
ogc:PropertyNamethe_geom</ogc:PropertyName>
<gml:Polygon srsName=“urn:x-ogc:def:crs:EPSG:4326” xmlns:gml=“http://www.opengis.net/gml”>
gml:exterior
gml:LinearRing
gml:posList35.500060288095455 -97.50031670710655 35.50006091966824 -97.37531323186303 35.37506446382955 -97.37531129982791 35.375057994022875 -97.50031488896217 35.500060288095455 -97.50031670710655</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</ogc:Intersects>
</ogc:Filter>
</wfs:Query>
</wfs:GetFeature>

and

<wfs:GetFeature service=“WFS” version=“1.1.0” outputFormat=“OGR-SHP-ZIP” xmlns:ogi=“http://ogi.state.ok.us/ogi” 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” xmlns:ogc=“http://www.opengis.net/ogc” xmlns:wfs=“http://www.opengis.net/wfs” xmlns:gml=“http://www.opengis.net/gml”>
<wfs:Query typeName=“ogi:streams” srsName=“urn:x-ogc:def:crs:EPSG:4326”>
ogc:Filter
ogc:Intersects
ogc:PropertyNamethe_geom</ogc:PropertyName>
<gml:Polygon srsName=“urn:x-ogc:def:crs:EPSG:4326” xmlns:gml=“http://www.opengis.net/gml”>
gml:exterior
gml:LinearRing
gml:posList35.500060288095455 -97.50031670710655 35.50006091966824 -97.37531323186303 35.37506446382955 -97.37531129982791 35.375057994022875 -97.50031488896217 35.500060288095455 -97.50031670710655</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</ogc:Intersects>
</ogc:Filter>
</wfs:Query>
</wfs:GetFeature>

Thanks for your help!

Roger

Hi Roger,

Roger Bedell wrote:

Good Morning List,
I'm still trying to understand the Axis order issue. I read the article:
http://geoserver.org/display/GEOSDOC/2.+WFS+-+Web+Feature+Service&quot;
and this stands out:
"A fully compliant WFS 1.1 client will have to deal with latitude/longitude axis"
Well, then, two things:
1) The ArcGIS 1.1 client isn't/doesn't - 1.1 requests are rotated 90 degrees, 1.0 are not.

Not surprising. Even though the spec mandates this in practice many clients won't handle this properly.

2) The second is that it appears that the OGR-SHP exporter doesn't either, either that, or I just don't understand.

Let's see if I can clear it up any... but honestly when it comes to this issue I have to keep on reminding myself :slight_smile:

The first thing at play here is that the axis order flipping only applies to geographic coordinate systems, and not projected coordinate systems.

The second is that there is a bug in GeoServer in which the axis order flipping is applied to all output formats for a wfs 1.1 request, whereas it should only be applied to GML3 output, since it is the only one that supports the notion of respecting the authority axis order via the urn:x-ogc:def:crs:EPSG:xxxx syntax.

So the first request which specifies a projected coordinate system will not suffer from any axis swapping. Since your base data is geographic geoserver assumes the axis order is lon/lat or xy and reprojects it directly to the projected coordinate system.

The second request however specifies the coordinate system "urn:x-ogc:def:crs:EPSG:4326", which is your standard WGS84, but with the lat/lon axis order. So since geoserver assumes your data is in lon/lat, but you are requesting it in lat/lon, the axis flip transformation occurs.

However, let's say for instance you where to change the srsName parameter in the second request to just srsName="EPSG:4326". Since this is technically an ambiguous definition in terms of axis order, GeoServer makes the same assumption that it means lon/lat. So in this case no axis flipping transformation would occur since the source and target coordinate systems are identical.

Hopefully that clears things up some.

-Justin

For example (you /can/ try this at home...), this request works fine, while the second does not. (the second is rotated 90 degrees). Shouldn't the OGR-SHP exporter "deal" with the axis issue properly in all cases (including 4326)? Note that I'm using the "srsName="urn:x-ogc:def:crs:EPSG:XXXX" syntax. The two are identical except for the wfs:Query srsName.
This was tried using the latest nightly build, the server is: http://ogi.state.ok.us/geoserver/wfs
The wfs requests are:
<wfs:GetFeature service="WFS" version="1.1.0" outputFormat="OGR-SHP-ZIP" xmlns:ogi="http://ogi.state.ok.us/ogi&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; xmlns:ogc="http://www.opengis.net/ogc&quot; xmlns:wfs="http://www.opengis.net/wfs&quot; xmlns:gml="http://www.opengis.net/gml&quot;&gt;
  <wfs:Query typeName="ogi:streams" srsName="urn:x-ogc:def:crs:EPSG:26914">
    <ogc:Filter>
      <ogc:Intersects>
        <ogc:PropertyName>the_geom</ogc:PropertyName>
        <gml:Polygon srsName="urn:x-ogc:def:crs:EPSG:4326" xmlns:gml="http://www.opengis.net/gml&quot;&gt;
          <gml:exterior>
            <gml:LinearRing>
              <gml:posList>35.500060288095455 -97.50031670710655 35.50006091966824 -97.37531323186303 35.37506446382955 -97.37531129982791 35.375057994022875 -97.50031488896217 35.500060288095455 -97.50031670710655</gml:posList>
            </gml:LinearRing>
          </gml:exterior>
        </gml:Polygon>
      </ogc:Intersects>
    </ogc:Filter>
  </wfs:Query>
</wfs:GetFeature>
and
<wfs:GetFeature service="WFS" version="1.1.0" outputFormat="OGR-SHP-ZIP" xmlns:ogi="http://ogi.state.ok.us/ogi&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; xmlns:ogc="http://www.opengis.net/ogc&quot; xmlns:wfs="http://www.opengis.net/wfs&quot; xmlns:gml="http://www.opengis.net/gml&quot;&gt;
  <wfs:Query typeName="ogi:streams" srsName="urn:x-ogc:def:crs:EPSG:4326">
    <ogc:Filter>
      <ogc:Intersects>
        <ogc:PropertyName>the_geom</ogc:PropertyName>
        <gml:Polygon srsName="urn:x-ogc:def:crs:EPSG:4326" xmlns:gml="http://www.opengis.net/gml&quot;&gt;
          <gml:exterior>
            <gml:LinearRing>
              <gml:posList>35.500060288095455 -97.50031670710655 35.50006091966824 -97.37531323186303 35.37506446382955 -97.37531129982791 35.375057994022875 -97.50031488896217 35.500060288095455 -97.50031670710655</gml:posList>
            </gml:LinearRing>
          </gml:exterior>
        </gml:Polygon>
      </ogc:Intersects>
    </ogc:Filter>
  </wfs:Query>
</wfs:GetFeature>
Thanks for your help!
Roger

------------------------------------------------------------------------

------------------------------------------------------------------------------

------------------------------------------------------------------------

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

--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.

Dear Justin,
Well, about as clear as mud, but at least I know how to proceed to export my SHP files;

1) If geographic, use srsName="EPSG:XXXX"
2) If Projected, use srsName="urn:x-ogc:def:crs:EPSG:XXXX"

Thanks!
Roger

--------------------------------------------------
From: "Justin Deoliveira" <jdeolive@anonymised.com>
Sent: Tuesday, June 30, 2009 8:51 AM
To: "Roger Bedell" <roger@anonymised.com>
Cc: <geoserver-users@lists.sourceforge.net>
Subject: Re: [Geoserver-users] WFS OGR-SHP Export, Axis Order Redux

Hi Roger,

Roger Bedell wrote:

Good Morning List,
I'm still trying to understand the Axis order issue. I read the article:

http://geoserver.org/display/GEOSDOC/2.+WFS+-+Web+Feature+Service&quot;

and this stands out:

"A fully compliant WFS 1.1 client will have to deal with
latitude/longitude axis"

Well, then, two things:
1) The ArcGIS 1.1 client isn't/doesn't - 1.1 requests are rotated 90
degrees, 1.0 are not.

Not surprising. Even though the spec mandates this in practice many
clients won't handle this properly.

2) The second is that it appears that the OGR-SHP exporter doesn't
either, either that, or I just don't understand.

Let's see if I can clear it up any... but honestly when it comes to this
issue I have to keep on reminding myself :slight_smile:

The first thing at play here is that the axis order flipping only
applies to geographic coordinate systems, and not projected coordinate
systems.

The second is that there is a bug in GeoServer in which the axis order
flipping is applied to all output formats for a wfs 1.1 request, whereas
it should only be applied to GML3 output, since it is the only one that
supports the notion of respecting the authority axis order via the
urn:x-ogc:def:crs:EPSG:xxxx syntax.

So the first request which specifies a projected coordinate system will
not suffer from any axis swapping. Since your base data is geographic
geoserver assumes the axis order is lon/lat or xy and reprojects it
directly to the projected coordinate system.

The second request however specifies the coordinate system
"urn:x-ogc:def:crs:EPSG:4326", which is your standard WGS84, but with
the lat/lon axis order. So since geoserver assumes your data is in
lon/lat, but you are requesting it in lat/lon, the axis flip
transformation occurs.

However, let's say for instance you where to change the srsName
parameter in the second request to just srsName="EPSG:4326". Since this
is technically an ambiguous definition in terms of axis order, GeoServer
makes the same assumption that it means lon/lat. So in this case no axis
flipping transformation would occur since the source and target
coordinate systems are identical.

Hopefully that clears things up some.

-Justin

For example (you /can/ try this at home...), this request works fine,
while the second does not. (the second is rotated 90 degrees). Shouldn't
the OGR-SHP exporter "deal" with the axis issue properly in all cases
(including 4326)? Note that I'm using the
"srsName="urn:x-ogc:def:crs:EPSG:XXXX" syntax. The two are identical
except for the wfs:Query srsName.

This was tried using the latest nightly build, the server is:
http://ogi.state.ok.us/geoserver/wfs

The wfs requests are:

<wfs:GetFeature service="WFS" version="1.1.0" outputFormat="OGR-SHP-ZIP"
xmlns:ogi="http://ogi.state.ok.us/ogi&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;
xmlns:ogc="http://www.opengis.net/ogc&quot;
xmlns:wfs="http://www.opengis.net/wfs&quot;
xmlns:gml="http://www.opengis.net/gml&quot;&gt;
  <wfs:Query typeName="ogi:streams" srsName="urn:x-ogc:def:crs:EPSG:26914">
    <ogc:Filter>
      <ogc:Intersects>
        <ogc:PropertyName>the_geom</ogc:PropertyName>
        <gml:Polygon srsName="urn:x-ogc:def:crs:EPSG:4326"
xmlns:gml="http://www.opengis.net/gml&quot;&gt;
          <gml:exterior>
            <gml:LinearRing>
              <gml:posList>35.500060288095455 -97.50031670710655
35.50006091966824 -97.37531323186303 35.37506446382955
-97.37531129982791 35.375057994022875 -97.50031488896217
35.500060288095455 -97.50031670710655</gml:posList>
            </gml:LinearRing>
          </gml:exterior>
        </gml:Polygon>
      </ogc:Intersects>
    </ogc:Filter>
  </wfs:Query>
</wfs:GetFeature>

and

<wfs:GetFeature service="WFS" version="1.1.0" outputFormat="OGR-SHP-ZIP"
xmlns:ogi="http://ogi.state.ok.us/ogi&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;
xmlns:ogc="http://www.opengis.net/ogc&quot;
xmlns:wfs="http://www.opengis.net/wfs&quot;
xmlns:gml="http://www.opengis.net/gml&quot;&gt;
  <wfs:Query typeName="ogi:streams" srsName="urn:x-ogc:def:crs:EPSG:4326">
    <ogc:Filter>
      <ogc:Intersects>
        <ogc:PropertyName>the_geom</ogc:PropertyName>
        <gml:Polygon srsName="urn:x-ogc:def:crs:EPSG:4326"
xmlns:gml="http://www.opengis.net/gml&quot;&gt;
          <gml:exterior>
            <gml:LinearRing>
              <gml:posList>35.500060288095455 -97.50031670710655
35.50006091966824 -97.37531323186303 35.37506446382955
-97.37531129982791 35.375057994022875 -97.50031488896217
35.500060288095455 -97.50031670710655</gml:posList>
            </gml:LinearRing>
          </gml:exterior>
        </gml:Polygon>
      </ogc:Intersects>
    </ogc:Filter>
  </wfs:Query>
</wfs:GetFeature>

Thanks for your help!

Roger

------------------------------------------------------------------------

------------------------------------------------------------------------------

------------------------------------------------------------------------

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

--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.

Dear Justin,
Well, about as clear as mud, but at least I know how to proceed to export my SHP files;

1) If geographic, use srsName="EPSG:XXXX"
2) If Projected, use srsName="urn:x-ogc:def:crs:EPSG:XXXX"

Thanks!
Roger

--------------------------------------------------
From: "Justin Deoliveira" <jdeolive@anonymised.com>
Sent: Tuesday, June 30, 2009 8:51 AM
To: "Roger Bedell" <roger@anonymised.com>
Cc: <geoserver-users@lists.sourceforge.net>
Subject: Re: [Geoserver-users] WFS OGR-SHP Export, Axis Order Redux

Hi Roger,

Roger Bedell wrote:

Good Morning List,
I'm still trying to understand the Axis order issue. I read the article:

http://geoserver.org/display/GEOSDOC/2.+WFS+-+Web+Feature+Service&quot;

and this stands out:

"A fully compliant WFS 1.1 client will have to deal with
latitude/longitude axis"

Well, then, two things:
1) The ArcGIS 1.1 client isn't/doesn't - 1.1 requests are rotated 90
degrees, 1.0 are not.

Not surprising. Even though the spec mandates this in practice many
clients won't handle this properly.

2) The second is that it appears that the OGR-SHP exporter doesn't
either, either that, or I just don't understand.

Let's see if I can clear it up any... but honestly when it comes to this
issue I have to keep on reminding myself :slight_smile:

The first thing at play here is that the axis order flipping only
applies to geographic coordinate systems, and not projected coordinate
systems.

The second is that there is a bug in GeoServer in which the axis order
flipping is applied to all output formats for a wfs 1.1 request, whereas
it should only be applied to GML3 output, since it is the only one that
supports the notion of respecting the authority axis order via the
urn:x-ogc:def:crs:EPSG:xxxx syntax.

So the first request which specifies a projected coordinate system will
not suffer from any axis swapping. Since your base data is geographic
geoserver assumes the axis order is lon/lat or xy and reprojects it
directly to the projected coordinate system.

The second request however specifies the coordinate system
"urn:x-ogc:def:crs:EPSG:4326", which is your standard WGS84, but with
the lat/lon axis order. So since geoserver assumes your data is in
lon/lat, but you are requesting it in lat/lon, the axis flip
transformation occurs.

However, let's say for instance you where to change the srsName
parameter in the second request to just srsName="EPSG:4326". Since this
is technically an ambiguous definition in terms of axis order, GeoServer
makes the same assumption that it means lon/lat. So in this case no axis
flipping transformation would occur since the source and target
coordinate systems are identical.

Hopefully that clears things up some.

-Justin

For example (you /can/ try this at home...), this request works fine,
while the second does not. (the second is rotated 90 degrees). Shouldn't
the OGR-SHP exporter "deal" with the axis issue properly in all cases
(including 4326)? Note that I'm using the
"srsName="urn:x-ogc:def:crs:EPSG:XXXX" syntax. The two are identical
except for the wfs:Query srsName.

This was tried using the latest nightly build, the server is:
http://ogi.state.ok.us/geoserver/wfs

The wfs requests are:

<wfs:GetFeature service="WFS" version="1.1.0" outputFormat="OGR-SHP-ZIP"
xmlns:ogi="http://ogi.state.ok.us/ogi&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;
xmlns:ogc="http://www.opengis.net/ogc&quot;
xmlns:wfs="http://www.opengis.net/wfs&quot;
xmlns:gml="http://www.opengis.net/gml&quot;&gt;
  <wfs:Query typeName="ogi:streams" srsName="urn:x-ogc:def:crs:EPSG:26914">
    <ogc:Filter>
      <ogc:Intersects>
        <ogc:PropertyName>the_geom</ogc:PropertyName>
        <gml:Polygon srsName="urn:x-ogc:def:crs:EPSG:4326"
xmlns:gml="http://www.opengis.net/gml&quot;&gt;
          <gml:exterior>
            <gml:LinearRing>
              <gml:posList>35.500060288095455 -97.50031670710655
35.50006091966824 -97.37531323186303 35.37506446382955
-97.37531129982791 35.375057994022875 -97.50031488896217
35.500060288095455 -97.50031670710655</gml:posList>
            </gml:LinearRing>
          </gml:exterior>
        </gml:Polygon>
      </ogc:Intersects>
    </ogc:Filter>
  </wfs:Query>
</wfs:GetFeature>

and

<wfs:GetFeature service="WFS" version="1.1.0" outputFormat="OGR-SHP-ZIP"
xmlns:ogi="http://ogi.state.ok.us/ogi&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;
xmlns:ogc="http://www.opengis.net/ogc&quot;
xmlns:wfs="http://www.opengis.net/wfs&quot;
xmlns:gml="http://www.opengis.net/gml&quot;&gt;
  <wfs:Query typeName="ogi:streams" srsName="urn:x-ogc:def:crs:EPSG:4326">
    <ogc:Filter>
      <ogc:Intersects>
        <ogc:PropertyName>the_geom</ogc:PropertyName>
        <gml:Polygon srsName="urn:x-ogc:def:crs:EPSG:4326"
xmlns:gml="http://www.opengis.net/gml&quot;&gt;
          <gml:exterior>
            <gml:LinearRing>
              <gml:posList>35.500060288095455 -97.50031670710655
35.50006091966824 -97.37531323186303 35.37506446382955
-97.37531129982791 35.375057994022875 -97.50031488896217
35.500060288095455 -97.50031670710655</gml:posList>
            </gml:LinearRing>
          </gml:exterior>
        </gml:Polygon>
      </ogc:Intersects>
    </ogc:Filter>
  </wfs:Query>
</wfs:GetFeature>

Thanks for your help!

Roger

------------------------------------------------------------------------

------------------------------------------------------------------------------

------------------------------------------------------------------------

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

--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.

Roger Bedell ha scritto:

Dear Justin,
Well, about as clear as mud, but at least I know how to proceed to export my SHP files;

1) If geographic, use srsName="EPSG:XXXX"
2) If Projected, use srsName="urn:x-ogc:def:crs:EPSG:XXXX"

Always use EPSG:XXXX no matter what and you'll be good.
Cheers
Andrea

--
Andrea Aime
OpenGeo - http://opengeo.org
Expert service straight from the developers.

Thanks Andrea,
Yes, I believe that is the case. I think what messed me up before was specifying the query, which must use the urn:x-ogc:def:crs notation, eg:

<wfs:Query typeName="ogi:streams" srsName="EPSG:32125">
     <ogc:Filter>
       <ogc:Intersects>
         <ogc:PropertyName>the_geom</ogc:PropertyName>
         <gml:Polygon srsName="urn:x-ogc:def:crs:EPSG:4326"
xmlns:gml="http://www.opengis.net/gml&quot;&gt;

Roger

--------------------------------------------------
From: "Andrea Aime" <aaime@anonymised.com>
Sent: Tuesday, June 30, 2009 10:20 AM
To: "Roger Bedell" <roger@anonymised.com>
Cc: <geoserver-users@lists.sourceforge.net>; "Todd" <tfagin@anonymised.com>
Subject: Re: [Geoserver-users] WFS OGR-SHP Export, Axis Order Redux

Roger Bedell ha scritto:

Dear Justin,
Well, about as clear as mud, but at least I know how to proceed to export my
SHP files;

1) If geographic, use srsName="EPSG:XXXX"
2) If Projected, use srsName="urn:x-ogc:def:crs:EPSG:XXXX"

Always use EPSG:XXXX no matter what and you'll be good.
Cheers
Andrea

--
Andrea Aime
OpenGeo - http://opengeo.org
Expert service straight from the developers.

Roger Bedell ha scritto:

Thanks Andrea,
Yes, I believe that is the case. I think what messed me up before was specifying the query, which must use the urn:x-ogc:def:crs notation, eg:

<wfs:Query typeName="ogi:streams" srsName="EPSG:32125">
     <ogc:Filter>
       <ogc:Intersects>
         <ogc:PropertyName>the_geom</ogc:PropertyName>
         <gml:Polygon srsName="urn:x-ogc:def:crs:EPSG:4326"
xmlns:gml="http://www.opengis.net/gml&quot;&gt;

It does? Afaik it does not, but if you use
<gml:Polygon srsName="EPSG:4326" xmlns:gml="http://www.opengis.net/gml&quot;&gt;

then you have to remember to input the coordinates in lon/lat
order.

Cheers
Andrea

--
Andrea Aime
OpenGeo - http://opengeo.org
Expert service straight from the developers.