Aller au contenu

La symbologie vecteur#

Les expressions peuvent être utilisées dans QGIS pour rendre plus dynamique la symbologie des couches vecteurs:

  • calcul via une expression pour classer les entités au lieu d'utiliser un champ.
  • filtrer quelles entités doivent être rendues par telle symbologie via des filtres
  • contrôler toutes les propriétés via une expression (échelle, couleur, taille, etc.)
  • créer des géométries pour l'affichage (tampons, lignes entre objets)

Tip

Vous pouvez consulter le chapitre (Symbologie vectorielle)[https://docs.3liz.org/formation-qgis/symbologie-vecteur/) de notre formation QGIS pour un rappel sur les règles de symbologie dans QGIS.

La symbologie graduée et catégorisée#

Dans l'onglet symbologie, au lieu d'appeler un champ de la couche à représenter, il est tout à fait possible d'utiliser une expression.

Quelques exemples :

  • Faire une classification sur une densité de population sans avoir besoin d'avoir un champ (virtuel ou non): "POPULATION" / ($area / 1000000)
  • Faire une classification sur l'ensemble des valeurs possibles prises par 2 champs : concat("CATEGORIE", ' - ', "IMPORTANCE")

Symbole gradué par densité

La symbologie par ensemble de règles#

Ce type de symbologie est très utile si vous souhaitez contrôler quels symboles sont rendus en fonction des entités, ou d'autres caractéristiques (échelles)

Par exemple, on peut choisir de rendre les polygones des communes comme

  • des points à petite échelle : $scale >= 500000
  • des polygones à grande échelle : $scale < 500000

Pour cela, il faut ouvrir les propriétés de la couche, dans l'onglet Symbologie et choisir le mode `Ensemble de règles

`

Contrôle les symboles à l'aide d'une expression#

Quasiment toutes les propriétés de la symbologie (et des étiquettes) peuvent être contrôlées à l'aide d'expressions.

Pour cela, on doit activer l'Epsilon à la place du symbole suivant

Il est ainsi possible de choisir

  • la taille d'un symbole,
  • la couleur d'une bordure,
  • l'échelle d'affichage,
  • le fait que la donnée soit affichée ou non,
  • modifier la symbologie ou les étiquettes des objets sélectionnés :
    1
    2
    3
    4
    CASE
      WHEN is_selected() THEN 'blue'
      ELSE 'red'
    END
    
  • la rotation des symboles à partir d'un champ (Ex: angle de prise de vue d'une photographie)

Un exemple amusant :

Rotation par expression

Danger

Attention à ne pas utiliser les expressions alors que des moyens plus simples et plus performants existent. Par exemple pour faire varier une couleur sur 5 classes: utiliser la symbologie catégorisée.

Créer des géométries dynamiques#

Voir l'exemple sur la Calculatrice pour la création de géométries à partir de champs de la couche

Sinon, on peut aussi créer dynamiquement des géométries, avec le générateur de géométries par exemple :

Configuration :

Générateur de géométrie (configuration)

Le résultat :

Générateur de géométrie (résultat)

Tip

Dans l'expression, on pourrait très bien faire varier la distance tampon en fonction de la valeur d'un champ ou d'un calcul

On peut aussi créer des lignes entre objets, avec la fonction make_line.

Quelques exemples d'expression#

Certains utilisateurs sont assez créatifs et inventent de nouvelles utilisations des expressions :