Passer des filtres directement dans l'URL d'un flux WMS

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 :

Construire l'URL

Ajouter un filtre dans l'URL

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 (...).

 

Ajouter plusieurs conditions

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.

 

Filtrer plusieurs couches

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.

Règles et contraintes

Quelques éléments sont à avoir en tête lorsque vous construisez votre URL :

  • Les valeurs en format texte doivent être encadrées par de simple quotes (').
  • La présence de séparateur ('=', ':', ',' ou ';') dans les valeurs n'est pas gérée.

 

Où trouver le nom de la couche ?

Le nom de la couche à utiliser est son nom en base postgres.

Voici deux méthodes pour retrouver ce nom, depuis l'interface PRODIGE.

1. Depuis la fiche de métadonnées

  • Sur votre fiche de métadonnées, choisissez l'outil d'import des données.
  • Le tableau présenté dans l'interface d'import vous indique le nom de la table actuelle.
  • Pour accéder à cette méthode, vous devez avoir les droits adaptés.

2. Depuis le composeur cartographique

  • Dans le composeur cartographique, cliquez sur le nom de votre couche pour accéder à ses paramètres.
  • Dans l'onglet "Général", sous le cadre "Couche sélectionnée", vous trouvererz le nom de votre "Table / vue".