#1 Wed 27 March 2013 15:47
- jyd
- Juste Inscrit !
- Date d'inscription: 27 Mar 2013
- Messages: 2
requête WFS avec filter
Bonjour,
Je suis sous geoserver 2.2.5.
Je travaille actuellement sur une requête WFS ayant pour objectif de filtrer les communes selon les polygones qui sont définis sur cette couche.
Ma requête sans le filter fonctionne bien (liste de toutes les communes).
Dès que je rajoute le paramètre filter, la requête semble ne rien croiser et me retourne :
<gml:boundedBy><gml:null>unknown</gml:null></gml:boundedBy></wfs:FeatureCollection>
Code JS :
Code:
var filter = '<Filter xmlns="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml">'; for (o = 0; o < features.length; o++) { var gml = new OpenLayers.Format.GML(); var polygonGML = gml.buildGeometry.polygon.apply(gml, [ features[o].geometry ]); var plgGMLString = (new XMLSerializer()).serializeToString(polygonGML); console.log(plgGMLString); filter += '<And><Intersects>' + '<PropertyName>GEOMETRY1</PropertyName>' + plgGMLString + '</Intersects></And>'; } filter += '</Filter>'; var params = { REQUEST : "GetFeature", SERVICE : "WFS", VERSION : "1.0.0", TYPENAME : "COMMUNE", PROPERTYNAME : "NOM", SRSNAME : "EPSG:900913", FILTER : filter, }; request = OpenLayers.Request.GET({ url : wfs_url, async : false, params : params });
ce qui donne la Requête HTTP :
http://localhost/geoserver/wfs?REQUEST=GetFeature&SERVICE=WFS&VERSION=1.0.0&TYPENAME=COMMUNE&PROPERTYNAME=NOM&SRSNAME=EPSG:900913&FILTER=<Filter xmlns="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"><And><Intersects><PropertyName>GEOMETRY1</PropertyName><gml:Polygon xmlns:gml="http://www.opengis.net/gml"><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates decimal="." cs="," ts=" ">586498.07980432,5422133.09619854 585794.46728161,5423973.216754 585871.94192111,5425464.21944235 585997.58411525,5425946.05996934 583932.64990048,5426394.44255244 586498.07980432,5422133.09619854</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></Intersects></And></Filter>
J'ai peut être oublié quelque chose ? ou fait une erreur quelque part ?
Merci par avance de votre aide.
Hors ligne
#2 Wed 27 March 2013 16:07
Re: requête WFS avec filter
Bonjour,
Une première piste : la longueur de l'url a des limitations (plus courte sur ie d'ailleurs). Il est possible que ta requête soit trop longue.
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#3 Wed 27 March 2013 16:43
- jyd
- Juste Inscrit !
- Date d'inscription: 27 Mar 2013
- Messages: 2
Re: requête WFS avec filter
en effet.. j avais oublié cette longueur d'URL
2083 caractère sous IE (http://support.microsoft.com/kb/208427/fr)
Je suis à 699
Hors ligne
#4 Wed 27 March 2013 16:52
Re: requête WFS avec filter
ah ben c'est bon tu as de la marge !
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne