I send off what look to be extremely similar filter requests to the same 
server.
The first is fine, the second doesnt work - server reports error:

First one:
<wfs:GetFeature xmlns:wfs="http://www.opengis.net/wfs"; service="WFS" 
version="1.1.0" xsi:schemaLocation="http://www.opengis.net/wfs 
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><wfs:Query 
typeName="Petroleum_wells" srsName="EPSG:102113"><ogc:Filter 
xmlns:ogc="http://www.opengis.net/ogc";><ogc:Intersects><ogc:PropertyName>SHAPE</ogc:PropertyName><gml:Polygon
 
xmlns:gml="http://www.opengis.net/gml"; 
srsName="EPSG:102113"><gml:exterior><gml:LinearRing><gml:posList>19383968.353752
 
-4722239.4608807 19430442.066941 -4744253.3250229 19391306.308466 
-4751591.2797369 19383968.353752 
-4722239.4608807</gml:posList></gml:LinearRing></gml:exterior></gml:Polygon></ogc:Intersects></ogc:Filter></wfs:Query></wfs:GetFeature>

All okay.

<wfs:GetFeature xmlns:wfs="http://www.opengis.net/wfs"; service="WFS" 
version="1.1.0" xsi:schemaLocation="http://www.opengis.net/wfs 
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><wfs:Query 
typeName="Petroleum_wells" srsName="EPSG:102113"><ogc:Filter 
xmlns:ogc="http://www.opengis.net/ogc";><ogc:Intersects><ogc:PropertyName>SHAPE</ogc:PropertyName><gml:Polygon
 
xmlns:gml="http://www.opengis.net/gml"; 
srsName="EPSG:102113"><gml:exterior><gml:LinearRing><gml:posList>19410725.227223
 
-4739510.3156942 19411023.148185 -4739510.3156942 19411023.148185 
-4739212.3947328 19410725.227223 -4739212.3947328 19410725.227223 
-4739510.3156942</gml:posList></gml:LinearRing></gml:exterior></gml:Polygon></ogc:Intersects></ogc:Filter></wfs:Query></wfs:GetFeature>

This produces error:

|<ows:ExceptionReport version='1.1.0' language='en' 
xmlns:ows='http://www.opengis.net/ows'><ows:Exception||  
exceptionCode='InvalidParameterValue'><ows:ExceptionText>Wrong geometry 
definition in GML.</ows:ExceptionText||></ows:Exception></ows:ExceptionReport>


Very strange.

Code produces the first result is:
                                                wfsProtocol[i] = new 
OpenLayers.Protocol.WFS.v1_1_0({
                                                        url: 
lay.spatialQuery[0].url,
                                                        geometryName: "SHAPE",
                                                        featurePrefix: 
lay.spatialQuery[0].featurePrefix,
                                                        featureType: 
lay.spatialQuery[0].featureType,
                                                        srsName: 
(projstr=="EPSG:900913"&&  (lay.serverUrl.search(/arcgis/)>=0)) ? "EPSG:102113" 
: projstr
                                                });
                                                polySelectControl[i] = new 
OpenLayers.Control.DrawFeature(selectedLayer, OpenLayers.Handler.Polygon);
                                                
polySelectControl[i].events.register("featureadded", this, function(e){
                                                        clearData();
                                                        
wfsProtocol[combo.value].read({
                                                                filter: new 
OpenLayers.Filter.Spatial({
                                                                        type: 
OpenLayers.Filter.Spatial.INTERSECTS,
                                                                        value: 
e.feature.geometry
                                                                }),
                                                                callback: 
processSpatialQuery,
                                                                scope: strategy
                                                        });
                                                });
                                                
mapPanel.map.addControl(polySelectControl[i]);

And the second is:
                                                pointSelectControl[i] = new 
OpenLayers.Control.DrawFeature(selectedLayer, OpenLayers.Handler.Point);
                                                
pointSelectControl[i].events.register("featureadded", this, function(e){
                                                        var d = 
map.getExtent().getHeight() / 10000;
                                                        clearData();
                                                        
wfsProtocol[combo.value].read({
                                                                filter: new 
OpenLayers.Filter.Spatial({
                                                                        type: 
OpenLayers.Filter.Spatial.INTERSECTS,
                                                                        value: 
new 
OpenLayers.Bounds(e.feature.geometry.x-d,e.feature.geometry.y-d,e.feature.geometry.x+d,e.feature.geometry.y+d).toGeometry()
                                                                }),
                                                                callback: 
processSpatialQuery,
                                                                scope: strategy
                                                        });
                                                });
                                                
mapPanel.map.addControl(pointSelectControl[i]);

(The point control is uses the INTERSECTS filter around the point because the 
WFS server does not
support DWITHIN).

|

Can anyone see something that my eyes are missing.


-- 
Phil Scadden, Senior Scientist GNS Science Ltd 764 Cumberland St, 
Private Bag 1930, Dunedin, New Zealand Ph +64 3 4799663, fax +64 3 477 5232


Notice: This email and any attachments are confidential. If received in error 
please destroy and immediately notify us. Do not copy or disclose the contents.

_______________________________________________
Users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/openlayers-users

Reply via email to