Utilisation de l'opérateur spatial "DWithin"
Utilisation de l'opérateur spatial "DWithin"
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é ?
-
- Équipe OpenData
- Messages : 354
- Enregistré le : 23 juin 2011, 16:16
Re: Utilisation de l'opérateur spatial "DWithin"
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
&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"
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 ?
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 ?
-
- Équipe OpenData
- Messages : 354
- Enregistré le : 23 juin 2011, 16:16
Re: Utilisation de l'opérateur spatial "DWithin"
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
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"
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.
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.
-
- Équipe OpenData
- Messages : 354
- Enregistré le : 23 juin 2011, 16:16
Re: Utilisation de l'opérateur spatial "DWithin"
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
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