Voici une astuce qui vous permet d'ajouter des filtres à un flux WMS, directement dans son URL.
Dans ce tutoriel, nous entendons "urlWMS" sans sa partie "&request=GetCapabilities".
Par exemple, sur cette fiche de métadonnées :
Pour ajouter un filtre, il faut passer un paramètre "GET FILTER" du type :
| Syntaxe | urlWMS&FILTER=nom_couche:id_champ1=valeur1,valeur2,valeur3 |
|---|---|
| Exemple | urlWMS&FILTER=commerces:commune=rennes,brest,lorient |
| Description |
Dans la couche commerces, sont filtrées les valeurs 'rennes', 'brest' et 'lorient' contenues dans le champ "commune". Supposons que la couche commerces contienne des ponctuels de l'ensemble des commerces de Bretagne. On ne cherche ici à afficher que les ponctuels des 3 communes. La syntaxe ici agit comme un WHERE ... IN (...). |
Il est possible d'ajouter d'autres champs avec des conditions de filtres à la suite. Pour cela, il est nécessaire de les séparer par un point-virgule.
| Syntaxe | urlWMS&FILTER=nom_couche:id_champ1=valeur1,valeur2,valeur3;id_champ2=valeur3,valeur4 |
|---|---|
| Exemple | urlWMS&FILTER=commerces:commune='rennes','brest','lorient';activite='epicerie','superette' |
| Description |
Dans la couche commerces, sont filtrées les valeurs 'rennes', 'brest' et 'lorient' contenues dans le champ "commune", et qui correspondent également aux valeurs 'epicerie' et 'superette' dans le champ "activite". En plus de n'afficher que le ponctuel des commerces des 3 communes, on les filtre en fonction de leur activité pour ne garder que les épiceries et supérettes. La deuxième condition doit aussi être remplie. Le point-virgule agit comme un AND. |
Vous pouvez aussi appeler plusieurs couches dans la même URL en combinant plusieurs FILTER (&FILTER...).
| Syntaxe | urlWMS&FILTER=nom_couche:id_champ2=valeur3,valeur4&FILTER=nom_couche:id_champ3=valeur5 |
|---|---|
| Exemple | urlWMS&FILTER=commerces:activite=epicerie,superette&FILTER=departements:insee_reg='53' |
| Description |
On garde ici notre couche commerces, avec uniquement le filtre sur l'activité. Supposons que la couche "departements" contienne quant à elle les limites départementales françaises, on la filtre pour n'obtenir que les départements correspondant à la région n°53 (correspondant à la Bretagne), information contenue dans le champ "insee_reg". On obtiendra donc deux couches via le flux WMS : les commerces et les départements, filtrés comme indiqué. |
Dans le cas où plusieurs FILTER seraient paramétrés pour la même couche, il y aurait conjonction (AND) des différents filtres.
Quelques éléments sont à avoir en tête lorsque vous construisez votre URL :
Le nom de la couche à utiliser est son nom en base postgres.
Voici deux méthodes pour retrouver ce nom, depuis l'interface PRODIGE.
