Page 1 sur 1

Utilisation de l'opérateur spatial "DWithin"

Posté : 08 février 2012, 14:29
par Atlas
Bonjour, j'ai un problème avec les requêtes WFS : je cherche à limiter les résultats des requêtes à un cercle géographique, en précisant un point (latitude,longitude) et une distance (rayon du cercle en mètre). Grâce à la requête "GetCapabilities", je sais que le serveur dispose de la fonctionnalité "DWithin". D'après mes recherches, cette fonctionnalité correspond parfaitement à mon problème, mais je n'arrive pas à l'utiliser dans mes requêtes http. Pourriez-vous m'indiquer la syntaxe exacte de cette fonctionnalité ?

Re: Utilisation de l'opérateur spatial "DWithin"

Posté : 08 février 2012, 14:50
par Sébastien Cart-Lamy
J'ai trouvé des infos sur le paramètre FILTER, où vous pouvez mettre un filtre spatial. Par exemple pour les objets dans un rectangle, il faut rajouter dans l'URL :
&FILTER=<Filter><BBOX><PropertyName>geometry</PropertyName><gml:Box><gml:coordinates>1400000,4200000 1402000,4202000</gml:coordinates></gml:Box></BBOX></Filter>

Avec ici un carré de 2km de côté (en projection RGF93/CC45 qui est une déclinaison de la projection nationale et projection native de nos données). Il faut évidemment adapter les coordonnées au système de projection que vous utilisez.

Et comme Google est notre ami, j'ai trouvé la variante avec DWithin :
&FILTER=<Filter><DWithin><PropertyName>geometry</PropertyName><gml:Point><gml:coordinates>1400000,4200000</gml:coordinates></gml:Point><Distance units='m'>1000</Distance></DWithin></Filter>
Qui prend tout ce qui est dans un rayon d'1km autour du point

Re: Utilisation de l'opérateur spatial "DWithin"

Posté : 17 juillet 2013, 13:39
par Cub33
Bonjour,

Je cherche moi aussi à utiliser le filtre DWithin mais j'ai un soucis avec les coordonnées du point central.

En effet l'URL suivante fonctionne parfaitement :
http://data.lacub.fr/wfs?key=XXXXXXXXXX ... ,4187573.7[/b]</gml:coordinates></gml:Point><Distance units='m'>700</Distance></DWithin></Filter>

Sauf que dans cet exemple les coordonnées du centre du cercle sont exprimées en projection RGF93/CC45.
Or, j'ai besoin de saisir les coordonnées de ce centre avec une projection différente (celle de Google Maps)

Mais si dans l'URL je remplace 1416221.9,4187573.7 par 44.849541,-0.578957 (coordonnées de Bordeaux dans Google Maps)
alors le filtre ne fonctionne plus et l'URL ne renvoie rien du tout.

J'ai bien tenté d'ajouter le paramètre suivant :
http://data.lacub.fr/wfs?key=XXXXXXXXXX ... <gml:Point srsName="EPSG:4326"><gml:coordinates>44.849541,-0.578957</gml:coordinates></gml:Point><Distance units='m'>700</Distance></DWithin></Filter>

Mais ça ne fonctionne toujours pas.

Pouvez-vous m'indiquer comment utiliser correctement ces coordonnées ?

Re: Utilisation de l'opérateur spatial "DWithin"

Posté : 17 juillet 2013, 13:50
par Sébastien Cart-Lamy
Bonjour,
Le serveur utilise la projection de la base (RGF93/CC45) pour appliquer les filtres WFS. La reprojection des paramètres de filter n'est donc pas supportée à l'heure actuelle.

Vous pouvez ajouter un ticket sur le tracker pour le serveur WFS (Sélectionner dans la liste déroulante logiciel "WebService OGC WFS") : http://data.lacub.fr/apicub-tracker

Re: Utilisation de l'opérateur spatial "DWithin"

Posté : 28 septembre 2014, 22:22
par tomtom
Bonjour,

Je me permet de faire remonter ce sujet.

Je suis confronté au même problème que atlas. J'aimerai pouvoir sélectionner les stations VCUB à proximité d'un point géographique.

J'arrive à exécuter cette requête :
http://data.lacub.fr/wfs?key=########## ... ><Distance units='m'>700</Distance></DWithin></Filter>

Or j'aimerai pouvoir utiliser des latitudes et longitudes dans mon filtre, j'ai essayé avec la méthode indiqué ci-dessus mais ça ne marche pas :(
http://data.lacub.fr/wfs?key=########## ... <gml:Point srsName="EPSG:4326"><gml:coordinates>44.858490,-0.569660</gml:coordinates></gml:Point><Distance units='m'>700</Distance></DWithin></Filter>

J'ai aussi testé ceci mais toujours rien...
http://data.lacub.fr/wfs?key=########## ... 5.85,-0.60

Merci d'avance pour vos réponses.

Re: Utilisation de l'opérateur spatial "DWithin"

Posté : 29 septembre 2014, 08:42
par Sébastien Cart-Lamy
Bonjour,

La réponse est dans mon message précédent : vous utilisez des coordonnées qui sont en WGS84, or le filtre spatial du WFS ne supporte à l'heure actuelle que le Lambert93/CC45