#1 Thu 01 April 2010 20:04
- tiolebucheron
- Participant actif
- Lieu: Rouen
- Date d'inscription: 26 Mar 2006
- Messages: 147
[Mapserver] WFS Filter Encoding
Bonjour
Je cherche à créer dynamiquement des url pour interroger différents serveurs WFZ.
Il faudrait faire un intersect avec un polygone et un within avec un point. Peut-on utiliser via une SEULE url ces deux filtres?
J'ai essayer celahttp://carto.ecologie.gouv.fr/MEDD/wms. … /Filter%3E
Cela retourne LES VALLÉES DE LA VALMONT ET DE LA GANZEVILLE (znieffII de deuxième génération)
Si je fais les deux requête séparément
Point http://carto.ecologie.gouv.fr/MEDD/wms.%20…%20789,289552%202588789,289552%202588789,389552%202488789,389552%202488789,289552</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></Intersect></Filter>">
Hors ligne
#2 Thu 08 April 2010 15:54
- tiolebucheron
- Participant actif
- Lieu: Rouen
- Date d'inscription: 26 Mar 2006
- Messages: 147
Re: [Mapserver] WFS Filter Encoding
Bonjour
Je me permets de relancer ce sujet. J'essaye de faire un Fitlter encoding dans un premier temps avec plusieurs points:
1/ Mettre 2 objets gml/point dans l'url. Res: il me ressort uniquement que un résultat au lieu de 2 http://carto.ecologie.gouv.fr/MEDD/wms. … /Filter%3E
2/ J'ai essayé avec le mulpoint et des pointmember, le filtre ne marche pas http://carto.ecologie.gouv.fr/MEDD/wms.%20…%20t;Distance%20units=m>1</Distance></DWithin></Filter>">
Hors ligne
#3 Thu 08 April 2010 16:26
- assefa
- Participant occasionnel
- Date d'inscription: 7 Nov 2008
- Messages: 12
Re: [Mapserver] WFS Filter Encoding
Dwithin est defini par Distance(A,B) < D (ce bug discute de cette definition: http://trac.osgeo.org/mapserver/ticket/2564)
Quelle version de MapServer utilisez-vous? S'il est possible de preparer un package (map/data/url) qui peut reporduire le problem, vous pouvez soit le mettre dans le trac de Mapserver ou encore me l'envoyer directement (assefay@) et j'essayerai de le reproduire avec la version de Mapserver 5.6 (et trunk) gmail.com
Hors ligne
#4 Thu 08 April 2010 16:54
- tiolebucheron
- Participant actif
- Lieu: Rouen
- Date d'inscription: 26 Mar 2006
- Messages: 147
Re: [Mapserver] WFS Filter Encoding
Code:
sudo /usr/lib/cgi-bin/mapserv -v MapServer version 5.6.3 OUTPUT=GIF OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_CLIENT SUPPORTS=GEOS INPUT=TIFF INPUT =EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE
J'interroge un serveur qui n'est pas local (carmen ancienne version)
J'ai mis les trois url dans un fichier txt.
Merci de votre aide
Tio
Hors ligne
#5 Fri 09 April 2010 17:24
- assefa
- Participant occasionnel
- Date d'inscription: 7 Nov 2008
- Messages: 12
Re: [Mapserver] WFS Filter Encoding
En assumant que les 2 requetes individulles sont correctes, vous pouvez combiner les 2 requetes, en utilisant le Or ou le And:
Code:
http://carto.ecologie.gouv.fr/MEDD/wms.php?service_idx=17W&map=sacarte.map&VERSION=1.0.0&SERVICE=WFS& REQUEST=GetFeature&TYPENAME=znieff_de_type_II_en_Haute_Normandie&FILTER=<Filter><Or><DWithin> <PropertyName>Geometry</PropertyName><gml:Point><gml:coordinates>461450,2530950</gml:coordinates></gml:Point> <Distance units=m>1000</Distance></DWithin><Intersect><PropertyName>Geometry</PropertyName><gml:Polygon> <gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>2488789,289552 2588789,289552 2588789,389552 2488789,389552 2488789,289552</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></Intersect></Or></Filter>
En ce qui concerne le requetes ave multi-point, elles ne soint simplement pas supportes par MapServer en ce momenet (http://trac.osgeo.org/mapserver/ticket/3427), mais je crois que vois pouvez utiliser juste le Point pour faire votre requete
[Edit Modérateur] pour une meilleure lisibilité j'ai mis l'url entre balise CODE et rajouter des retours à la ligne.
Hors ligne
#6 Fri 09 April 2010 18:01
- tiolebucheron
- Participant actif
- Lieu: Rouen
- Date d'inscription: 26 Mar 2006
- Messages: 147
Re: [Mapserver] WFS Filter Encoding
Merci, je n'avais pas vu la fonction OR.
Pour le multipoint, en effet, je n'ai besoin que de point. Pour les multipolygons, je vais les convertir en polygon.
Merci
Tio
Résolu
Hors ligne
#7 Mon 12 April 2010 16:16
- tiolebucheron
- Participant actif
- Lieu: Rouen
- Date d'inscription: 26 Mar 2006
- Messages: 147
Re: [Mapserver] WFS Filter Encoding
Bonjour
J'ai un problème avec l'intersection avec un polygon. Par exemple je prendPOLYGON((455575 2507750,456775 2496950,442375 2503550,455575 2507750))
et j'essaye avec l'url
Code:
http://carto.ecologie.gouv.fr/MEDD/wms.php?service_idx=17W&map=sacarte.map&VERSION=1.0.0&SERVICE=WFS&REQUEST=GetFeature&TYPENAME=znieff_de_type_II_en_Haute_Normandie&FILTER=<Filter><Intersect><PropertyName>Geometry</PropertyName><gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>2507750,456775 2496950,442375 2503550,455575</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></Intersect></Filter>
Il me retourne "missing."
Il ne devrait. Je me surement trompé quelque part pour l'application de cette commande.
Merci de votre aide Tio
Hors ligne
#8 Mon 12 April 2010 17:10
Re: [Mapserver] WFS Filter Encoding
Bizarre comme Polygone non ?
2507750,456775 2496950,442375 2503550,455575
Normalement le dernier point et le premier point doive au minimum être le même, le polygone doit avoir plus de 3 sommets.
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
#9 Mon 12 April 2010 18:28
- tiolebucheron
- Participant actif
- Lieu: Rouen
- Date d'inscription: 26 Mar 2006
- Messages: 147
Re: [Mapserver] WFS Filter Encoding
Bonjour Yves,
Je me suis basé sur cet exemple :
Code:
http://www2.dmsolutions.ca/cgi-bin/mswfs_filter?&VERSION=1.0.0&SERVICE=WFS&REQUEST=GetFeature&TYPENAME=popplace&Filter=<Filter> <Intersect><PropertyName>Geometry</PropertyName><gml:Polygon><gml:outerBoundaryIs><gml:LinearRing> <gml:coordinates>2488789,289552 2588789,289552 2588789,389552 2488789,389552 2488789,289552</gml:coordinates> </gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></Intersect></Filter>
Le point de la ligne se retrouve au début et à la fin. X,XY,XY,XY,Y
Si je mets les coordonnées du polygone exact http://carto.ecologie.gouv.fr/MEDD/wms. … /Filter%3E Je n'obtiens pas les résultats voulut
Hors ligne
#10 Mon 12 April 2010 20:06
Re: [Mapserver] WFS Filter Encoding
Dans ton exemple précédent tu n'as que 2 sommets attention le 1er et dernier sommet sont identique ils ne comptent que pour 1 !
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
#11 Thu 15 April 2010 10:09
- tiolebucheron
- Participant actif
- Lieu: Rouen
- Date d'inscription: 26 Mar 2006
- Messages: 147
Re: [Mapserver] WFS Filter Encoding
Bonjour
J'ai trouvé le problème pour un polygone à 5 sommets map.getLayersByName('outline')[0].features[i].geometry) me retourne POLYGON((489575 2507525,488875 2509625,497175 2511425,497325 2507525,496625 2504375,489575 2507525)) avec 6 points.
Il faut enlever le premier point ou le dernier qui sont identiques pour transformer le feature en ligne qui servira à la requête WMS
Merci pour votre aide.
Tio
Je me suis précipité.
POLYGON((509050 2496550,509950 2500650,504250 2501550,506150 2498550,509050 2496550))
http://carto.ecologie.gouv.fr/MEDD/wms. … >509950 2500650,504250 2501550,506150 2498550,509050 2496550</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></Intersect></Filter>
Ne fonctionne toujours. il me retourne toujours missing.
A l'aide.
Tio
Dernière modification par tiolebucheron (Thu 15 April 2010 10:26)
Hors ligne
#12 Thu 15 April 2010 11:36
Re: [Mapserver] WFS Filter Encoding
Bonjour,
Vérifie que ton gml dans ta requête FE est correcte : http://www.georss.org/gml ou lire la spec FE et GML
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
#13 Thu 15 April 2010 15:59
- assefa
- Participant occasionnel
- Date d'inscription: 7 Nov 2008
- Messages: 12
Re: [Mapserver] WFS Filter Encoding
Les requetes suivantes fonctionnent:
Code:
http://carto.ecologie.gouv.fr/MEDD/wms.php?service_idx=17W&map=sacarte.map&VERSION=1.0.0&SERVICE=WFS&REQUEST=GetFeature&TYPENAME=znieff_de_type_II_en_Haute_Normandie&Filter=<Filter><Intersect> <PropertyName>Geometry</PropertyName><gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>509950,2496550 504250,2500650 506150,2501550 509050,2498550</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></Intersect></Filter>
or encore
Code:
http://carto.ecologie.gouv.fr/MEDD/wms.php?service_idx=17W&map=sacarte.map&VERSION=1.0.0&SERVICE=WFS&REQUEST=GetFeature&TYPENAME=znieff_de_type_II_en_Haute_Normandie&FILTER=<Filter><Intersect><PropertyName>Geometry</PropertyName><gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>509950,2500650 504250,2501550 506150,2498550 509050,2496550</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></Intersect></Filter>
Hors ligne
#14 Thu 15 April 2010 16:06
Re: [Mapserver] WFS Filter Encoding
Assefa, Tio,
Ce serait donc l'emplacement des ',' qui ne seraient pas correcte. Dans une requête FE les sommets sont séparés par des espaces et les coordonnées par des "," ? Il semble que cela soit le contraire dans OpenLayers.
Merci,
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
#15 Thu 15 April 2010 16:32
- tiolebucheron
- Participant actif
- Lieu: Rouen
- Date d'inscription: 26 Mar 2006
- Messages: 147
Re: [Mapserver] WFS Filter Encoding
Merci Yves et Assefa
Pas évidente l'erreur, cela devrait être tout simple avec un replace.
Code:
$aPoly = str_replace(' ',';',$aPoly); $aPoly = str_replace(',',' ',$aPoly); $aPoly = str_replace(';',',',$aPoly);
Merci encore,
Ps: Assefa> J'ai bien noté l'info merci d'avoir répondu
Dernière modification par tiolebucheron (Thu 15 April 2010 16:43)
Hors ligne
#16 Thu 15 April 2010 17:13
- assefa
- Participant occasionnel
- Date d'inscription: 7 Nov 2008
- Messages: 12
Re: [Mapserver] WFS Filter Encoding
Je n'ai pas les specs de GML en face de moi mais pour les meme versions de GML OpenLayers et Mapserver devraient normalement utiliser la meme syntaxe (di moins je l'espere). S'il y a une inconsistence, vous pouvex soit l'entrer en tant que bug de Mapserver ou Openlayers
Ps: Salut Yves: de rien.
Hors ligne