La fonctionnalité des Expressions est disponible dans de nombreuses composantes de QGIS. Elle peut être accédée en utilisant le Constructeur d’Expression, Sélectionner à l’aide d’une Expression..., l’option de couche de symbole Générateur de géometrie, la Calculatrice de champ ou l’outil de Valeurs définies par les données. Basée sur les données de la couche et des fonctions intégrées ou définies par l’utilisateur, elle offre un moyen puissant de manipuler des valeurs d’attribut, des géométries et des variables pour modifier de manière dynamique le style des géométries, le contenu ou la position des étiquettes, la valeur représentée dans les diagrammes, la hauteur d’un objet du composeur, de sélectionner certaines entités, de créer des champs virtuels...
Quelques exemples :
A partir de la Calculatrice de champ, calculer le champ “pop_density” en utilisant les champs “total_pop” et “area_km2”:
"total_pop" / "area_km2"
Mettre à jour le champ “density_level” avec les catégories basées sur les valeurs de “pop_density”:
CASE WHEN "pop_density" < 50 THEN 'Low population density'
WHEN "pop_density" >= 50 and "pop_density" < 150 THEN 'Medium population density'
WHEN "pop_density" >= 150 THEN 'High population density'
END
Appliquer un style catégorisé à l’ensemble des entités selon que le prix moyen des maison est plus faible ou plus grand que 10000€ par mètre carré:
"price_m2" > 10000
En utilisant l’outil “Sélectionner à l’aide d’une expression...”, sélectionner toutes les entités qui représentent des surfaces avec une “grande densité de population” et dont le prix moyen des maisons est supérieur à 10000€ par mètre carré:
"density_level" = 'High population density' and "price_m2" > 10000
De la même manière, l’expression précédente poeut également être employée pour définir les entités qui doivent être étiquettées ou affichées sur la carte. L’utilisation des expressions vous offre de nombreuses possibilités.
La fonctionnalité des Expressions vous offre accès à:
L’onglet Expression qui liste les fonctions disponibles.
L’onglet Éditeur de fonction qui facilite la création de fonctions personnalisées utilisables dans les expressions.
Figure Expression 1:
L’onglet Expression contient les fonctions ainsi que les champs de la couche et ses valeurs. Il contient les contrôles permettant de:
saisir des expressions en utilisant des fonctions et/ou des champs. Un aperçu du résultat de l’expression est affiché en bas de la boîte de dialogue.
sélectionner la fonction appropriée à partir de la liste. Une boîte de recherche est disponible pour filtrer la liste et trouver rapidement une fonction particulière ou un champ. Double-cliquer sur le nom d’un objet l’ajoute au texte de l’expression en cours de rédaction.
afficher l’aide de chaque fonction sélectionnée. Lorsqu’un champ est sélectionné, ce contrôle affiche un échantillon de ses valeurs. Double-cliquer sur une valeur l’ajoute dans le texte de l’expression.
Pour vous aider à trouver rapidement une fonction, elles sont organisées en groupes. Dans les Opérateurs, vous trouverez les opérateurs mathématiques. Dans Math, les fonctions mathématiques. Dans Conversions, les fonctions de conversion d’un type à un autre. Dans Chaîne, les fonctions concernant les chaînes de caractères, de la même manière le groupe Date et Heure gère les données de date et de temps. Dans le groupe Géométrie, vous trouverez les fonctions concernant les objets géométriques. Dans le groupe Enregistrement, vous pourrez ajouter une numérotation à votre jeu de données alors que le groupe Champs et Valeurs vous aidera à voir tous les attributs de la table attributaire. Le groupe Custom liste les fonctions créées ou importées par l’utilisateur. Il existe de nombreux autres groupes listés ci-dessous.
Ce groupe contient des opérateurs (ex: +, -, *). Merci de noter que pour la majorité des fonctions mathématiques ci-dessous, si l’une des entrées est NULL alors le résultat vaudra NULL.
Fonction |
Description |
---|---|
a + b | Addition de deux valeurs (a plus b) |
a - b | Soustraction de deux valeurs (a moins b) |
a * b | Multiplication de deux valeurs ( a multiplié par b) |
a / b | Division de deux valeurs ( a divisé par b) |
a % b | Reste de la division de a par b (par ex. 7 % 2 = 1 car 2 est présent trois fois dans 7 et il reste 1) |
a ^ b | Puissance de deux valeurs (par ex. 2^2=4 ou 2^3=8) |
a < b | Compare deux valeurs et renvoie 1 si la valeur de gauche est moins grande que la valeur de droite (a inférieur à b) |
a <= b | Compare deux valeurs et renvoie 1 si la valeur de gauche est moins grande ou égale à la valeur de droite |
a <> b | Compare deux valeurs et renvoie 1 si elle ne sont pas égales |
a = b | Compare deux valeurs et renvoie 1 si elles sont égales |
a != b | Compare deux valeurs et renvoie 1 si elle ne sont pas égales |
a > b | Compare deux valeurs et renvoie 1 si la valeur de gauche est plus grande que la valeur de droite (a supérieur à b) |
a >= b | Compare deux valeurs et renvoie 1 si la valeur de gauche est plus grande ou égale à la valeur de droite |
a ~ b | Teste si a correspond à l’expression régulière b |
|| | Fusionne deux valeurs ensemble dans une chaîne de caractères. Si l’une des valeurs vaut NULL, le résultat sera NULL. |
‘\n’ | Insert un retour à la ligne dans une chaîne de caractère |
LIKE | Renvoie 1 si le premier paramètre correspond au motif défini |
ILIKE | Renvoie 1 si le premier paramètre correspond au motif fourni de manière non sensible à la casse (ILIKE peut être utilisé à la place d’LIKE pour rendre la correspondance sensible à la casse) |
a IS b | Teste si deux valeurs sont identiques. Renvoie 1 si a est identique à b |
a OR b | Renvoie 1 lorsque la condition a ou b est vraie |
a AND b | Renvoie 1 lorsque la condition a et b est vraie |
NOT | Inverse une condition |
nom de colonne “nom de colonne” |
Valeur de la colonne “nom de la colonne”. Attention à ne pas confondre avec les guillemets simples, voir ci-dessous |
‘texte’ |
Une chaîne de caractère. Attention à ne pas confondre avec les guillemets doubles, voir ci-dessus |
NULL | valeur nulle |
a IS NULL | a n’a pas de valeur |
a IS NOT NULL | a a une valeur |
a IN (valeur[,valeur]) |
a fait partie des valeurs listées |
a NOT IN (valeur[,valeur]) |
a ne fait pas partie des valeurs listées |
Quelques exemples :
Concatène une chaîne et une valeur depuis un nom de colonne:
'My feature''s id is: ' || "gid"
Teste si la “description” du champ d’attribut commence avec la chaîne ‘Hello’ dans la valeur (notez la position du caractère %):
"description" LIKE 'Hello%'
Ce groupe contient des fonctions permettant de gérer des conditions dans les expressions.
Fonction |
Description |
---|---|
CASE WHEN ... THEN ... END | Évalue une expression et renvoie un résultat si vrai. Vous pouvez tester plusieurs conditions |
CASE WHEN ... THEN ... ELSE ... END | Évalue une expression et renvoie un résultat différent selon qu’elle est vraie ou fausse. Vous pouvez tester plusieurs conditions |
coalesce | Renvoie la première valeur non NULL de la liste en expression. |
if | Teste une condition et renvoie un résultat selon la condition de vérification |
regexp_match | Renvoie vrai si n’importe quelle partie d’une chaîne de caractères correspond à l’expression rationnelle fournie |
Quelques exemples:
Envoie une valeur en retour si la première condition est vraie, sinon une autre valeur:
CASE WHEN "software" LIKE '%QGIS%' THEN 'QGIS' ELSE 'Other' END
Ce groupe contient des fonctions mathématiques (par ex. racine carré, sin et cos).
Fonction |
Description |
---|---|
abs | Renvoie la valeur absolue d’un nombre |
acos | Renvoie le cosinus inverse d’une valeur en radians |
asin | Renvoie le sinus inverse d’une valeur en radians |
atan | Renvoie le cosinus inverse d’une valeur en radians |
atan2(y,x) | Renvoie la tangente inverse de y/x en utilisant les signes des deux arguments pour déterminer le quadrant du résultat |
azimuth(a,b) | Renvoie l’azimut par rapport au nord sous forme d’angle en radians mesuré dans le sens des aiguilles d’une montre à partir de la verticale entre le point a et le point b. |
ceil | Arrondi un nombre vers le haut |
clamp | Restreint une valeur d’entrée à une plage spécifique |
cos | Renvoie le cosinus d’une valeur en radians |
degrees | Convertit des angles en radians vers des degrés |
exp | Renvoie l’exponentiel d’une valeur |
floor | Arrondit un nombre vers le bas |
ln | Renvoie la valeur du logarithme népérien de l’expression en argument |
log | Renvoie la valeur du logarithme selon la valeur et la base en arguments |
log10 | Renvoie la valeur du logarithme en base 10 de l’expression en argument |
max | Renvoie la valeur la plus haute d’un ensemble de valeurs |
min | Renvoie la valeur la plus faible d’un ensemble de valeurs |
pi | Renvoie la valeur de Pi pour utilisation dans d’autres calculs |
radians | Convertit des angles en degrés vers des radians |
rand | Renvoie un entier aléatoire selon la plage spécifiée entre les valeurs minimale et maximale (inclusives) |
randf | Renvoie un nombre décimal aléatoire selon la plage spécifiée entres les valeurs minimale et maximale (inclusives) |
round | Arrondi au nombre de décimales indiqué |
scale_exp | Transforme une valeur donnée d’un domaine d’entrée à une plage de sortie en utilisant une courbe exponentielle |
scale_linear | Transforme une valeur donnée d’un domaine d’entrée à une plage de sortie en utilisant une interpolation linéaire |
sin | Renvoie le sinus d’un angle |
sqrt | Renvoie la racine carrée d’une valeur |
tan | Renvoie la tangente d’un angle |
Ce groupe contient des fonctions pour manipuler les couleurs.
Fonction |
Description |
---|---|
color_cmyk | Renvoie une chaîne de caractères représentant une couleur basée sur ses composantes cyan, magenta, jaune et noire |
color_cmyka | Renvoie une chaîne de caractères représentant une couleur basée sur ses composantes cyan, magenta, jaune et noire et alpha (transparence) |
color_hsl | Renvoie une chaîne de caractères représentant une couleur basée sur ses attributs de teinte, de saturation et de luminosité |
color_hsla | Renvoie une chaîne de caractères représentant une couleur basée sur ses attributs de teinte, de saturation, de luminosité et alpha (transparence). |
color_hsv | Renvoie une chaîne de caractères représentant une couleur basée sur ses attributs de teinte, de saturation et de valeur |
color_hsva | Renvoie une chaîne de caractères représentant une couleur basée sur ses attributs de teinte, de saturation, de valeur et alpha (transparence) |
color_part | Renvoie une composante spécifique d’une chaîne de caractères de couleur, ex: la composante rouge ou la composante alpha |
color_rgb | Renvoie une chaîne de caractères représentant une couleur basée sur ses composantes rouge, verte, bleue |
color_rgba | Renvoie une chaîne de caractères représentant une couleur basée sur ses composantes rouge, verte, bleue et sur la valeur alpha (transparence) |
darker | Renvoie une chaîne de caractères de couleur plus sombre (ou plus claire) |
lighter | Renvoie une chaîne de caractères de couleur plus claire (ou plus sombre) |
project_color | Renvoie une couleur du jeu de couleurs du projet |
ramp_color | Renvoie une chaîne de caractères représentant la couleur d’une rampe de couleur |
set_color_part | Définit une composante spécifique d’une chaîne de caractères de couleur, ex: la composante rouge ou la composante alpha |
Ce groupe contient des fonctions pour convertir un type de données en un autre (par ex. chaîne à entier, entier à chaîne).
Fonction |
Description |
---|---|
to_date | Convertit une chaîne de caractère en objet date |
to_datetime | Convertit une chaîne de caractères en objet de date et de temps |
to_int | Convertit une chaîne de caractères en nombre entier |
to_interval | Convertit une chaîne de caractère en objet d’intervalle de temps (peut être utilisée pour récupérer les jours, heures, mois, etc. d’une date) |
to_real | Convertit une chaîne de caractères en nombre réel |
to_string | Convertit un nombre en chaîne de caractères |
to_time | Convertit une chaîne de caractères en objet de temps |
Ce groupe contient les fonctions créées par l’utilisateur. Consultez function_editor pour plus de détails.
Ce groupe contient des fonctions permettant de gérer des données de date et d’heure.
Fonction |
Description |
---|---|
age | Renvoie sous forme d’intervalle la différence entre deux dates ou deux heures. |
day | Extrait le jour d’une date, ou d’un objet datetime, ou un nombre de jours depuis un intervalle |
day_of_week | Renvoie le nombre correspondant au jour de la semaine pour une date ou une date et heure spécifique. |
hour | Extrait l’heure à partir d’une valeur de temps ou de date et de temps ou extrait e nombre d’heures dans un intervalle |
minute | Extrait les minutes composant un temps ou une date ainsi que le nombre de minutes dans un intervalle |
month | Extrait le mois depuis une date ou une date et heure, ou le nombre de mois dans un intervalle. |
now() | Renvoie la date et le temps actuels |
second | Extrait les secondes d’un temps ou d’une date et d’un temps ou extrait le nombre de secondes dans un intervalle |
week | Extrait le numéro de semaine d’une date ou d’une date et heure, ou le nombre de semaines dans un intervalle de temps. |
year | Extrait l’année d’une date ou d’une date et heure, ou le nombre d’années d’un intervalle de temps. |
Quelques exemples:
Obtenir le mois et l’année d’aujourd’hui dans le format “10/2014”
month(now()) || '/' || year(now())
Contient la liste des champs de la couche.
En règle générale, vous pouvez utiliser les différents champs, valeurs et fonctions pour construire une expression de calcul ou vous pouvez la saisir directement dans la boîte.
Pour afficher les valeurs d’un champ, vous pouvez simplement cliquer sur le champ approprié et choisir soit Charger les valeurs uniques 10 valeurs soit Charger les valeurs uniques Toutes. Sur le côté droit, la liste des Valeurs de champ affiche alors les valeurs uniques. En haut de la liste, une boîte de recherche permet de filtrer les valeurs. Pour ajouter une valeur dans l’expression que vous rédigez, double-cliquez sur son nom dans la liste.
Les échantillons de valeurs peuvent également être récupérés via un clic-droit. Sélectionnez le nom du champ depuis la liste et, par un clic-droit, un menu contextuel apparaîtra, proposant de charger un échantillon de valeurs depuis le champ sélectionné.
Le nom des champs devrait être entre guillemets doubles. Les valeurs ou chaînes de caractères devraient être entre guillemets simples.
Ce groupe contient des fonctions destinées à réaliser des comparaisons floues entre les valeurs.
Fonction |
Description |
---|---|
hamming_distance | Renvoie le nombre de caractères situés à des positions correspondantes aux chaînes de caractères en entrée, où les caractères sont différents. |
levensheim | Renvoie le nombre minimum d’opérations d’édition de caractère (insertions, suppressions, substitutions) requis pour transformer une chaîne de caractères en une autre. Mesure la similitude entre deux chaînes de caractères. |
longest_common_substring | Renvoie la longueur de la sous-chaîne de caractères commune la plus longue entre deux chaînes de caractères. |
soundex | Renvoie la représentation Soundex d’une chaîne de caractères. |
Ce groupe contient des fonctions génériques.
Fonction |
Description |
---|---|
eval | Évalue une expression passée en chaîne de caractères. Cette fonction est utilisée pour produire les paramètres dynamiques tels que les variables de contexte ou les champs |
layer_property | Renvoie une propriété de couche ou la valeur de ses métadonnées. Il peut s’agir du nom de la couche, son SCR, son type géométrique, son nombre d’entités... |
var | Renvoie la valeur stockée dans une variable. Voir les fonctions “Variables” plus bas. |
Ce groupe contient des fonctions qui opèrent sur des objets géométriques (par ex. longueur, aire).
Fonction |
Description |
---|---|
$area | Renvoie la surface de l’entité courante |
$geometry | Renvoie la géométrie de l’entité courante (peut être utilisée en combinaison avec d’autres fonctions) |
$length | Renvoie la longueur de l’entité courante |
$perimeter | Renvoie le périmètre de l’entité actuelle |
$x | Renvoie la coordonnée x de l’entité actuelle |
$x_at(n) | Renvoie la coordonnée x du nième noeud de la géométrie de l’entité courante. |
$y | Renvoie la coordonnée y de l’entité courante |
$y_at(n) | Renvoie la coordonnée y du nième noeud de la géométrie de l’entité courante. |
area | Renvoie la surface d’un objet géométrique polygonal. Les calculs sont effectués dans le Système Spatial de Référence de cette géométrie. |
bounds | Renvoie une géométrie représentant l’emprise d’une géométrie en entrée. Les calculs sont effectués dans le Système Spatial de Référence de cette géométrie. |
bounds_height | Renvoie la hauteur de l’emprise d’une géométrie. Les calculs sont effectués dans le Système Spatial de Référence de cette géométrie. |
bounds_width | Renvoie la largeur de l’emprise d’une géométrie. Les calculs sont effectués dans le Système Spatial de Référence de cette géométrie. |
buffer | Renvoie une géométrie qui représente l’ensemble des points dont la distance est inférieure ou égale à la distance avec une géométrie en entrée. Les calculs sont effectués dans le Système Spatial de Référence de cette géométrie |
centroid | Renvoie le centre géométrique d’une géométrie |
closest_point | Renvoie le point d’une géométrie qui est le plus proche d’une deuxième géométrie |
combine | Renvoie la combinaison de deux géométries |
contains(a,b) | Renvoie 1 (vrai) si et seulement si aucun point de la géométrie b ne se situe à l’extérieur de la géométrie a et qu’au moins un point de l’intérieur de b est situé à l’intérieur de a. |
convex_hull | Renvoie l’enveloppe convexe d’une géométrie (elle représente la géométrie convexe minimale qui entoure toutes les géométries du jeu de données). |
crosses | Renvoie 1 (vrai) si les géométries fournies contiennent quelques points intérieurs en commun, sans que tous les points ne le soient. |
difference(a,b) | Renvoie une géométrie qui représente la partie de la géométrie a qui ne s’intersecte pas avec la géométrie b |
disjoint | Renvoie 1 (vrai) si les géométries ne partagent aucun espace ensemble. |
distance | Renvoie la distance minimale (basée sur le référentiel spatial) entre deux géométries dans les unités de la projection |
end_point | Renvoie le dernier nœud d’une géométrie |
exterior_ring | Renvoie une ligne représentant l’anneau extérieur d’une géométrie de polygone. Si la géométrie n’est pas un polygone alors le resultat sera NULL |
extrude(geom,x,y) | Renvoie une version extrudée d’une géométrie (Multi-)Courbe ou d’une (Multi-)Polyligne avec une extension indiquée par x et y |
geom_from_gml | Renvoie une géométrie créée à partir d’une représentation géométrique GML |
geom_from_wkt | Renvoie une géométrie créée à partir d’une représentation well-known text (WKT) |
geom_to_wkt | Renvoie la représentation well-known text (WKT) d’une géométrie sans les métadonnées de SRID |
geometry | Renvoie la géométrie d’une entité |
geometry_n | Renvoie la nième géométrie d’une collection de géométrie ou NULL si la géométrie en entrée n’est pas une collection. |
interior_ring_n | Renvoie la géométrie du nième anneau intérieur d’une géométrie polygonale ou NULL si la géométrie n’est pas un polygone. |
intersection | Renvoie une géométrie qui représente la portion commune de deux géométries |
intersects | Teste si une géométrie en intersecte une autre. Renvoie 1 (vrai) si les géométries s’intersectent (partage n’importe quelle portion de leur surface) et 0 dans le cas contraire. |
intersects_bbox | Teste si une emprise de géométrie en chevauche une autre. Renvoie 1 (vrai) si les géométries intersectent (partage au moins un espace commun) leurs emprises respectives et 0 dans le cas contraire. |
is_closed | Renvoie vrai si une ligne est fermée (le point de début et le point de fin sont identiques) ou faux si une ligne n’est pas fermée. Si la géométrie n’est pas une ligne, le résultat sera NULL. |
length | Renvoie la longueur d’une entité ayant une géométrie linéaire (ou la longueur d’une chaîne de caractères). |
m | Renvoie la valeur m d’une géométrie de type point |
make_line | Créé une géométrie linéaire à partir d’une série de géométries ponctuelles |
make_point(x,y,z,m) | Renvoie une géométrie ponctuelle à partir des valeurs x et y (et optionellement des valeurs z et m). |
make_point_m(x,y,m) | Renvoie une géométrie ponctuelle à partir de coordonnées x et y et d’une valeur m. |
make_polygon | Créé une géométrie polygonale à partir d’un anneau externe et de séries optionnelles de géométries d’anneaux internes |
nodes_to_points | Renvoie une géométrie multi-point composée de chaque nœud de la géométrie en entrée |
num_geometries | Renvoie le nombre de géométries dans une collection de géométrie ou NULL si la géométrie en entrée n’est pas une collection |
num_interior_rings | Renvoie le nombre d’anneaux intérieurs dans un polygone ou dans une collection de géométrie ou NULL si la géométrie en entrée n’est pas un polygone ou une collection |
num_points | Renvoie le nombre de sommets d’une géométrie |
num_rings | Renvoie le nombre d’anneaux (incluant les anneaux extérieurs) d’un polygone ou d’une collection de géométrie ou bien NULL si la géométrie en entrée n’est pas un polygone ou une collection |
order_parts | Ré-arrange les parties d’une géométrie multiple selon le critère donné |
overlaps | Teste si une géométrie recouvre totalement une autre. Renvoie 1 (vrai) si les géométries partagent la même surface, sont de même dimension mais ne sont pas complètement contenues l’une dans l’autre. |
perimeter | Renvoie le périmètre d’un objet géométrique polygonal. Les calculs sont effectués dans le Système Spatial de Référence de cette géométrie. |
point_n | Renvoie un nœud donné d’une géométrie |
point_on_surface | Renvoie un point qui est certainement situé à la surface d’une géométrie |
relate | Teste ou renvoie la représentation du Modèle Dimensionnel Étendu à 9 Intersections (DE-9IM en anglais) de la relation entre deux géométries. |
reverse | Inverse la direction d’une géométrie linéaire en inversant l’ordre de ses sommets |
segments_to_lines | Renvoie une géométrie multi-ligne composée d’une ligne pour chaque segment de la géométrie en entrée |
shortest_line | Renvoie la plus courte ligne joignant deux géométries. La ligne résultante commencera sur la géométrie 1 et se terminera sur la géométrie 2 |
start_point | Renvoie le premier nœud d’une géométrie |
sym_difference | Renvoie une géométrie qui représente les portions non superposées de deux géométries |
touches | Teste si deux géométries se touchent. Renvoie 1 (vrai) si les géométries ont au moins un point en commun mais que leurs surfaces intérieures ne s’intersectent pas |
transform | Renvoie la géométrie transformée d’un SCR source vers un SCR cible |
translate | Renvoie une version translatée d’une géométrie. Les calculs sont effectués dans le Système Spatial de Référence de cette géométrie |
union | Renvoie une géométrie qui représente l’ensemble de points unis des géométries |
within (a,b) | Teste si une géométrie est située complètement à l’intérieur d’une autre. Renvoie 1 (vrai) si la géométrie a est contenue complètement dans la géométrie b |
x | Renvoie la coordonnée x d’une géométrie ponctuelle ou la coordonnée x du centroïde d’une géométrie non ponctuelle |
x_min | Renvoie la coordonnée x minimale d’une géométrie. Les calculs sont effectués dans le Système Spatial de Référence de la géométrie. |
x_max | Renvoie la coordonnée x maximale d’une géométrie. Les calculs sont effectués dans le Système Spatial de Référence de la géométrie. |
y | Renvoie la coordonnée y d’une géométrie ponctuelle ou la coordonnée y du centroïde d’une géométrie non ponctuelle |
y_min | Renvoie la coordonnée y minimale d’une géométrie. Les calculs sont effectués dans le Système Spatial de Référence de la géométrie. |
y_max | Renvoie la coordonnée y maximale d’une géométrie. Les calculs sont effectués dans le Système Spatial de Référence de la géométrie. |
z | Renvoie la coordonnée z d’une géométrie de type point |
Quelques exemples :
Renvoie la coordonnée x du centroïde de l’entité courante:
x($geometry)
Renvoie une valeur selon la surface de l’entité:
CASE WHEN $area > 10 000 THEN 'Larger' ELSE 'Smaller' END
Ce groupe contient des fonctions qui permettent d’accéder aux identifiants des enregistrements.
Fonction |
Description |
---|---|
$currentfeature | Renvoie l’entité courante évaluée. Cette fonction peut être utilisée en combinaison avec la fonction ‘attribute’ pour renvoyer les valeurs d’attribut de l’entité courante. |
$id | Renvoie l’identifiant de l’entité de la ligne actuelle |
$map | Renvoie l’identifiant de l’élément actuel de la carte si la carte a été dessinée grâce à un arrangement, ou « canevas » si la carte a été dessinée à l’intérieur de la fenêtre principale de QGIS |
$rownum | Renvoie le numéro de la ligne actuelle |
$scale | Renvoie l’échelle courante du canevas de cartes. |
attribute | Renvoie la valeur d’un attribut spécifique d’une entité. |
get_feature | Renvoie la première entité d’une couche qui correspond à la valeur d’un attribut donné. |
uuid | Génère un Identifiant Universel Unique (UUID) pour chaque ligne. Chaque UUID occupe 38 caractères. |
Quelques exemples :
Renvoie la première entité d’une couche “Layer A” dont le champ “id” a la même valeur que le champ “name” de l’entité courante (une sorte de jointure):
get_feature( 'layerA', 'id', attribute( $currentfeature, 'name') )
Calcule la surface de l’entité jointe à partir de l’exemple précédent:
area( geometry( get_feature( 'layerA', 'id', attribute( $currentfeature, 'name') ) ) )
Ce groupe contient des fonctions qui opèrent sur des chaînes (par ex. qui remplace, convertit en majuscule).
Fonction |
Description |
---|---|
concat | Concatène plusieurs chaînes de caractères dans une seule. |
format | Formatte une chaîne de caractères en utilisant les arguments fournis. |
format_date | Formatte une date ou une chaîne de caractères dans un format de chaîne personnalisé. |
format_number | Renvoie un nombre formaté selon le séparateur de milliers de la langue courante (tronque également le nombre selon le nombre de chiffres indiqués). |
left(string, n) | Renvoie un extrait de chaîne de caractères contenant les n caractères les plus à gauche de la chaîne initiale |
length | Renvoie la longueur d’une chaîne de caractères (ou la longueur d’une entité géométrique linéaire). |
lower | Convertit une chaîne de caractères en minuscules. |
lpad | Renvoie une chaîne de caractères remplie selon la taille indiquée en utilisant un caractère de remplissage. |
regexp_replace | Renvoie une chaîne de caractères en utilisant une expression rationnelle de substitution |
regexp_substr | Renvoie la portion d’une chaîne de caractères qui correspond à une expression rationnelle fournie |
replace | Renvoie une chaîne de caractères où la chaîne en argument est remplacée. |
right(string, n) | Renvoie un extrait de chaîne de caractères contenant les n caractères les plus à droite de la chaîne initiale |
rpad | Renvoie une chaîne de caractères remplie selon la taille indiquée en utilisant un caractère de remplissage. |
strpos | Renvoie l’index d’une expression rationnelle dans une chaîne de caractères. |
substr | Renvoie une partie de chaîne de caractères |
title | Convertit l’ensemble des mots d’une chaîne de caractères en casse de titre (tous les mots sont en minuscule sauf la première lettre du mot qui est en majuscule) |
trim | Supprime tous les caractères d’espace (espaces, tabs, etc.) situés au début ou à la fin d’une chaîne de caractères. |
upper | Convertit une chaîne de caractères en majuscules. |
wordwrap | Renvoie une chaîne de caractères découpée par les caractères espace, selon un nombre minimum ou maximum de caractères |
Ce groupe contient les fonctions utilisées récemment. Toute expression utilisée dans la boîte de dialogue des Expressions est ajoutée à la liste, triée de la plus récente à la plus ancienne. Cela vous aide à retrouver rapidement n”importe qu’elle expression précédente.
Ce groupe contient les variables dynamiques liées à l’application, le fichier de projet et les autres paramètres. Cela implique que certaines fonctions peuvent ne pas être disponibles selon le contexte:
à partir de la boîte de dialogue Sélection les entités en utilisant une expression.
à partir de la boîte de dialogue des propriétés de la couche.
à partir du composeur d’impression.
Pour utiliser ces fonctions dans une expression, elles doivent être précédées par le caractère @ (ex: @row_number). Sont concernées:
Fonction |
Description |
---|---|
atlas_feature | Renvoie l’entité courante de l’atlas (sous forme d’objet entité). |
atlas_featureid | Renvoie l’ID de l’entité courante de l’atlas. |
atlas_featurenumber | Renvoie le nombre de pages de la composition. |
atlas_filename | Renvoie le nom de fichier de l’atlas courant. |
atlas_geometry | Renvoie la géométrie de l’entité courante de l’atlas. |
atlas_pagename | Renvoie le nom de la page courante de l’atlas. |
atlas_totalfeatures | Renvoie le nombre total d’entités de l’atlas. |
grid_axis | Renvoie l’annotation des axes de la grille courante (ex: ‘x’ pour la longitude et ‘y’ pour la latitude). |
grid_number | Renvoie la valeur d’annotation de la grille courante. |
item_id | Renvoie l’Id utilisateur de l’objet du composeur (pas forcément unique). |
item_uuid | Renvoie l’ID unique de l’objet du composeur. |
layer_id | Renvoie l’ID de la couche actuelle. |
layer_name | Retourne le nom de la couche actuelle |
layout_dpi | Renvoie la résolution de la composition (DPI). |
layout_numpages | Renvoie le nombre de pages de la composition. |
layout_pageheight | Renvoie la hauteur de la composition en mm. |
layout_pagewidth | Renvoie la largeur de la composition en mm. |
map_id | Renvoie l’identifiant de la destination de la carte. Prendra la valeur ‘canvas’ pour les rendus dans le canevas ou l’identifiant de l’objet pour les rendus dans le composeur de cartes. |
map_extent_center | Renvoie l’entité ponctuelle située au centre de la carte. |
map_extent_height | Retourne la hauteur actuelle de la carte |
map_extent_width | Retourne la largeur actuelle de la carte |
map_rotation | Retourne la rotation actuelle de la carte |
map_scale | Renvoie l’échelle actuelle de la carte. |
project_filename | Renvoie le nom du fichier du projet actuel |
project_folder | Renvoie le nom du répertoire du projet actuel |
project_path | Renvoie le chemin complet (incluant le nom de fichier) du projet actuel |
project_title | Renvoie le titre du projet actuel |
qgis_os_name | Renvoie le nom du système d’exploitation : ‘windows’, ‘linux’ ou ‘osx’ |
qgis_platform | Renvoie la plate-forme QGIS : ‘desktop’ ou ‘server’ |
qgis_release_name | Renvoie le nom de la version de QGiS utilisée |
qgis_version | Renvoie la chaîne de caractère de la version de QGIS utilisée |
qgis_version_no | Renvoie le numéro de version de QGIS utilisé |
symbol_angle | Renvoie l’angle du symbole utilisé pour le rendu de l’entité (valide uniquement pour les marqueurs de symboles). |
symbol_color | Renvoie la couleur du symbole utilisé pour le rendu de l’entité. |
user_account_name | Renvoie le nom d’utilisateur du système d’exploitation. |
user_full_name | Retourne le nom d’utilisateur de l’utilisateur du système d’exploitation actuel |
row_number | Enregistre le numéro de la ligne actuelle |
Avec l’Éditeur de fonction vous êtes en mesure de définir vos propres fonctions Python de manière confortable.
Figure Expression 2:
L’éditeur de fonction créera les nouveaux fichiers Python dans le répertoire .qgis2\python\expressions et chargera automatiquement toutes les fonctions définies au démarrage de QGIS. Soyez conscients que les nouvelles fonctions sont seulement sauvegardées dans le répertoire expressions et non dans le fichier du projet. Si vous avez un projet qui utilise une de vos fonctions personnalisées vous aurez besoin de partager le fichier .py dans le répertoire expressions.
Voici un court exemple de comment créer vos propres fonctions :
@qgsfunction(args="auto", group='Custom')
def myfunc(value1, value2, feature, parent):
pass
Ce court exemple crée la fonction ‘myfunc’ qui vous donnera une fonction avec deux valeurs. Quand vous utilisez l’argument de fonction args=’auto’ le nombre d’arguments de la fonction requis sera calculé selon le nombre d’arguments définis en Python (moins 2 - feature, et parent).
Cette fonction peut être utilisée avec l’expression suivante :
myfunc('test1', 'test2')
Votre fonction sera implémentée dans le groupe de fonctions Custom de l’onglet Expression après l’utilisation du bouton Lancer le script.
Plus d’informations sur la création de code Python peuvent être trouvées dans Développement PyQGIS - Livre de recettes.
L’éditeur de fonction ne se limite pas à la calculatrice de champ, il est disponible à chaque fois que vous travaillez avec des expressions.