Utilisation de l'opérateur spatial "DWithin"

Discussions autour des WebServices WMS / WFS / WPS de la CUB
Répondre
Atlas
Messages : 1
Enregistré le : 08 février 2012, 14:12

Utilisation de l'opérateur spatial "DWithin"

Message 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é ?
Sébastien Cart-Lamy
Équipe OpenData
Équipe OpenData
Messages : 352
Enregistré le : 23 juin 2011, 16:16

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

Message 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
Cub33
Messages : 1
Enregistré le : 17 juillet 2013, 12:25

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

Message 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 ?
Sébastien Cart-Lamy
Équipe OpenData
Équipe OpenData
Messages : 352
Enregistré le : 23 juin 2011, 16:16

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

Message 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
tomtom
Messages : 3
Enregistré le : 28 septembre 2014, 21:49

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

Message 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.
Sébastien Cart-Lamy
Équipe OpenData
Équipe OpenData
Messages : 352
Enregistré le : 23 juin 2011, 16:16

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

Message 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
Répondre