Filtrer les résultats en fonction d'un point

Discussions autour des WebServices WMS / WFS / WPS de la CUB
Répondre
drank
Messages : 3
Enregistré le : 22 juin 2021, 16:53

Filtrer les résultats en fonction d'un point

Message par drank »

Bonjour,

Je cherche à appeler les webservices geoson dispo ici https://data.bordeaux-metropole.fr/geoj ... typename2_ afin d'afficher les vcubs autour d'un point donné.

Il semble y avoir une coquille dans le Swagger, la doc du filter n'est pas la même suivant si on se base sur ce qui est écrit et ce qui est à dispo dans l'exemple : "$geoWithin" et "geomCenter".

En cherchant un peu j'ai l'impression que je dois utiliser "geomCenter" mais dans ce cas ca me retourne :

Code : Tout sélectionner

{
    "error": "Filtre invalide : geomCenter : un seul opérateur est autorisé"
}
J'ai testé quelques combinaisons mais je n'arrive pas à trouver la solution. J'ai aussi testé avec le "geomBBox" et ca marche mais c'est pas vraiment ce que je cherche.

Pouvez vous mettre à jours la doc que je comprenne comment marche ce filtre ?

Actuellement j'utilise la requête suivante :

Code : Tout sélectionner

curl --location -g --request GET 'https://data.bordeaux-metropole.fr/geojson?key=MA_CLEF&typename=ci_vcub_p&filter={%22geomCenter%22:{%22$radius%22:10,%22$center%22:[-0.51234,44.12345]}}'
Merci d'avance.

Dimitri
Sébastien Cart-Lamy
Équipe OpenData
Équipe OpenData
Messages : 352
Enregistré le : 23 juin 2011, 16:16

Re: Filtrer les résultats en fonction d'un point

Message par Sébastien Cart-Lamy »

Bonjour Dimitri,
La doc est tout à fait correcte.

Pour filtrer un attribut quelconque, par exemple prendre toutes les valeurs > 42, on utilise la syntaxe suivante :
filter={"nbplaces":{"$gt":42}}

C'est la même chose pour faire un filtre spatial, qui sera à appliquer à l'attribut geom :
filter={"geom":{"$geoWithin":{"$radius":10,"$center":[-0.51234,44.12345]}}}
drank
Messages : 3
Enregistré le : 22 juin 2021, 16:53

Re: Filtrer les résultats en fonction d'un point

Message par drank »

Bonjour,

Déjà merci pour la rapidité de réponse. :)

En effet je n'avais pas vu le "champ GEOM uniquement".

La requête fonctionne du coup merci beaucoup. :)
drank
Messages : 3
Enregistré le : 22 juin 2021, 16:53

Re: Filtrer les résultats en fonction d'un point

Message par drank »

Et juste au cas où si quelqu'un repasse par là, la requête qui fonctionne est

Code : Tout sélectionner

curl --location -g --request GET 'https://data.bordeaux-metropole.fr/geojson?key=MA_CLEF&typename=ci_vcub_p&filter={%22geom%22:{%22$geoWithin%22:{%22$radius%22:1000,%22$center%22:[-0.5705890,%2044.814476]}}}'
Répondre