banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

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 sad

Hors ligne

 

#4 Wed 27 March 2013 16:52

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

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

 

Pied de page des forums

Powered by FluxBB