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
