Étiquetage conditionnel

Il est possible de soumettre l'affichage des étiquettes à la vérification de conditions relatives, par exemple, à la valeur de certains champs.

Pour cela, on peut utiliser, dans la calculatrice d'expressions les opérateurs logiques :

CASE WHEN ... THEN ... ELSE ... END.

La syntaxe à appliquer est la suivante :

1
CASE
2
WHEN condition 1 THEN action 1
3
[WHEN condition 2 THEN action 2]
4
[ELSE action 3]
5
END

Action 1, action 2 décrivent les étiquettes à mettre en place lorsque les conditions 1 ou 2 sont vérifiées. Si aucune de ces conditions n'est vérifiée, l'action 3 décrit l'étiquette qui est mise en place. La deuxième condition WHEN et la condition ELSE sont facultatives. Si aucune condition n'est vérifiée, il n'y aura pas d'étiquetage.

Par exemple, si l'on veut limiter l'affichage des noms de communes à celles dont la population est supérieure à 1000 habitants, l'expression à saisir est :

1
CASE 
2
WHEN "POPUL" >= 1000
3
 THEN NOM
4
 END

En reprenant l'exemple de l'étiquetage multilignes précédent, pour limiter l'affichage des étiquettes aux communes dont la population est supérieure à 500 habitants ET dont la superficie dépasse 2000 hectares, l'expression à saisir est la suivante :

1
CASE
2
WHEN "POPULATION" >= 500 AND "SUPERFICIE" >= 2000 
3
THEN
4
'Nom : ' || "NOM_COMM" || '\n' ||
5
'Population : ' || "POPULATION" || ' habitants' || '\n' ||
6
'Surface : ' || "SUPERFICIE" || ' hectares' || '\n' ||
7
'Densité : ' || ( POPULATION * 100 / SUPERFICIE ) || ' habitants au km²'
8
ELSE
9
'pas assez grand,' || '\n' || 'mon fils !'
10
END
résultat étiquetage conditionnel

MéthodeComment afficher l'apostrophe dans une chaîne de caractères

L'apostrophe sert à délimiter les chaînes de caractères à afficher dans une étiquette : 'Surface', 'Population', etc.

Mais comment fait-on pour afficher une apostrophe dans cette chaîne sans qu'elle soit considérée comme un délimiteur de texte. Deux solutions :

  • répéter l'apostrophe : 'Plan d''eau' pour afficher Plan d'eau (attention, il s'agit de deux apostrophes '' et non pas d'un guillemet ") ;

  • utiliser l'anti-slash \ : 'Plan d\'eau' donnera également Plan d'eau.

Complément

Le moteur d’étiquetage de QGIS est très puissant et devrait permettre d'éviter le plus souvent d'utiliser un placement manuel.

On pourra en introduction consulter ce site...