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é ?

#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@texte-a-enlever.gmail.com) et j'essayerai de le reproduire avec la version de Mapserver 5.6 (et trunk)

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


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

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

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

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

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

Re: [Mapserver] WFS Filter Encoding

Dans ton exemple précédent tu n'as que 2 sommets wink 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

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

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 wink

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

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

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

 

Pied de page des forums

Powered by FluxBB