12.2. Liste des fonctions

Les fonctions, opérateurs et variables disponibles dans QGIS sont listées ci-dessous, groupés par catégories.

12.2.1. Fonctions d’agrégats

Ce groupe contient des fonctions pour agréger des valeurs sur des couches et des champs.

12.2.1.1. aggregate

Renvoie une valeur agrégée calculée en utilisant les entités d’une autre couche.

Syntaxe

aggregate(layer, aggregate, expression, [filter], [concatenator=””], [order_by])

[] indique des éléments optionnels

Arguments

  • layer - une chaîne de caractères représentant soit un nom de couche soit un ID de couche

  • aggregate - une chaîne correspondant à l’agrégat à calculer. Les options valides sont les suivantes :

    • count

    • count_distinct

    • count_missing

    • min

    • max

    • sum

    • mean

    • median

    • stdev

    • stdevsample

    • range

    • minority

    • majority

    • q1: premier quartile

    • q3: troisième quartile

    • iqr: plage inter-quartile

    • min_length: longueur minimale de chaîne

    • max_length: longueur maximale de chaîne

    • concatenate: joindre des chaînes avec un concaténateur

    • concatenate_unique : joindre des chaînes uniques avec un concaténateur

    • collect: créer une géométrie multi-partie agrégée

    • array_agg: créer un tableau de valeurs agrégées

  • expression - sous-expression ou nom de champ à agréger

  • filter - expression de filtrage optionnelle pour limiter les entités utilisées pour le calcul d’agrégation. Les champs et la géométrie proviennent des entités de la couche jointe. L’entité source peut être accédée avec la variable @parent.

  • concatenator - chaîne de caractères optionnelle utilisée pour joindre les valeurs pour l’agrégat “concatenate”

  • order_by - expression de filtre optionnelle pour ordonner les entités utilisées pour le calcul de l’agrégat. Les champs et la géométrie proviennent des entités de la couche jointe. Par défaut les entités sont renvoyées dans un ordre quelconque.

Exemples

  • aggregate(layer:='stations_trains',aggregate:='sum',expression:="passagers") → somme des valeurs du champ passagers dans la couche stations_trains

  • aggregate('stations_trains','sum', "passagers"/7) → calcule une moyenne journalière de « passagers » en divisant le champ « passagers » par 7 avant de faire la somme des valeurs

  • aggregate(layer:='stations_trains',aggregate:='sum',expression:="passagers",filter:="classe">3) → fait la somme de toutes les valeurs du champ « passagers » des entités où l’attribut « classe » est supérieur à 3 seulement

  • aggregate(layer:='stations_trains',aggregate:='concatenate', expression:="name", concatenator:=',') → liste séparée par des virgules de noms de champs pour toutes les entités dans la couche stations_trains

  • aggregate(layer:='pays', aggregate:='max', expression:="code", filter:=intersects( $geometry, geometry(@parent) ) ) → Le code d’une entité de la couche « pays » intersectant l’entité courante

  • aggregate(layer:='stations_trains',aggregate:='sum',expression:="passagers",filter:=contains( @atlas_geometry, $geometry ) ) → somme de toutes les valeurs du champ passagers pour toutes les stations de trains contenues à l’intérieur de l’entité sélectionnée par l’atlas

  • aggregate(layer:='stations_trains', aggregate:='collect', expression:=centroid($geometry), filter:="nom_region" = attribute(@parent,'nom') ) → agrège les centroïdes des stations de trains de la même région que celle de l’entité courante

12.2.1.2. array_agg

Renvoie une liste de valeurs agrégées à partir d’un champ ou d’une expression.

Syntaxe

array_agg(expression, [group_by], [filter], [order_by])

[] indique des éléments optionnels

Arguments

  • expression - sous-expression du champ à agréger

  • group_by - expression optionnelle utilisée pour grouper les calculs d’agrégats

  • filter - expression optionnelle utilisée pour filtrer les entités utilisées lors du calcul d’agrégat

  • order_by - expression optionnelle pour ordonner les entités utilisées pour calculer l’agrégat. Par défaut les entités sont renvoyées dans un ordre quelconque.

Exemples

  • array_agg("nom",group_by:="état") → liste des valeurs de nom, regroupées par champ d’état

12.2.1.3. collect

Renvoie la géométrie multipartie des géométries agrégées à partir d’une expression

Syntaxe

collect(expression, [group_by], [filter])

[] indique des éléments optionnels

Arguments

  • expression - expression de type géométrie à agréger

  • group_by - expression optionnelle utilisée pour grouper les calculs d’agrégats

  • filter - expression optionnelle utilisée pour filtrer les entités utilisées lors du calcul d’agrégat

Exemples

  • collect( $geometry ) → géométrie multipartie de géométries agrégées

  • collect( centroid($geometry), group_by:="region", filter:= "type" = 'civil' ) → centroïdes agrégés par région des entités de type “civil”

12.2.1.4. concatenate

Renvoie toutes les chaînes agrégées d’un champ ou d’une expression rejoints par un délimiteur.

Syntaxe

concatenate(expression, [group_by], [filter], [concatenator], [order_by])

[] indique des éléments optionnels

Arguments

  • expression - sous-expression du champ à agréger

  • group_by - expression optionnelle utilisée pour grouper les calculs d’agrégats

  • filter - expression optionnelle utilisée pour filtrer les entités utilisées lors du calcul d’agrégat

  • concatenator - chaîne de caractères optionnelle utilisée pour joindre les valeurs. Vide par défaut.

  • order_by - expression optionnelle pour ordonner les entités utilisées pour calculer l’agrégat. Par défaut les entités sont renvoyées dans un ordre quelconque.

Exemples

  • concatenate("nom_ville",group_by:="etat",concatenator:=',') → liste des noms de ville séparés par une virgule, regroupés par état

12.2.1.5. concatenate_unique

Renvoie toutes les chaînes uniques d’un champ ou d’une expression joints par un délimiteur.

Syntaxe

concatenate_unique(expression, [group_by], [filter], [concatenator], [order_by])

[] indique des éléments optionnels

Arguments

  • expression - sous-expression du champ à agréger

  • group_by - expression optionnelle utilisée pour grouper les calculs d’agrégats

  • filter - expression optionnelle utilisée pour filtrer les entités utilisées lors du calcul d’agrégat

  • concatenator - chaîne de caractères optionnelle utilisée pour joindre les valeurs. Vide par défaut.

  • order_by - expression optionnelle pour ordonner les entités utilisées pour calculer l’agrégat. Par défaut les entités sont renvoyées dans un ordre quelconque.

Exemples

  • concatenate_unique("nom_ville",group_by:="etat",concatenator:=',') → liste séparée par des virgules des valeurs des nom de villes uniques, groupés sur le champ état

12.2.1.6. count

Renvoie le décompte des entités correspondantes.

Syntaxe

count(expression, [group_by], [filter])

[] indique des éléments optionnels

Arguments

  • expression - sous-expression du champ à agréger

  • group_by - expression optionnelle utilisée pour grouper les calculs d’agrégats

  • filter - expression optionnelle utilisée pour filtrer les entités utilisées lors du calcul d’agrégat

Exemples

  • count("stations",group_by:="etat") → compte des stations, regroupées par le champ état

12.2.1.7. count_distinct

Renvoie le décompte des valeurs distinctes.

Syntaxe

count_distinct(expression, [group_by], [filter])

[] indique des éléments optionnels

Arguments

  • expression - sous-expression du champ à agréger

  • group_by - expression optionnelle utilisée pour grouper les calculs d’agrégats

  • filter - expression optionnelle utilisée pour filtrer les entités utilisées lors du calcul d’agrégat

Exemples

  • count_distinct("stations",group_by:="etat") → compte des valeurs distinctes de stations, regroupées par le champ état

12.2.1.8. count_missing

Renvoie le décompte des valeurs manquantes (NULL).

Syntaxe

count_missing(expression, [group_by], [filter])

[] indique des éléments optionnels

Arguments

  • expression - sous-expression du champ à agréger

  • group_by - expression optionnelle utilisée pour grouper les calculs d’agrégats

  • filter - expression optionnelle utilisée pour filtrer les entités utilisées lors du calcul d’agrégat

Exemples

  • count_missing("stations",group_by:="etat") → compte des valeurs manquantes (NULL) des stations, regroupées par le champ état

12.2.1.9. iqr

Renvoie la plage inter-quartiles d’un champ ou d’une expression.

Syntaxe

iqr(expression, [group_by], [filter])

[] indique des éléments optionnels

Arguments

  • expression - sous-expression du champ à agréger

  • group_by - expression optionnelle utilisée pour grouper les calculs d’agrégats

  • filter - expression optionnelle utilisée pour filtrer les entités utilisées lors du calcul d’agrégat

Exemples

  • iqr("population",group_by:="etat") → plage inter-quartiles des valeurs de population, regroupées par le champ état

12.2.1.10. majority

Renvoie les valeurs majoritaires (les valeurs les plus fréquentes) d’un champ ou d’une expression.

Syntaxe

majority(expression, [group_by], [filter])

[] indique des éléments optionnels

Arguments

  • expression - sous-expression du champ à agréger

  • group_by - expression optionnelle utilisée pour grouper les calculs d’agrégats

  • filter - expression optionnelle utilisée pour filtrer les entités utilisées lors du calcul d’agrégat

Exemples

  • majority("classe",group_by:="etat") → valeur de classe rencontrée la plus fréquemment, groupée selon le champ état

12.2.1.11. max_length

Renvoie la longueur maximale des chaînes de caractères d’un champ ou d’une expression.

Syntaxe

max_length(expression, [group_by], [filter])

[] indique des éléments optionnels

Arguments

  • expression - sous-expression du champ à agréger

  • group_by - expression optionnelle utilisée pour grouper les calculs d’agrégats

  • filter - expression optionnelle utilisée pour filtrer les entités utilisées lors du calcul d’agrégat

Exemples

  • max_length("nom_ville",group_by:="etat") → longueur maximale de nom_ville, groupée selon le champ état

12.2.1.12. maximum

Renvoie la valeur maximale d’un champ ou d’une expression.

Syntaxe

maximum(expression, [group_by], [filter])

[] indique des éléments optionnels

Arguments

  • expression - sous-expression du champ à agréger

  • group_by - expression optionnelle utilisée pour grouper les calculs d’agrégats

  • filter - expression optionnelle utilisée pour filtrer les entités utilisées lors du calcul d’agrégat

Exemples

  • maximum("population",group_by:="etat") → valeur maximale de population, groupée selon le champ état

12.2.1.13. mean

Renvoie la valeur moyenne d’un champ ou d’une expression.

Syntaxe

mean(expression, [group_by], [filter])

[] indique des éléments optionnels

Arguments

  • expression - sous-expression du champ à agréger

  • group_by - expression optionnelle utilisée pour grouper les calculs d’agrégats

  • filter - expression optionnelle utilisée pour filtrer les entités utilisées lors du calcul d’agrégat

Exemples

  • mean("population",group_by:="etat") → valeur moyenne de population, groupée selon le champ état

12.2.1.14. median

Renvoie la valeur médiane d’un champ ou d’une expression.

Syntaxe

median(expression, [group_by], [filter])

[] indique des éléments optionnels

Arguments

  • expression - sous-expression du champ à agréger

  • group_by - expression optionnelle utilisée pour grouper les calculs d’agrégats

  • filter - expression optionnelle utilisée pour filtrer les entités utilisées lors du calcul d’agrégat

Exemples

  • median("population",group_by:="etat") → valeur médiane de population, groupée selon le champ état

12.2.1.15. min_length

Renvoie la longueur minimale des chaînes de caractères d’un champ ou d’une expression.

Syntaxe

min_length(expression, [group_by], [filter])

[] indique des éléments optionnels

Arguments

  • expression - sous-expression du champ à agréger

  • group_by - expression optionnelle utilisée pour grouper les calculs d’agrégats

  • filter - expression optionnelle utilisée pour filtrer les entités utilisées lors du calcul d’agrégat

Exemples

  • min_length("nom_ville",group_by:="etat") → longueur minimale des valeurs de nom_ville, groupées selon le champ état

12.2.1.16. minimum

Renvoie la valeur minimale d’un champ ou d’une expression.

Syntaxe

minimum(expression, [group_by], [filter])

[] indique des éléments optionnels

Arguments

  • expression - sous-expression du champ à agréger

  • group_by - expression optionnelle utilisée pour grouper les calculs d’agrégats

  • filter - expression optionnelle utilisée pour filtrer les entités utilisées lors du calcul d’agrégat

Exemples

  • minimum("population",group_by:="etat") → valeur minimale de population, groupée selon le champ état

12.2.1.17. minority

Renvoie la valeur minoritaire (la moins fréquente) d’un champ ou d’une expression.

Syntaxe

minority(expression, [group_by], [filter])

[] indique des éléments optionnels

Arguments

  • expression - sous-expression du champ à agréger

  • group_by - expression optionnelle utilisée pour grouper les calculs d’agrégats

  • filter - expression optionnelle utilisée pour filtrer les entités utilisées lors du calcul d’agrégat

Exemples

  • minority("classe",group_by:="etat") → valeur de classe la moins rencontrée, regroupée par le champ état

12.2.1.18. q1

Renvoie le premier quartile d’un champ ou d’une expression.

Syntaxe

q1(expression, [group_by], [filter])

[] indique des éléments optionnels

Arguments

  • expression - sous-expression du champ à agréger

  • group_by - expression optionnelle utilisée pour grouper les calculs d’agrégats

  • filter - expression optionnelle utilisée pour filtrer les entités utilisées lors du calcul d’agrégat

Exemples

  • q1("population",group_by:="etat") → premier quartile de la population, groupé selon le champ etat

12.2.1.19. q3

Renvoie le troisième quartile d’un champ ou d’une expression.

Syntaxe

q3(expression, [group_by], [filter])

[] indique des éléments optionnels

Arguments

  • expression - sous-expression du champ à agréger

  • group_by - expression optionnelle utilisée pour grouper les calculs d’agrégats

  • filter - expression optionnelle utilisée pour filtrer les entités utilisées lors du calcul d’agrégat

Exemples

  • q3("population",group_by:="etat") → troisième quartile de la population, groupé selon le champ etat

12.2.1.20. range

Renvoie la plage de valeur (maximum - minimum) d’un champ ou d’une expression.

Syntaxe

range(expression, [group_by], [filter])

[] indique des éléments optionnels

Arguments

  • expression - sous-expression du champ à agréger

  • group_by - expression optionnelle utilisée pour grouper les calculs d’agrégats

  • filter - expression optionnelle utilisée pour filtrer les entités utilisées lors du calcul d’agrégat

Exemples

  • range("population",group_by:="etat") → plage des valeurs de population, groupées selon le champ état

12.2.1.21. relation_aggregate

Renvoie une valeur agrégée, calculée à partir de toutes les entités enfants correspondantes dans la couche en relation.

Syntaxe

relation_aggregate(relation, aggregate, expression, [concatenator=””], [order_by])

[] indique des éléments optionnels

Arguments

  • relation - un texte, représentant un identifiant de relation

  • aggregate - une chaîne correspondant à l’agrégat à calculer. Les options valides sont les suivantes :

    • count

    • count_distinct

    • count_missing

    • min

    • max

    • sum

    • mean

    • median

    • stdev

    • stdevsample

    • range

    • minority

    • majority

    • q1: premier quartile

    • q3: troisième quartile

    • iqr: plage inter-quartile

    • min_length: longueur minimale de chaîne

    • max_length: longueur maximale de chaîne

    • concatenate: joindre des chaînes avec un concaténateur

    • concatenate_unique : joindre des chaînes uniques avec un concaténateur

    • collect: créer une géométrie multi-partie agrégée

    • array_agg: créer un tableau de valeurs agrégées

  • expression - sous-expression ou nom de champ à agréger

  • concatenator - chaîne de caractères optionnelle utilisée pour joindre les valeurs pour l’agrégat “concatenate”

  • order_by - expression optionnelle pour ordonner les entités utilisées pour le calcul de l’agrégat. Les champs et la géométrie proviennent des entités de la couche jointe. Par défaut les entités sont renvoyées dans un ordre quelconque.

Exemples

  • relation_aggregate(relation:='ma_relation',aggregate:='mean',expression:="passagers") → valeur moyenne de toutes les entités enfants correspondantes, dans la relation “ma_relation”

  • relation_aggregate('ma_relation','sum', "passagers"/7) → Somme divisée par 7 des passagers de toutes les entités enfants correspondantes, dans la relation “ma_relation”

  • relation_aggregate('ma_relation','concatenate', "villes", concatenator:=',') → liste séparée par des virgules des valeurs du champ villes pour toutes les entités correspondantes, dans la relation “ma_relation”

  • relation_aggregate('ma_relation','array_agg', "id") → tableau du champ id de toutes les entités enfant correspondantes liées par la relation “ma_relation”

Plus de détails : Créer des relations un à plusieurs ou plusieurs à plusieurs

12.2.1.22. stdev

Renvoie l’écart-type des valeurs d’un champ ou d’une expression.

Syntaxe

stdev(expression, [group_by], [filter])

[] indique des éléments optionnels

Arguments

  • expression - sous-expression du champ à agréger

  • group_by - expression optionnelle utilisée pour grouper les calculs d’agrégats

  • filter - expression optionnelle utilisée pour filtrer les entités utilisées lors du calcul d’agrégat

Exemples

  • stdev("population",group_by:="etat") → écart-type des valeurs de population, groupées selon le champ état

12.2.1.23. sum

Renvoie la somme des valeurs d’un champ ou d’une expression.

Syntaxe

sum(expression, [group_by], [filter])

[] indique des éléments optionnels

Arguments

  • expression - sous-expression du champ à agréger

  • group_by - expression optionnelle utilisée pour grouper les calculs d’agrégats

  • filter - expression optionnelle utilisée pour filtrer les entités utilisées lors du calcul d’agrégat

Exemples

  • sum("population",group_by:="etat") → somme des valeurs de population, groupée selon le champ “etat”

12.2.2. Fonctions Listes

Ce groupe fournit les fonctions de création et de manipulation de listes (également appelées structures de données “array”). L’ordre des valeurs dans la liste importe, contrairement à la structure de données map, où l’ordre des paires clé-valeur n’est pas pertinent et les valeurs sont identifiées par leurs clés.

12.2.2.1. array

Renvoie une liste contenant toutes les valeurs passées comme paramètre.

Syntaxe

array(value1, value2, …)

Arguments

  • value - une valeur

Exemples

  • array(2,10) → [ 2, 10 ]

  • array(2,10)[0] → 2

12.2.2.2. array_all

Renvoie vrai si une liste contient toutes les valeurs d’une liste donnée.

Syntaxe

array_all(array_a, array_b)

Arguments

  • array_a - une liste

  • array_b - la liste des valeurs à chercher

Exemples

  • array_all(array(1,2,3),array(2,3)) → vrai

  • array_all(array(1,2,3),array(1,2,4)) → faux

12.2.2.3. array_append

Renvoie une liste avec la valeur donnée ajoutée à la fin.

Syntaxe

array_append(array, value)

Arguments

  • array - une liste

  • value - la valeur à ajouter

Exemples

  • array_append(array(1,2,3),4) → [ 1, 2, 3, 4 ]

12.2.2.4. array_cat

Renvoie une liste concaténant les valeurs de toutes les listes en entrée.

Syntaxe

array_cat(array1, array2, …)

Arguments

  • array - une liste

Exemples

  • array_cat(array(1,2),array(2,3)) → [ 1, 2, 2, 3 ]

12.2.2.5. array_contains

Renvoie vrai si une liste contient la valeur donnée.

Syntaxe

array_contains(array, value)

Arguments

  • array - une liste

  • value - la valeur à chercher

Exemples

  • array_contains(array(1,2,3),2) → vrai

12.2.2.6. array_count

Compte le nombre d’occurrences d’une valeur donnée dans un tableau.

Syntaxe

array_count(tableau, valeur)

Arguments

  • array - une liste

  • value - la valeur à compter

Exemples

  • array_count(tableau('a', 'b', 'c', 'b'), 'b') → 2

12.2.2.7. array_distinct

Renvoie une liste contenant les valeurs distinctes de la liste donnée.

Syntaxe

array_distinct(array)

Arguments

  • array - une liste

Exemples

  • array_distinct(array(1,2,3,2,1)) → [ 1, 2, 3 ]

12.2.2.8. array_filter

Renvoie une liste contenant seulement les éléments pour lesquels l’expression est vraie.

Syntaxe

array_filter(tableau, expression, [limite=0])

[] indique des éléments optionnels

Arguments

  • array - une liste

  • expression - une expression à évaluer sur chaque élément. La variable @element sera remplacée par la valeur courante.

  • limit - nombre maximal d’éléments à retourner. Utiliser 0 pour retourner toutes les valeurs.

Exemples

  • array_filter(array(1,2,3),@element < 3) → [ 1, 2 ]

  • array_filter(tableau(1,2,3),@element < 3, 1) → [ 1 ]

12.2.2.9. array_find

Retourne l’index minimal (0 pour le premier) d’une valeur dans un tableau. Retourne -1 si la valeur n’est pas trouvée.

Syntaxe

array_find(array, value)

Arguments

  • array - une liste

  • value - la valeur à chercher

Exemples

  • array_find(tableau('a', 'b', 'c'), 'b') → 1

  • array_find(tableau('a', 'b', 'c', 'b'), 'b') → 1

12.2.2.10. array_first

Renvoie la première valeur d’une liste.

Syntaxe

array_first(array)

Arguments

  • array - une liste

Exemples

  • array_first(array('a','b','c')) → “a”

12.2.2.11. array_foreach

Renvoie une liste avec l’expression évaluée pour chaque élément.

Syntaxe

array_foreach(array, expression)

Arguments

  • array - une liste

  • expression - une expression à évaluer sur chaque élément. La variable @element sera remplacée par la valeur courante.

Exemples

  • array_foreach(array('a','b','c'),upper(@element)) → [ “A”, “B”, “C” ]

  • array_foreach(array(1,2,3),@element + 10) → [ 11, 12, 13 ]

12.2.2.12. array_get

Renvoie la Nème valeur (0 pour la première) ou la dernière -Nème valeur (-1 pour la dernière) d’un tableau.

Syntaxe

array_get(array, pos)

Arguments

  • array - une liste

  • pos - l’index à obtenir (basé sur 0)

Exemples

  • array_get(array('a','b','c'),1) → “b”

  • array_get(tableau('a','b','c'),-1) → “c”

Indication

Vous pouvez aussi utiliser l’opérateur index ([]) pour obtenir une valeur d’un tableau.

12.2.2.13. array_insert

Renvoie une liste avec la valeur donnée ajoutée à la position donnée.

Syntaxe

array_insert(array, pos, value)

Arguments

  • array - une liste

  • pos - la position où réaliser l’ajout (basée sur 0)

  • value - la valeur à ajouter

Exemples

  • array_insert(array(1,2,3),1,100) → [ 1, 100, 2, 3 ]

12.2.2.14. array_intersect

Renvoie vrai si au moins un élément de array1 est présent dans array2.

Syntaxe

array_intersect(array1, array2)

Arguments

  • array1 - une liste

  • array2 - une autre liste

Exemples

  • array_intersect(array(1,2,3,4),array(4,0,2,5)) → vrai

12.2.2.15. array_last

Renvoie la dernière valeur d’une liste.

Syntaxe

array_last(array)

Arguments

  • array - une liste

Exemples

  • array_last(array('a','b','c')) → “c”

12.2.2.16. array_length

Renvoie le nombre d’éléments d’une liste.

Syntaxe

array_length(array)

Arguments

  • array - une liste

Exemples

  • array_length(array(1,2,3)) → 3

12.2.2.17. array_majority

Renvoie les valeurs les plus courantes d’un tableau.

Syntaxe

array_majority(tableau, [option=”all”])

[] indique des éléments optionnels

Arguments

  • array - une liste

  • option=”all” - une chaîne spécifiant la gestion des valeurs à renvoye. Les options valides sont:

    • all: par défaut, toutes les valeurs les plus courantes sont renvoyées dans un tableau.

    • any: renvoie l’une des valeurs les plus courantes.

    • median: renvoie la médiane des valeurs les plus courantes. Les valeurs non arithmétiques sont ignorées.

    • real_majority: renvoie la valeur qui apparait dans plus de la moitié de la taille du tableau.

Exemples

  • array_majority(array(0,1,42,42,43), 'all') → [ 42 ]

  • array_majority(array(0,1,42,42,43,1), 'all') → [ 42, 1 ]

  • array_majority(array(0,1,42,42,43,1), 'any') → 1 or 42

  • array_majority(array(0,1,1,2,2), 'median') → 1.5

  • array_majority(array(0,1,42,42,43), 'real_majority') → NULL

  • array_majority(array(0,1,42,42,43,42), 'real_majority') → NULL

  • array_majority(array(0,1,42,42,43,42,42), 'real_majority') → 42

12.2.2.18. array_max

Renvoie la valeur maximale d’une liste.

Syntaxe

array_max(array)

Arguments

  • array - une liste

Exemples

  • array_max(array(0,42,4,2)) → 42

12.2.2.19. array_mean

Returns the mean of arithmetic values in an array. Non numeric values in the array are ignored.

Syntaxe

array_mean(array)

Arguments

  • array - une liste

Exemples

  • array_mean(array(0,1,7,66.6,135.4)) → 42

  • array_mean(array(0,84,'a','b','c')) → 42

12.2.2.20. array_median

Returns the median of arithmetic values in an array. Non arithmetic values in the array are ignored.

Syntaxe

array_median(array)

Arguments

  • array - une liste

Exemples

  • array_median(array(0,1,42,42,43)) → 42

  • array_median(array(0,1,2,42,'a','b')) → 1.5

12.2.2.21. array_min

Returns the minimum value of an array.

Syntaxe

array_min(array)

Arguments

  • array - une liste

Exemples

  • array_min(array(43,42,54)) → 42

12.2.2.22. array_minority

Returns the less common values in an array.

Syntaxe

array_minority(array, [option=”all”])

[] indique des éléments optionnels

Arguments

  • array - une liste

  • option=”all” - une chaîne spécifiant la gestion des valeurs à renvoye. Les options valides sont:

    • all: Default, all less common values are returned in an array.

    • any: Returns one of the less common values.

    • median: Returns the median of the less common values. Non arithmetic values are ignored.

    • real_minority: Returns values which occur less than half the size of the array.

Exemples

  • array_minority(array(0,42,42), 'all') → [ 0 ]

  • array_minority(array(0,1,42,42), 'all') → [ 0, 1 ]

  • array_minority(array(0,1,42,42,43,1), 'any') → 0 or 43

  • array_minority(array(1,2,3,3), 'median') → 1.5

  • array_minority(array(0,1,42,42,43), 'real_minority') → [ 42, 43, 0, 1 ]

  • array_minority(array(0,1,42,42,43,42), 'real_minority') → [ 42, 43, 0, 1 ]

  • array_minority(array(0,1,42,42,43,42,42), 'real_minority') → [ 43, 0, 1 ]

12.2.2.23. array_prepend

Renvoie une liste avec la valeur donnée ajoutée à son début.

Syntaxe

array_prepend(array, value)

Arguments

  • array - une liste

  • value - la valeur à ajouter

Exemples

  • array_prepend(array(1,2,3),0) → [ 0, 1, 2, 3 ]

12.2.2.24. array_prioritize

Returns an array sorted using the ordering specified in another array. Values which are present in the first array but are missing from the second array will be added to the end of the result.

Syntaxe

array_prioritize(array, array_prioritize)

Arguments

  • array - une liste

  • array_prioritize - an array with values ordered by priority

Exemples

  • array_prioritize(array(1, 8, 2, 5), array(5, 4, 2, 1, 3, 8)) → [ 5, 2, 1, 8 ]

  • array_prioritize(array(5, 4, 2, 1, 3, 8), array(1, 8, 6, 5)) → [ 1, 8, 5, 4, 2, 3 ]

12.2.2.25. array_remove_all

Renvoie une liste dont les entrées correspondant à la valeur donnée ont été supprimées.

Syntaxe

array_remove_all(array, value)

Arguments

  • array - une liste

  • value - la valeur à supprimer

Exemples

  • array_remove_all(array('a','b','c','b'),'b') → [ “a”, “c” ]

12.2.2.26. array_remove_at

Renvoie une liste dont les index donnés ont été supprimés.

Syntaxe

array_remove_at(array, pos)

Arguments

  • array - une liste

  • pos - la position à supprimer (basée sur 0)

Exemples

  • array_remove_at(array(1,2,3),1) → [ 1, 3 ]

12.2.2.27. array_replace

Returns an array with the supplied value, array, or map of values replaced.

Value & array variant

Returns an array with the supplied value or array of values replaced by another value or an array of values.

Syntaxe

array_replace(array, before, after)

Arguments

  • array - la liste en entrée

  • before - the value or array of values to replace

  • after - the value or array of values to use as a replacement

Exemples

  • array_replace(array('QGIS','SERAIT','GÉNIAL'),'SERAIT','EST') → [ “QGIS”, “EST”, “GÉNIAL” ]

  • array_replace(array(3,2,1),array(1,2,3),array(7,8,9)) → [ 9, 8, 7 ]

  • array_replace(array('Q','G','I','S'),array('Q','S'),'-') → [ “-”, “G”, “I”, “-” ]

Variante table de correspondance

Returns an array with the supplied map keys replaced by their paired values.

Syntaxe

array_replace(array, map)

Arguments

  • array - la liste en entrée

  • map - la table de correspondance contenant les clés et valeurs

Exemples

  • array_replace(array('APP', 'SERAIT', 'GÉNIAL'),map('APP','QGIS','SHOULD','DOES')) → [ “QGIS”, “EST”, “GÉNIAL” ]

12.2.2.28. array_reverse

Renvoie la liste donnée avec ses valeurs dans l’ordre inverse.

Syntaxe

array_reverse(array)

Arguments

  • array - une liste

Exemples

  • array_reverse(array(2,4,0,10)) → [ 10, 0, 4, 2 ]

12.2.2.29. array_slice

Renvoie une partie de la liste. La tranche est définie par les arguments start_pos et end_pos.

Syntaxe

array_slice(array, start_pos, end_pos)

Arguments

  • array - une liste

  • start_pos - l’index de la position de début de la tranche (basée sur 0). L’index start_pos est inclus dans la tranche. Si vous utilisez un start_pos négatif, l’index est compté à partir de la fin de la liste (basée sur -1).

  • end_pos - l’index de la position de fin de la tranche (basée sur 0). L’index end_pos est inclus dans la tranche. Si vous utilisez un end_pos négatif, l’index est compté à partir de la fin de la liste (basée sur -1).

Exemples

  • array_slice(array(1,2,3,4,5),0,3) → [ 1, 2, 3, 4 ]

  • array_slice(array(1,2,3,4,5),0,-1) → [ 1, 2, 3, 4, 5 ]

  • array_slice(array(1,2,3,4,5),-5,-1) → [ 1, 2, 3, 4, 5 ]

  • array_slice(array(1,2,3,4,5),0,0) → [ 1 ]

  • array_slice(array(1,2,3,4,5),-2,-1) → [ 4, 5 ]

  • array_slice(array(1,2,3,4,5),-1,-1) → [ 5 ]

  • array_slice(array('Dufour','Valmiera','Chugiak','Brighton'),1,2) → [ “Valmiera”, “Chugiak” ]

  • array_slice(array('Dufour','Valmiera','Chugiak','Brighton'),-2,-1) → [ “Chugiak”, “Brighton” ]

12.2.2.30. array_sort

Renvoie la liste donnée avec ses éléments triés.

Syntaxe

array_sort(array, [ascending=true])

[] indique des éléments optionnels

Arguments

  • array - une liste

  • ascending - mettre ce paramètre à false pour trier le tableau par ordre décroissant

Exemples

  • array_sort(array(3,2,1)) → [ 1, 2, 3 ]

12.2.2.31. array_sum

Returns the sum of arithmetic values in an array. Non numeric values in the array are ignored.

Syntaxe

array_sum(array)

Arguments

  • array - une liste

Exemples

  • array_sum(array(0,1,39.4,1.6,'a')) → 42.0

12.2.2.32. array_to_string

Concatène les éléments d’une liste en une chaîne de caractères séparée par un délimiteur et utilisant en option une chaîne de caractères pour les valeurs vides.

Syntaxe

array_to_string(array, [delimiter=”,”], [empty_value=””])

[] indique des éléments optionnels

Arguments

  • array - la liste en entrée

  • delimiter - la chaîne de caractères utilisée pour délimiter les éléments concaténés de la liste

  • empty_value - la chaîne de caractères optionnelle à utiliser en remplacement des résultats vides (longueur nulle)

Exemples

  • array_to_string(array('1','2','3')) → “1,2,3”

  • array_to_string(array(1,2,3),'-') → “1-2-3”

  • array_to_string(array('1','','3'),',','0') → “1,0,3”

12.2.2.33. generate_series

Crée une liste contenant une suite de nombres.

Syntaxe

generate_series(start, stop, [step=1])

[] indique des éléments optionnels

Arguments

  • start - la première valeur de la suite

  • stop - la valeur qui provoque la fin de la suite une fois atteinte

  • step - valeur de l’incrémentation entre les différentes valeurs

Exemples

  • generate_series(1,5) → [ 1, 2, 3, 4, 5 ]

  • generate_series(5,1,-1) → [ 5, 4, 3, 2, 1 ]

12.2.2.34. regexp_matches

Renvoie une liste de toutes les chaînes repérées dans une chaîne de caractères par des groupes de capture, dans l’ordre dans lequel les groupes apparaissent dans l’expression régulière.

Syntaxe

regexp_matches(string, regex, [empty_value=””])

[] indique des éléments optionnels

Arguments

  • string - la chaîne de caractères à tester avec l’expression régulière pour repérer des groupes

  • regex - l’expression régulière utilisée pour repérer des groupes

  • empty_value - la chaîne de caractères optionnelle à utiliser en remplacement des résultats vides (longueur nulle)

Exemples

  • regexp_matches('QGIS=>déchire','(.*)=>(.*)') → [ “QGIS”, “déchire” ]

  • regexp_matches('clé=>','(.*)=>(.*)','valeur vide') → [ “clé”, “valeur vide” ]

12.2.2.35. string_to_array

Découpe une chaîne de caractères en une liste en utilisant le délimiteur et l’éventuelle chaîne de remplacement pour les valeurs vides.

Syntaxe

string_to_array(string, [delimiter=”,”], [empty_value=””])

[] indique des éléments optionnels

Arguments

  • string - la chaîne en entrée

  • delimiter - la chaîne de caractères utilisée pour découper la chaîne de caractères en entrée

  • empty_value - la chaîne de caractères optionnelle à utiliser en remplacement des résultats vides (longueur nulle)

Exemples

  • string_to_array('1,2,3',',') → [ “1”, “2”, “3” ]

  • string_to_array('1,,3',',','0') → [ “1”, “0”, “3” ]

12.2.3. Fonctions de Couleur

Ce groupe contient des fonctions pour manipuler les couleurs.

12.2.3.1. color_cmyk

Renvoie une chaîne de caractères représentant une couleur basée sur ses composantes cyan, magenta, jaune et noire

Syntaxe

color_cmyk(cyan, magenta, yellow, black)

Arguments

  • cyan - composante cyan de la couleur sous forme d’une valeur de pourcentage comprise entre 0 et 100

  • magenta - composante magenta de la couleur sous forme d’une valeur de pourcentage comprise entre 0 et 100

  • yellow - composante jaune de la couleur sous forme d’une valeur de pourcentage comprise entre 0 et 100

  • black - composante noire de la couleur sous forme d’une valeur de pourcentage comprise entre 0 et 100

Exemples

  • color_cmyk(100,50,0,10) → “0,115,230”

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

Syntaxe

color_cmyka(cyan, magenta, yellow, black, alpha)

Arguments

  • cyan - composante cyan de la couleur sous forme d’une valeur de pourcentage comprise entre 0 et 100

  • magenta - composante magenta de la couleur sous forme d’une valeur de pourcentage comprise entre 0 et 100

  • yellow - composante jaune de la couleur sous forme d’une valeur de pourcentage comprise entre 0 et 100

  • black - composante noire de la couleur sous forme d’une valeur de pourcentage comprise entre 0 et 100

  • alpha - composante alpha sous la forme d’un entier dont la valeur varie de 0 (complètement transparent) à 255 (opaque).

Exemples

  • color_cmyka(100,50,0,10,200) → “0,115,230,200”

12.2.3.3. color_grayscale_average

Applique un filtre par niveau de gris et renvoie une chaîne de caractères depuis une couleur en entrée.

Syntaxe

color_grayscale_average(color)

Arguments

  • color - une chaîne de caractères de couleur

Exemples

  • color_grayscale_average('255,100,50') → “135,135,135,255”

12.2.3.4. 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é.

Syntaxe

color_hsl(hue, saturation, lightness)

Arguments

  • hue - teinte de la couleur, sous la forme d’un entier compris entre 0 et 360

  • saturation - pourcentage de saturation de la couleur sous forme d’un entier compris entre 0 et 100

  • lightness - pourcentage de luminosité de la couleur sous forme d’un entier compris entre 0 et 100

Exemples

  • color_hsl(100,50,70) → “166,217,140”

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

Syntaxe

color_hsla(hue, saturation, lightness, alpha)

Arguments

  • hue - teinte de la couleur, sous la forme d’un entier compris entre 0 et 360

  • saturation - pourcentage de saturation de la couleur sous forme d’un entier compris entre 0 et 100

  • lightness - pourcentage de luminosité de la couleur sous forme d’un entier compris entre 0 et 100

  • alpha - composante alpha sous la forme d’un entier dont la valeur varie de 0 (complètement transparent) à 255 (opaque).

Exemples

  • color_hsla(100,50,70,200) → “166,217,140,200”

12.2.3.6. 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.

Syntaxe

color_hsv(hue, saturation, value)

Arguments

  • hue - teinte de la couleur, sous la forme d’un entier compris entre 0 et 360

  • saturation - pourcentage de saturation de la couleur sous forme d’un entier compris entre 0 et 100

  • value - pourcentage de valeur de la couleur sous la forme d’un entier compris entre 0 et 100

Exemples

  • color_hsv(40,100,100) → “255,170,0”

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

Syntaxe

color_hsva(hue, saturation, value, alpha)

Arguments

  • hue - teinte de la couleur, sous la forme d’un entier compris entre 0 et 360

  • saturation - pourcentage de saturation de la couleur sous forme d’un entier compris entre 0 et 100

  • value - pourcentage de valeur de la couleur sous la forme d’un entier compris entre 0 et 100

  • alpha - composante alpha sous la forme d’un entier dont la valeur varie de 0 (complètement transparent) à 255 (opaque)

Exemples

  • color_hsva(40,100,100,200) → “255,170,0,200”

12.2.3.8. color_mix_rgb

Renvoie une chaîne de caractères représentant une couleur issue du mélange des valeurs rouge, vert, bleu et alpha (transparence) de deux couleurs données basé sur un ratio.

Syntaxe

color_mix_rgb(color1, color2, ratio)

Arguments

  • color1 - une chaîne de caractères de couleur

  • color2 - une chaîne de caractères de couleur

  • ratio - un ratio

Exemples

  • color_mix_rgb('0,0,0','255,255,255',0.5) → “127,127,127,255”

12.2.3.9. color_part

Renvoie une composante spécifique d’une chaîne de caractères de couleur, par ex: la composante rouge ou la composante alpha.

Syntaxe

color_part(color, component)

Arguments

  • color - une chaîne de caractères de couleur

  • component - une chaîne de caractère correspondant à la composante de la couleur à renvoyer. Les options valide sont :

    • red : composante rouge du RVB (0-255

    • green : composante verte du RVB (0-255)

    • blue : composante bleue du RVB (0-255)

    • alpha : valeur alpha (transparence) (0-255)

    • hue : composante teinte du TSV (0-360)

    • saturation : composante saturation du TSV (0-100)

    • value : composante valeur du TSV (0-100)

    • hsl_hue : composante teinte du TSL (0-360)

    • hsl_saturation : composante saturation du TSL (0-100)

    • lightness : composante luminosité du TSL (0-100)

    • cyan : composante cyan du CMJN (0-100)

    • magenta : composante magenta du CMJN (0-100)

    • yellow : composante jaune du CMJN (0-100)

    • black : composante noire du CMJN (0-100)

Exemples

  • color_part('200,10,30','green') → 10

12.2.3.10. color_rgb

Renvoie une chaîne de caractères représentant une couleur basée sur ses composantes rouge, verte et bleue.

Syntaxe

color_rgb(red, green, blue)

Arguments

  • red - composante rouge sous la forme d’un entier entre 0 et 255

  • green - composante verte sous la forme d’un entier entre 0 et 255

  • blue - composante bleue sous la forme d’un entier entre 0 et 255

Exemples

  • color_rgb(255,127,0) → “255,127,0”

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

Syntaxe

color_rgba(red, green, blue, alpha)

Arguments

  • red - composante rouge sous la forme d’un entier entre 0 et 255

  • green - composante verte sous la forme d’un entier entre 0 et 255

  • blue - composante bleue sous la forme d’un entier entre 0 et 255

  • alpha - composante alpha sous la forme d’un entier dont la valeur varie de 0 (complètement transparent) à 255 (opaque).

Exemples

  • color_rgba(255,127,0,200) → “255,127,0,200”

12.2.3.12. create_ramp

Renvoie un dégradé de couleurs à partir d’un tableau (map) associant des chaînes de caractères de couleurs à des seuils.

Syntaxe

create_ramp(map, [discrete=false])

[] indique des éléments optionnels

Arguments

  • map - un tableau (map) associant des chaînes de caractères de couleurs à des seuils

  • discrete - passer ce paramètre à vrai pour créer un dégradé de couleurs discret

Exemples

  • ramp_color(create_ramp(map(0,'0,0,0',1,'255,0,0')),1) → “255,0,0,255”

12.2.3.13. darker

Renvoie une chaîne de caractères de couleur plus sombre (ou plus claire)

Syntaxe

darker(color, factor)

Arguments

  • color - une chaîne de caractères de couleur

  • factor - un nombre entier correspondant au facteur d’assombrissement :

    • si le facteur est supérieur à 100, cette fonction renverra une couleur plus sombre (par exemple, utiliser un facteur de 200 renverra une couleur qui aura deux fois moins de brillance) ;

    • si le facteur est inférieur à 100, la couleur renvoyée sera plus claire mais il est recommandé d’utiliser la fonction lighter() pour cet usage ;

    • si le facteur vaut 0 ou est négatif, la valeur renvoyée est non spécifiée.

Exemples

  • darker('200,10,30', 200) → “100,5,15,255”

Plus de détails : lighter

12.2.3.14. lighter

Renvoie une chaîne de caractères de couleur plus claire (ou plus sombre)

Syntaxe

lighter(color, factor)

Arguments

  • color - une chaîne de caractères de couleur

  • factor - un nombre entier correspondant au facteur d’éclaircissement :

    • si le facteur est supérieur à 100, cette fonction renvoie une couleur plus claire (par exemple, un facteur de 150 renverra une couleur 50% plus claire) ;

    • si le facteur est inférieur à 100, la couleur renvoyée sera plus sombre. Il est recommandé d’utiliser la fonction darker() pour ce genre d’opération ;

    • si le facteur vaut 0 ou est négatif, la valeur renvoyée est non spécifiée.

Exemples

  • lighter('200,10,30', 200) → “255,158,168,255”

Plus de détails : darker

12.2.3.15. project_color

Renvoie une couleur du jeu de couleurs du projet.

Syntaxe

project_color(name)

Arguments

  • name - un nom de couleur

Exemples

  • project_color('Couleur Logo') → “20,140,50”

Plus de détails : setting project colors

12.2.3.16. ramp_color

Renvoie une chaîne de caractères représentant une couleur extraite d’une palette de couleur.

Variante palette de couleurs enregistrée

Renvoie une chaîne représentant une couleur à partir d’une palette enregistrée.

Syntaxe

ramp_color(ramp_name, value)

Arguments

  • ramp_name - le nom de la palette de couleur sous la forme d’une chaîne de caractères, par exemple : “Spectral”

  • value - la position dans la palette de couleur à partir d’un nombre réel compris entre 0 et 1

Exemples

  • ramp_color('Spectral',0.3) → “253,190,115,255”

Note

Les palettes de couleur disponibles varient selon les installations de QGIS. Cette fonction peut renvoyer des valeurs erronées si vous utilisez un projet QGIS sur plusieurs installations différentes.

Variante palette de couleurs créée par expression

Renvoie une chaîne représentant une couleur d’une palette créée par une expression

Syntaxe

ramp_color(ramp, value)

Arguments

  • ramp - la palette de couleurs

  • value - la position dans la palette de couleur à partir d’un nombre réel compris entre 0 et 1

Exemples

  • ramp_color(create_ramp(map(0,'0,0,0',1,'255,0,0')),1) → “255,0,0,255”

Plus de détails : Définition d’une rampe de couleurs, La liste déroulante raccourci des couleurs

12.2.3.17. set_color_part

Définit une composante spécifique d’une chaîne de caractères de couleur, par exemple : la composante rouge ou la composante alpha.

Syntaxe

set_color_part(color, component, value)

Arguments

  • color - une chaîne de caractères de couleur

  • component - une chaîne de caractère correspondant à la composante de la couleur à définir. Les options valide sont :

    • red : composante rouge du RVB (0-255

    • green : composante verte du RVB (0-255)

    • blue : composante bleue du RVB (0-255)

    • alpha : valeur alpha (transparence) (0-255)

    • hue : composante teinte du TSV (0-360)

    • saturation : composante saturation du TSV (0-100)

    • value : composante valeur du TSV (0-100)

    • hsl_hue : composante teinte du TSL (0-360)

    • hsl_saturation : composante saturation du TSL (0-100)

    • lightness : composante luminosité du TSL (0-100)

    • cyan : composante cyan du CMJN (0-100)

    • magenta : composante magenta du CMJN (0-100)

    • yellow : composante jaune du CMJN (0-100)

    • black : composante noire du CMJN (0-100)

  • value - nouvelle valeur pour la composante de couleur, en respectant les plages listées ci-dessus

Exemples

  • set_color_part('200,10,30','green',50) → “200,50,30,255”

12.2.4. Fonctions conditionnelles

Ce groupe contient des fonctions permettant de gérer des conditions dans les expressions.

12.2.4.1. CASE

CASE est utilisé pour évaluer une série de conditions et renvoie un résultat à la première condition remplie. Les conditions sont évaluées séquentiellement et si une condition est vraie, l’évaluation s’arrête et le résultat correspondant est renvoyé. Si aucune condition n’est vraie, la valeur de la clause ELSE est renvoyée. Par ailleurs, si aucune clause ELSE n’est spécifiée et aucune condition n’est remplie, la valeur NULL est renvoyée.

CASE

WHEN condition THEN résultat

[ …n ]

[ ELSE résultat ]

END

[ ] indique des composantes optionnelles

Arguments

  • WHEN condition - L’expression conditionnelle à évaluer

  • THEN résultat - Si condition est vraie alors résultat est évalué et renvoyé.

  • ELSE résultat - Si aucune des conditions ci-dessus n’est vraie alors résultat est évalué et renvoyé.

Exemples

  • CASE WHEN "nom" IS NULL THEN 'Rien' END → Renvoie la chaîne “Rien” si le champ « nom » est NULL

  • CASE WHEN $area > 10000 THEN 'Grande propriété' WHEN $area > 5000 THEN 'Propriété moyenne' ELSE 'Petite propriété' END → Renvoie la chaîne “Grande propriété” si la superficie est supérieure à 10000, “Propriété moyenne” si elle est entre 5000 et 10000 et “Petite propriété” sinon

12.2.4.2. coalesce

Renvoie la première valeur non-NULL de la liste en expression.

Cette fonction peut prendre n’importe quel nombre d’arguments.

Syntaxe

coalesce(expression1, expression2, …)

Arguments

  • expression - toute expression ou valeur valide, quel que soit le type.

Exemples

  • coalesce(NULL, 2) → 2

  • coalesce(NULL, 2, 3) → 2

  • coalesce(7, NULL, 3*2) → 7

  • coalesce("fieldA", "fallbackField", 'ERROR') → la valeur de fieldA si celle-ci est non NULL, sinon la valeur de « fallbackfield » ou la chaîne de caractères “ERROR” si les deux sont nulles

12.2.4.3. if

Teste une condition et renvoie un résultat selon la condition de vérification.

Syntaxe

if(condition, result_when_true, result_when_false)

Arguments

  • condition - la condition à vérifier

  • result_when_true - le résultat renvoyé lorsque la condition est évaluée à vrai ou à une valeur non convertible en faux.

  • result_when_false - le résultat renvoyé lorsque la condition est évaluée à faux ou à une valeur convertible en faux, telle que 0 ou “”. NULL est aussi convertie en faux.

Exemples

  • if( 1+1=2, 'Oui', 'Non' ) → “Oui”

  • if( 1+1=3, 'Oui', 'Non' ) → “Non”

  • if( 5 > 3, 1, 0) → 1

  • if( '', 'Vrai (non vide)', 'Faux (vide)' ) → “Faux (vide)”

  • if( ' ', 'Vrai (non vide)', 'Faux (vide)' ) → “Vrai (non vide)”

  • if( 0, 'Un', 'Zéro' ) → “Zéro”

  • if( 10, 'Un', 'Zéro' ) → “Un”

12.2.4.4. nullif

Renvoie une valeur NULL si valeur1 est égal à valeur2 sinon il renvoie valeur1. Cela peut être utilisé pour substituer conditionnellement des valeurs par NULL.

Syntaxe

nullif(value1, value2)

Arguments

  • value1 - La valeur qui doit être utilisée ou substituée par NULL.

  • value2 - La valeur de contrôle qui déclenchera la substitution NULL.

Exemples

  • nullif('(none)', '(none)') → NULL

  • nullif('texte', '(none)') → “texte”

  • nullif("nom", '') → NULL, si le nom est une chaîne de caractères vide (ou déjà NULL), le nom dans tous les autres cas.

12.2.4.5. regexp_match

Renvoie la première occurrence correspondant à une expression régulière dans une chaîne de caractères, ou 0 si la sous-chaîne n’a pas été trouvée.

Syntaxe

regexp_match(input_string, regex)

Arguments

  • input_string - la chaîne à tester selon l’expression régulière

  • regex - L’expression régulière de test. Les caractères antislash doivent être échappés deux fois (ex: « \\s » correspond à un caractère d’espace, « \\b » à une fin de mot…).

Exemples

  • regexp_match('QGIS DECHIRE','\\sDECHIRE') → 5

  • regexp_match('Budač','udač\\b') → 2

12.2.4.6. try

Essaye une expression et retourne sa valeur si elle est exempte d’erreur. Si l’expression retourne une erreur, une valeur alternative sera retournée si elle est fourni sinon la fonction retournera NULL.

Syntaxe

try(expression, [alternative])

[] indique des éléments optionnels

Arguments

  • expression - l’expression à exécuter

  • alternative - le résultat à afficher lorsque l’expression renvoie une erreur.

Exemples

  • try( to_int( '1' ), 0 ) → 1

  • try( to_int( 'a' ), 0 ) → 0

  • try( to_date( 'date_invalide' ) ) → NULL

12.2.5. Fonctions de conversion

Ce groupe contient des fonctions pour convertir un type de données en un autre (par ex. chaîne e caractère vers/depuis entier, binaire vers/depuis chaîne de caractère, chaîne vers date…).

12.2.5.1. from_base64

Décode une chaîne encodée en Base64 en une valeur binaire.

Syntaxe

from_base64(string)

Arguments

  • string - la chaîne à décoder

Exemples

  • from_base64('UUdJUw==') → “QGIS”

12.2.5.2. hash

Crée un hash à partir d’une chaîne de caractère en appliquant une méthode de hachage. Un octet (8 bits) est représenté par deux chiffres hexadécimaux, donc “md4” (16 octets) produit une chaîne de caractère de 16 * 2 = 32 chiffres hexadécimaux de longueur et “keccak_512” (64 octets) produit une chaîne de 64 * 2 = 128 chiffres hexadécimaux de longueur.

Syntaxe

hash(string, method)

Arguments

  • string - la chaîne à hacher

  • method - La méthode de hachage parmi “md4”, “md5”, “sha1”, “sha224”, “sha384”, “sha512”, “sha3_224”, “sha3_256”, “sha3_384”, “sha3_512”, “keccak_224”, “keccak_256”, “keccak_384”, “keccak_512”

Exemples

  • hash('QGIS', 'md4') → “c0fc71c241cdebb6e888cbac0e2b68eb”

  • hash('QGIS', 'md5') → “57470aaa9e22adaefac7f5f342f1c6da”

  • hash('QGIS', 'sha1') → “f87cfb2b74cdd5867db913237024e7001e62b114”

  • hash('QGIS', 'sha224') → “4093a619ada631c770f44bc643ead18fb393b93d6a6af1861fcfece0”

  • hash('QGIS', 'sha256') → “eb045cba7a797aaa06ac58830846e40c8e8c780bc0676d3393605fae50c05309”

  • hash('QGIS', 'sha384') → “91c1de038cc3d09fdd512e99f9dd9922efadc39ed21d3922e69a4305cc25506033aee388e554b78714c8734f9cd7e610”

  • hash('QGIS', 'sha512') → “c2c092f2ab743bf8edbeb6d028a745f30fc720408465ed369421f0a4e20fa5e27f0c90ad72d3f1d836eaa5d25cd39897d4cf77e19984668ef58da6e3159f18ac”

  • hash('QGIS', 'sha3_224') → “467f49a5039e7280d5d42fd433e80d203439e338eaabd701f0d6c17d”

  • hash('QGIS', 'sha3_256') → “540f7354b6b8a6e735f2845250f15f4f3ba4f666c55574d9e9354575de0e980f”

  • hash('QGIS', 'sha3_384') → “96052da1e77679e9a65f60d7ead961b287977823144786386eb43647b0901fd8516fa6f1b9d243fb3f28775e6dde6107”

  • hash('QGIS', 'sha3_512') → “900d079dc69761da113980253aa8ac0414a8bd6d09879a916228f8743707c4758051c98445d6b8945ec854ff90655005e02aceb0a2ffc6a0ebf818745d665349”

  • hash('QGIS', 'keccak_224') → “5b0ce6acef8b0a121d4ac4f3eaa8503c799ad4e26a3392d1fb201478”

  • hash('QGIS', 'keccak_256') → “991c520aa6815392de24087f61b2ae0fd56abbfeee4a8ca019c1011d327c577e”

  • hash('QGIS', 'keccak_384') → “c57a3aed9d856fa04e5eeee9b62b6e027cca81ba574116d3cc1f0d48a1ef9e5886ff463ea8d0fac772ee473bf92f810d”

12.2.5.3. md5

Crée un hash md5 depuis une chaîne de caractères.

Syntaxe

md5(string)

Arguments

  • string - la chaîne à hacher

Exemples

  • md5('QGIS') → “57470aaa9e22adaefac7f5f342f1c6da”

12.2.5.4. sha256

Crée un hash sha256 depuis une chaîne de caractères.

Syntaxe

sha256(string)

Arguments

  • string - la chaîne à hacher

Exemples

  • sha256('QGIS') → “eb045cba7a797aaa06ac58830846e40c8e8c780bc0676d3393605fae50c05309”

12.2.5.5. to_base64

Encode une valeur binaire en une chaîne de caractères, en utilisant l’encodage Base64.

Syntaxe

to_base64(value)

Arguments

  • value - la valeur binaire à encoder

Exemples

  • to_base64('QGIS') → “UUdJUw==”

12.2.5.6. to_date

Converts a string into a date object. An optional format string can be provided to parse the string; see QDate::fromString or the documentation of the format_date function for additional documentation on the format. By default the current QGIS user locale is used.

Syntaxe

to_date(string, [format], [language])

[] indique des éléments optionnels

Arguments

  • string - la chaîne représentant la valeur de date

  • format - format utilisé pour convertir la chaîne de caractères en date

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to convert the string into a date. By default the current QGIS user locale is used.

Exemples

  • to_date('2012-05-04') → 2012-05-04

  • to_date('June 29, 2019','MMMM d, yyyy') → 2019-06-29, if the current locale uses the name “June” for the sixth month, otherwise an error occurs

  • to_date('29 juin, 2019','d MMMM, yyyy','fr') → 2019-06-29

12.2.5.7. to_datetime

Converts a string into a datetime object. An optional format string can be provided to parse the string; see QDate::fromString, QTime::fromString or the documentation of the format_date function for additional documentation on the format. By default the current QGIS user locale is used.

Syntaxe

to_datetime(string, [format], [language])

[] indique des éléments optionnels

Arguments

  • string - la chaîne représentant la valeur de date et de temps

  • format - format utilisé pour convertir la chaîne de caractères en date-heure

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to convert the string into a datetime. By default the current QGIS user locale is used.

Exemples

  • to_datetime('2012-05-04 12:50:00') → 2012-05-04T12:50:00

  • to_datetime('June 29, 2019 @ 12:34','MMMM d, yyyy @ HH:mm') → 2019-06-29T12:34, if the current locale uses the name “June” for the sixth month, otherwise an error occurs

  • to_datetime('29 juin, 2019 @ 12:34','d MMMM, yyyy @ HH:mm','fr') → 2019-06-29T12:34

12.2.5.8. to_decimal

Convertit une coordonnée en degrés, minutes, secondes en son équivalent décimal.

Syntaxe

to_decimal(value)

Arguments

  • value - Une chaîne en degrés, minutes, secondes.

Exemples

  • to_decimal('6°21\'16.445') → 6.3545680555

12.2.5.9. to_dm

Convertir une coordonnée en degrés, minutes.

Syntaxe

to_dm(coordinate, axis, precision, [formatting=])

[] indique des éléments optionnels

Arguments

  • coordinate - Une longitude ou une latitude.

  • axis - L’axe de la coordonnée. Soit “x” ou “y”.

  • precision - Nombre de décimales.

  • formatting - Désigne le type de formatage. Les valeurs acceptées sont NULL, “aligned” ou “suffix”.

Exemples

  • to_dm(6.1545681, 'x', 3) → 6°9.274′

  • to_dm(6.1545681, 'y', 4, 'aligned') → 6°09.2741′N

  • to_dm(6.1545681, 'y', 4, 'suffix') → 6°9.2741′N

12.2.5.10. to_dms

Convertit une coordonnée en degrés, minutes, secondes.

Syntaxe

to_dms(coordinate, axis, precision, [formatting=])

[] indique des éléments optionnels

Arguments

  • coordinate - Une longitude ou une latitude.

  • axis - L’axe de la coordonnée. Soit “x” ou “y”.

  • precision - Nombre de décimales.

  • formatting - Désigne le type de formatage. Les valeurs acceptées sont NULL, “aligned” ou “suffix”.

Exemples

  • to_dms(6.1545681, 'x', 3) → 6°9′16.445″

  • to_dms(6.1545681, 'y', 4, 'aligned') → 6°09′16.4452″N

  • to_dms(6.1545681, 'y', 4, 'suffix') → 6°9′16.4452″N

12.2.5.11. to_int

Convertit une chaîne de caractère en nombre entier. Si la valeur ne peut pas être convertie (ex: “123asd” est invalide), cette fonction ne renvoie rien.

Syntaxe

to_int(string)

Arguments

  • string - la chaîne à convertir en nombre entier

Exemples

  • to_int('123') → 123

12.2.5.12. to_interval

Convertit une chaîne de caractère en objet d’intervalle de temps. Cette fonction peut être utilisée pour récupérer les jours, heures, mois, etc. d’une date.

Syntaxe

to_interval(string)

Arguments

  • string - une chaîne de caractères représentant un intervalle de temps. Les formats disponibles incluent {n} jours {n} heures {n} mois.

Exemples

  • to_interval('1 day 2 hours') → interval: 1.08333 days

  • to_interval( '0.5 hours' ) → interval: 30 minutes

  • to_datetime('2012-05-05 12:00:00') - to_interval('1 day 2 hours') → 2012-05-04T10:00:00

12.2.5.13. to_real

Convertit une chaîne de caractères en nombre réel. Si la valeur ne peut pas être convertie en réel (ex: “123.56asd” est invalide), cette fonction ne renvoie rien. Les nombres sont arrondis après enregistrement si la précision est inférieure à celle du résultat après conversion.

Syntaxe

to_real(string)

Arguments

  • string - la chaîne de caractères à convertir en nombre réel

Exemples

  • to_real('123.45') → 123.45

12.2.5.14. to_string

Convertit un nombre en chaîne de caractères.

Syntaxe

to_string(number)

Arguments

  • number - Valeur entière ou réelle. Le nombre à convertir en chaîne de caractères.

Exemples

  • to_string(123) → “123”

12.2.5.15. to_time

Convertit une chaîne de caractères en objet heure. Une chaîne de format optionnelle peut être fournie pour analyser la chaîne ; voir QTime::fromString pour plus de documentation sur le format.

Syntaxe

to_time(string, [format], [language])

[] indique des éléments optionnels

Arguments

  • string - la chaîne de caractères représentant une valeur de temps

  • format - format utilisé pour convertir la chaîne de caractères en heure

  • language - langue (minuscule, deux ou trois lettres, code de langue ISO 639) utilisée pour convertir la chaîne de caractères en heure

Exemples

  • to_time('12:30:01') → 12:30:01

  • to_time('12:34','HH:mm') → 12:34:00

  • to_time('12:34','HH:mm','fr') → 12:34:00

12.2.6. Fonctions personnalisées

Ce groupe contient les fonctions créées par l’utilisateur. Consultez Éditeur de fonctions pour plus de détails.

12.2.7. Fonctions de Date et Heure

Ce groupe contient des fonctions permettant de gérer des données de date et d’heure. Ce groupe partage plusieurs fonctions avec les groupes Fonctions de conversion (to_date, to_time, to_datetime, to_interval) et Fonctions de Chaîne (format_date).

Note

Stocker des dates, dates-heures et intervalles de temps dans des champs

La possibilité de stocker les valeurs date, temps et date-horaire directement dans des champs dépend du fournisseur de la source de données (par exemple, un Shapefile accepte le format date, mais pas le format date-horaire ou temps). Voici quelques suggestions pour passer outre cette limitation :

  • Les dates, date-horaires et temps peuvent être stockés dans des attributs au format texte avec l’utilisation de la fonction format_date().

  • Les intervalles de temps peuvent être sauvegardés en format de nombre Entier ou Décimal avec l’utilisation d’une des fonctions d’extraction de date (par exemple day() pour avoir la durée exprimée en jours).

12.2.7.1. age

Renvoie la différence entre deux dates ou deux dates et heures.

La différence est renvoyée sous la forme d’un objet Interval et doit être utilisée avec une des fonctions qui suivent pour pouvoir extraire les informations utiles :

  • year

  • month

  • week

  • day

  • hour

  • minute

  • second

Syntaxe

age(datetime1, datetime2)

Arguments

  • datetime1 - une chaîne de caractères, une date ou une date et un temps représentant la date la plus éloignée dans le temps

  • datetime2 - une chaîne de caractères; une date ou une date et un temps représentant la date la moins éloignée dans le temps

Exemples

  • day(age('2012-05-12','2012-05-02')) → 10

  • hour(age('2012-05-12','2012-05-02')) → 240

12.2.7.2. datetime_from_epoch

Renvoie une valeur de date-heure dont la date et l’heure sont le nombre de millisecondes, ms, qui se sont écoulées depuis 1970-01-01T00: 00: 00.000, temps universel coordonné (Qt.UTC) et convertie en Qt.LocalTime.

Syntaxe

datetime_from_epoch(int)

Arguments

  • int - nombre (millisecondes)

Exemples

  • datetime_from_epoch(1483225200000) → 2017-01-01T00:00:00

12.2.7.3. day

Extrait le jour d’une valeur de date ou extrait le nombre de jours d’un intervalle.

Variante date

Extrait le jour d’une valeur de date ou de date-heure.

Syntaxe

day(date)

Arguments

  • date - une valeur de date ou de date-heure

Exemples

  • day('2012-05-12') → 12

Variante intervalle

Calcule la longueur en jours d’un intervalle.

Syntaxe

day(interval)

Arguments

  • interval - valeur d’intervalle dont il faut extraire le nombre de jours

Exemples

  • day(to_interval('3 days')) → 3

  • day(to_interval('3 weeks 2 days')) → 23

  • day(age('2012-01-01','2010-01-01')) → 730

12.2.7.4. day_of_week

Renvoie le jour de la semaine pour une date ou une valeur de date-heure. La valeur retournée est comprise entre 0 et 6 où 0 correspond à dimanche et 6 à samedi.

Syntaxe

day_of_week(date)

Arguments

  • date - valeur de date ou de date-heure

Exemples

  • day_of_week(to_date('2015-09-21')) → 1

12.2.7.5. epoch

Retourne l’intervale en millisecondes entre l’epoch unix et une date donnée.

Syntaxe

epoch(date)

Arguments

  • date - une valeur de date ou de date-heure

Exemples

  • epoch(to_date('2017-01-01')) → 1483203600000

12.2.7.6. format_date

Formate une date ou une chaîne de caractères selon un format personnalisé. Utilise le formatage des dates/temps de Qt. Voir QDateTime::toString.

Syntaxe

format_date(datetime, format, [language])

[] indique des éléments optionnels

Arguments

  • datetime - valeur de date, d’heure ou de date-heure

  • format - Modèle utilisé pour mettre en forme la chaîne.

    Expression

    Sortie

    d

    le numéro du jour sans zéro en préfixe (1 à 31)

    dd

    le numéro du jour avec zéro en préfixe (01 à 31)

    ddd

    le nom abrégé du jour selon la langue (i.e. “Lun” à “Dim”)

    dddd

    le nom complet du jour selon la langue (i.e. “Lundi” à “Dimanche”)

    M

    le numéro du mois sans zéro en préfixe (1 à 12)

    MM

    le numéro du mois avec zéro en préfixe (01 à 12)

    MMM

    le nom abrégé du mois selon la langue (i.e. “Jan” à “Déc”)

    MMMM

    le nom complet du mois selon la langue (i.e. “Janvier” à “Décembre”)

    yy

    l’année en nombre à deux chiffres (00 à 99)

    yyyy

    l’année en nombre à quatre chiffres

    Ces expressions peuvent être utilisée pour la partie horaire de la chaîne mise en forme :

    Expression

    Sortie

    h

    l’heure sans zéro en préfixe (0 à 23 ou 1 à 12 si affichage AM/PM)

    hh

    l’heure avec zéro en préfixe (00 à 23 ou 01 à 12 si affichage AM/PM)

    H

    l’heure sans zéro en préfixe (0 à 23, même si affichage AM/PM)

    HH

    l’heure avec zéro en préfixe (00 à 23, même si affichage AM/PM)

    m

    les minutes sans zéro en préfixe (0 à 59)

    mm

    les minutes avec zéro en préfixe (00 à 59)

    s

    les secondes sans zéro en préfixe (0 à 59)

    ss

    les secondes avec zéro en préfixe (00 à 59)

    z

    les millisecondes sans zéros en préfixe (0 à 999)

    zzz

    les millisecondes avec zéros en préfixe (000 à 999)

    AP or A

    Interprète comme un horaire AM/PM. AP correspondra à la fois à “AM” et “PM”.

    ap or a

    Interprète comme un horaire AM/PM. ap correspondra à la fois à “am” et “pm”.

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to format the date into a custom string. By default the current QGIS user locale is used.

Exemples

  • format_date('2012-05-15','dd.MM.yyyy') → “15.05.2012”

  • format_date('2012-05-15','d MMMM yyyy','fr') → “15 mai 2012”

  • format_date('2012-05-15','dddd') → “Tuesday”, if the current locale is an English variant

  • format_date('2012-05-15 13:54:20','dd.MM.yy') → “15.05.12”

  • format_date('13:54:20','hh:mm AP') → “01:54 PM”

12.2.7.7. hour

Extrait l’heure d’une valeur de date-heure ou d’heure ou extrait le nombre d’heures d’un intervalle.

Variante date-heure ou heure

Extrait l’heure d’une valeur d’heure ou de date-heure.

Syntaxe

hour(datetime)

Arguments

  • datetime - une valeur d’heure ou de date-heure

Exemples

  • hour( to_datetime('2012-07-22 13:24:57') ) → 13

Variante intervalle

Calcule la longueur en heures d’un intervalle.

Syntaxe

hour(interval)

Arguments

  • interval - valeur d’intervalle dont il faut extraire le nombre d’heures

Exemples

  • hour(to_interval('3 hours')) → 3

  • hour(age('2012-07-22T13:00:00','2012-07-22T10:00:00')) → 3

  • hour(age('2012-01-01','2010-01-01')) → 17520

12.2.7.8. make_date

Crée une valeur de date à partir d’une année, un mois et un jour.

Syntaxe

make_date(year, month, day)

Arguments

  • year - Numéro de l’année. Les années 1 à 99 sont interprétées telles quelles. L’année 0 est invalide.

  • month - Numéro du mois, où 1 =Janvier

  • day - Numéro du jour où 1 est le premier jour du mois

Exemples

  • make_date(2020,5,4) → date value 2020-05-04

12.2.7.9. make_datetime

Crée une valeur de date-heure à partir d’une année, un mois, un jour, une heure, une minute et une seconde.

Syntaxe

make_datetime(year, month, day, hour, minute, second)

Arguments

  • year - Numéro de l’année. Les années 1 à 99 sont interprétées telles quelles. L’année 0 est invalide.

  • month - Numéro du mois, où 1 =Janvier

  • day - Numéro du jour où 1 est le premier jour du mois

  • hour - L’heure

  • minute - Les minutes

  • second - Les secondes (les valeurs de fraction incluent les millisecondes)

Exemples

  • make_datetime(2020,5,4,13,45,30.5) → datetime value 2020-05-04 13:45:30.500

12.2.7.10. make_interval

Crée une valeur d’intervalle à partir d’un nombre d’années, de mois, de jours, d’heures, de minutes et de secondes.

Syntaxe

make_interval([years=0], [months=0], [weeks=0], [days=0], [hours=0], [minutes=0], [seconds=0])

[] indique des éléments optionnels

Arguments

  • years - Nombre d’années (une année dure 365.25 jours).

  • months - Nombre de mois (un mois dure 30 jours)

  • weeks - Nombre de semaines

  • days - Nombre de jours

  • hours - Nombre d’heures

  • minutes - Nombre de minutes

  • seconds - Nombre de secondes

Exemples

  • make_interval(hours:=3) → interval: 3 hours

  • make_interval(days:=2, hours:=3) → interval: 2.125 days

  • make_interval(minutes:=0.5, seconds:=5) → interval: 35 seconds

12.2.7.11. make_time

Crée une valeur d’heure à partir d’une heure, une minute et une seconde.

Syntaxe

make_time(hour, minute, second)

Arguments

  • hour - L’heure

  • minute - Les minutes

  • second - Les secondes (les valeurs de fraction incluent les millisecondes)

Exemples

  • make_time(13,45,30.5) → time value 13:45:30.500

12.2.7.12. minute

Extrait les minutes d’une valeur de date-heure ou d’heure ou extrait le nombre de minutes d’un intervalle.

Variante date-heure ou heure

Extrait les minutes d’une valeur d’heure ou de date-heure.

Syntaxe

minute(datetime)

Arguments

  • datetime - une valeur d’heure ou de date-heure

Exemples

  • minute( to_datetime('2012-07-22 13:24:57') ) → 24

Variante intervalle

Calcule la longueur en minutes d’un intervalle.

Syntaxe

minute(interval)

Arguments

  • interval - valeur d’intervalle dont il faut extraire le nombre de minutes

Exemples

  • minute(to_interval('3 minutes')) → 3

  • minute(age('2012-07-22T00:20:00','2012-07-22T00:00:00')) → 20

  • minute(age('2012-01-01','2010-01-01')) → 1051200

12.2.7.13. month

Extrait le mois d’une valeur de date ou extrait le nombre de mois d’un intervalle.

Variante date

Extrait le mois d’une valeur de date ou de date-heure.

Syntaxe

month(date)

Arguments

  • date - une valeur de date ou de date-heure

Exemples

  • month('2012-05-12') → 05

Variante intervalle

Calcule la longueur en mois d’un intervalle.

Syntaxe

month(interval)

Arguments

  • interval - valeur d’intervalle dont il faut extraire le nombre de mois

Exemples

  • month(to_interval('3 months')) → 3

  • month(age('2012-01-01','2010-01-01')) → 4.03333

12.2.7.14. now

Renvoie la date et l’heure actuelle. C’est une fonction statique qui renvoie des résultats cohérents pendant son évaluation. L’heure renvoyée est celle du moment ou l’expression est préparée.

Syntaxe

now()

Exemples

  • now() → 2012-07-22T13:24:57

12.2.7.15. second

Extrait les secondes d’une valeur de date-heure ou d’heure ou extrait le nombre de secondes d’un intervalle.

Variante date-heure ou heure

Extrait les secondes d’une valeur d’heure ou de date-heure.

Syntaxe

second(datetime)

Arguments

  • datetime - une valeur d’heure ou de date-heure

Exemples

  • second( to_datetime('2012-07-22 13:24:57') ) → 57

Variante intervalle

Calcule la longueur en secondes d’un intervalle.

Syntaxe

second(interval)

Arguments

  • interval - valeur d’intervalle dont il faut extraire le nombre de secondes

Exemples

  • second(to_interval('3 minutes')) → 180

  • second(age('2012-07-22T00:20:00','2012-07-22T00:00:00')) → 1200

  • second(age('2012-01-01','2010-01-01')) → 63072000

12.2.7.16. to_date

Converts a string into a date object. An optional format string can be provided to parse the string; see QDate::fromString or the documentation of the format_date function for additional documentation on the format. By default the current QGIS user locale is used.

Syntaxe

to_date(string, [format], [language])

[] indique des éléments optionnels

Arguments

  • string - la chaîne représentant la valeur de date

  • format - format utilisé pour convertir la chaîne de caractères en date

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to convert the string into a date. By default the current QGIS user locale is used.

Exemples

  • to_date('2012-05-04') → 2012-05-04

  • to_date('June 29, 2019','MMMM d, yyyy') → 2019-06-29, if the current locale uses the name “June” for the sixth month, otherwise an error occurs

  • to_date('29 juin, 2019','d MMMM, yyyy','fr') → 2019-06-29

12.2.7.17. to_datetime

Converts a string into a datetime object. An optional format string can be provided to parse the string; see QDate::fromString, QTime::fromString or the documentation of the format_date function for additional documentation on the format. By default the current QGIS user locale is used.

Syntaxe

to_datetime(string, [format], [language])

[] indique des éléments optionnels

Arguments

  • string - la chaîne représentant la valeur de date et de temps

  • format - format utilisé pour convertir la chaîne de caractères en date-heure

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to convert the string into a datetime. By default the current QGIS user locale is used.

Exemples

  • to_datetime('2012-05-04 12:50:00') → 2012-05-04T12:50:00

  • to_datetime('June 29, 2019 @ 12:34','MMMM d, yyyy @ HH:mm') → 2019-06-29T12:34, if the current locale uses the name “June” for the sixth month, otherwise an error occurs

  • to_datetime('29 juin, 2019 @ 12:34','d MMMM, yyyy @ HH:mm','fr') → 2019-06-29T12:34

12.2.7.18. to_interval

Convertit une chaîne de caractère en objet d’intervalle de temps. Cette fonction peut être utilisée pour récupérer les jours, heures, mois, etc. d’une date.

Syntaxe

to_interval(string)

Arguments

  • string - une chaîne de caractères représentant un intervalle de temps. Les formats disponibles incluent {n} jours {n} heures {n} mois.

Exemples

  • to_interval('1 day 2 hours') → interval: 1.08333 days

  • to_interval( '0.5 hours' ) → interval: 30 minutes

  • to_datetime('2012-05-05 12:00:00') - to_interval('1 day 2 hours') → 2012-05-04T10:00:00

12.2.7.19. to_time

Convertit une chaîne de caractères en objet heure. Une chaîne de format optionnelle peut être fournie pour analyser la chaîne ; voir QTime::fromString pour plus de documentation sur le format.

Syntaxe

to_time(string, [format], [language])

[] indique des éléments optionnels

Arguments

  • string - la chaîne de caractères représentant une valeur de temps

  • format - format utilisé pour convertir la chaîne de caractères en heure

  • language - langue (minuscule, deux ou trois lettres, code de langue ISO 639) utilisée pour convertir la chaîne de caractères en heure

Exemples

  • to_time('12:30:01') → 12:30:01

  • to_time('12:34','HH:mm') → 12:34:00

  • to_time('12:34','HH:mm','fr') → 12:34:00

12.2.7.20. week

Extrait le numéro de semaine d’une valeur de date ou le nombre de semaines d’un intervalle de temps.

Variante date

Extrait le numéro de semaine d’une valeur de date ou de date-heure.

Syntaxe

week(date)

Arguments

  • date - une valeur de date ou de date-heure

Exemples

  • week('2012-05-12') → 19

Variante intervalle

Calcule la longueur en semaines d’un intervalle.

Syntaxe

week(interval)

Arguments

  • interval - valeur d’intervalle dont il faut extraire le nombre de mois

Exemples

  • week(to_interval('3 weeks')) → 3

  • week(age('2012-01-01','2010-01-01')) → 104.285

12.2.7.21. year

Extrait l’année d’une valeur de date ou extrait le nombre d’années d’un intervalle.

Variante date

Extrait l’année d’une valeur de date ou de date-heure.

Syntaxe

year(date)

Arguments

  • date - une valeur de date ou de date-heure

Exemples

  • year('2012-05-12') → 2012

Variante intervalle

Calcule la longueur en années d’un intervalle.

Syntaxe

year(interval)

Arguments

  • interval - valeur d’intervalle dont il faut extraire le nombre d’années

Exemples

  • year(to_interval('3 years')) → 3

  • year(age('2012-01-01','2010-01-01')) → 1.9986

Quelques exemples :

Hormis ces fonctions, soustraire des dates, dates-horaires ou temps avec l’opérateur - (moins) va retourner un intervalle de temps.

Ajouter ou soustraire un intervalle de temps à une date, une date-horaire ou un temps en utilisant les opérateurs + (plus) ou - (moins) va retourner une date-horaire.

  • Obtenir le nombre de jours depuis la sortie de QGIS 3.0 :

    to_date('2017-09-29') - to_date(now())
    -- Returns <interval: 203 days>
    
  • La même chose avec le temps :

    to_datetime('2017-09-29 12:00:00') - now()
    -- Returns <interval: 202.49 days>
    
  • Obtenir la date-horaire de 100 jours à partir de maintenant :

    now() + to_interval('100 days')
    -- Returns <datetime: 2017-06-18 01:00:00>
    

12.2.8. Champs et Valeurs

Contains a list of fields from the layer, and special values.

Double-cliquez sur le nom d’un champ pour l’ajouter à votre expression. Vous pouvez aussi taper le nom de votre champ entre guillemets ou son alias.

Pour retrouver les valeurs des champs à utiliser dans une expression, sélectionner le champ et dans l’onglet de champ qui s’affiche choisir entre Echantillon de 10 et Tous uniques. Les valeurs voulues sont alors affichées et vous pouvez utiliser la boîte Rechercher… en haut de la liste pour filtrer le résultat. Des valeurs échantillonnées peuvent également être obtenues avec un clic-droit sur un champ.

Pour ajouter une valeur à une expression que vous êtes en train d’écrire, double-cliquez dessus dans la liste proposée. Si la valeur n’est pas une chaîne de caractères, elle sera mise entre apostrophes, sinon, aucune apostrophe n’est nécessaire.

12.2.8.1. NULL

Équivaut à une valeur NULL.

Syntaxe

NULL

Exemples

  • NULL → une valeur NULL

Note

To test for NULL use an IS NULL or IS NOT NULL expression.

12.2.9. Fonctions Fichiers et Chemins

Ce groupe contient des fonctions qui manipulent les noms de fichiers et de chemins.

12.2.9.1. base_file_name

Renvoie le nom de base du fichier sans le répertoire ou le suffixe du fichier.

Syntaxe

base_file_name(path)

Arguments

  • path - un chemin de fichier

Exemples

  • base_file_name('/home/qgis/data/country_boundaries.shp') → “country_boundaries”

12.2.9.2. exif

Retrieves exif tag values from an image file.

Syntaxe

exif(path, [tag])

[] indique des éléments optionnels

Arguments

  • path - An image file path.

  • tag - The tag to return. If empty, a map with all exif tag values will be returned.

Exemples

  • exif('/my/photo.jpg','Exif.Image.Orientation') → 0

12.2.9.3. file_exists

Renvoie vrai si un chemin de fichier existe.

Syntaxe

file_exists(path)

Arguments

  • path - un chemin de fichier

Exemples

  • file_exists('/home/qgis/data/country_boundaries.shp') → vrai

12.2.9.4. file_name

Renvoie le nom d’un fichier (y compris l’extension de fichier), à l’exclusion du répertoire.

Syntaxe

file_name(path)

Arguments

  • path - un chemin de fichier

Exemples

  • file_name('/home/qgis/data/country_boundaries.shp') → “country_boundaries.shp”

12.2.9.5. file_path

Renvoie le répertoire d’un chemin de fichier. Ceci n’inclut pas le nom du fichier.

Syntaxe

file_path(path)

Arguments

  • path - un chemin de fichier

Exemples

  • file_path('/home/qgis/data/country_boundaries.shp') → “/home/qgis/data”

12.2.9.6. file_size

Renvoie la taille (en octets) d’un fichier.

Syntaxe

file_size(path)

Arguments

  • path - un chemin de fichier

Exemples

  • file_size('/home/qgis/data/country_boundaries.geojson') → 5674

12.2.9.7. file_suffix

Renvoie le suffixe (l’extension) d’un chemin de fichier.

Syntaxe

file_suffix(path)

Arguments

  • path - un chemin de fichier

Exemples

  • file_suffix('/home/qgis/data/country_boundaries.shp') → “shp”

12.2.9.8. is_directory

Renvoie vrai si un chemin correspond à un répertoire.

Syntaxe

is_directory(path)

Arguments

  • path - un chemin de fichier

Exemples

  • is_directory('/home/qgis/data/country_boundaries.shp') → faux

  • is_directory('/home/qgis/data/') → vrai

12.2.9.9. is_file

Renvoie vrai si un chemin correspond à un fichier.

Syntaxe

is_file(path)

Arguments

  • path - un chemin de fichier

Exemples

  • is_file('/home/qgis/data/country_boundaries.shp') → vrai

  • is_file('/home/qgis/data/') → faux

12.2.10. Fonctions du formulaire

Ce groupe contient des fonctions qui fonctionnent exclusivement dans le contexte du formulaire d’attributs. Par exemple, dans les paramètres de widgets de champs.

12.2.10.1. current_parent_value

Utilisable uniquement dans un contexte de formulaire intégré, cette fonction renvoie la valeur actuelle, non sauvegardée, d’un champ du formulaire parent en cours d’édition. Cette valeur sera différente des valeurs d’attribut réelles de l’entité parent pour les entités qui sont actuellement en cours d’édition ou qui n’ont pas encore été ajoutées à une couche parent. Lorsqu’elle est utilisée dans une expression de filtre de widget de relation de valeur, cette fonction doit être enveloppée dans un « coalesce() » qui peut récupérer l’entité parent réelle de la couche lorsque le formulaire n’est pas utilisé dans un contexte intégré.

Syntaxe

current_parent_value(field_name)

Arguments

  • nom_du_champ - un nom de champ dans le formulaire parent actuel

Exemples

  • current_parent_value( 'FIELD_NAME' ) → La valeur actuelle d’un champ “FIELD_NAME” dans le formulaire parent.

12.2.10.2. current_value

Renvoie la valeur actuelle, non sauvegardée, d’un champ dans la ligne du formulaire ou de la table en cours d’édition. Cette valeur sera différente des valeurs d’attribut réelles de l’élément pour les éléments en cours d’édition ou qui n’ont pas encore été ajoutés à une couche.

Syntaxe

current_value(field_name)

Arguments

  • nom_de_champ - un nom de champ dans le formulaire ou la ligne de la table en cours

Exemples

  • current_value( 'FIELD_NAME' ) → La valeur actuelle du champ “FIELD_NAME”.

12.2.11. Fonctions de correspondance floue

Ce groupe contient des fonctions destinées à réaliser des comparaisons floues entre les valeurs.

12.2.11.1. hamming_distance

Renvoie la distance de Hamming entre deux chaînes de caractères. Elle correspond au nombre de caractères aux positions correspondantes des chaînes en entrées où les caractères sont différents. Les chaînes en entrée doivent avoir la même longueur et la comparaison est sensible à la casse.

Syntaxe

hamming_distance(string1, string2)

Arguments

  • string1 - une chaîne de caractères

  • string2 - une chaîne de caractères

Exemples

  • hamming_distance('abc','xec') → 2

  • hamming_distance('abc','ABc') → 2

  • hamming_distance(upper('abc'),upper('ABC')) → 0

  • hamming_distance('abc','abcd') → NULL

12.2.11.2. levenshtein

Renvoie la distance de Levenshtein entre deux chaînes de caractères. Cela correspond au nombre minimum de modifications (insertions, suppression ou substitution) de caractères pour passer d’une chaîne de caractères à une autre.

La distance de Levenshtein est une mesure de la similarité entre deux chaînes de caractères. Plus la distance est faible, plus les chaînes sont semblables et plus grande est la distance, plus les chaînes sont différentes. Cette distance est sensible à la casse.

Syntaxe

levenshtein(string1, string2)

Arguments

  • string1 - une chaîne de caractères

  • string2 - une chaîne de caractères

Exemples

  • levenshtein('chat','chaton') → 2

  • levenshtein('Chat','chat') → 1

  • levenshtein(upper('Chat'),upper('chat')) → 0

12.2.11.3. longest_common_substring

Renvoie la sous-chaîne de caractères commune la plus longue entre deux chaînes de caractères. Cette sous-chaîne est la plus longue chaîne de caractères qui est une sous-chaîne des deux chaînes de caractères en entrée. Par exemple : la sous-chaîne la plus longue entre « ABABC » et « BABCA » est « BABC ». La sous-chaîne est sensible à la casse.

Syntaxe

longest_common_substring(string1, string2)

Arguments

  • string1 - une chaîne de caractères

  • string2 - une chaîne de caractères

Exemples

  • longest_common_substring('ABABC','BABCA') → “BABC”

  • longest_common_substring('abcDeF','abcdef') → “abc”

  • longest_common_substring(upper('abcDeF'),upper('abcdex')) → “ABCDE”

12.2.11.4. soundex

Renvoie la représentation Soundex d’une chaîne de caractères. Soundex est un algorithme de correspondance phonétique. Les chaînes avec des sons semblables seront représentées avec le même code Soundex.

Syntaxe

soundex(string)

Arguments

  • string - une chaîne de caractères

Exemples

  • soundex('robert') → “R163”

  • soundex('rupert') → “R163”

  • soundex('rubin') → “R150”

12.2.12. Fonctions Générales

Ce groupe contient des fonctions générales assorties.

12.2.12.1. env

Obtient une variable d’environnement et renvoie son contenu sous forme de chaîne. Si la variable n’est pas trouvée, NULL sera renvoyé. Ceci est pratique pour injecter une configuration spécifique au système comme des lettres de lecteur ou des préfixes de chemin d’accès. La définition des variables d’environnement dépend du système d’exploitation, veuillez vérifier auprès de votre administrateur système ou dans la documentation du système d’exploitation comment cela peut être défini.

Syntaxe

env(name)

Arguments

  • name - Le nom de la variable d’environnement à récupérer.

Exemples

  • env( 'LANG' ) → “en_US.UTF-8”

  • env( 'MY_OWN_PREFIX_VAR' ) → “Z:”

  • env( 'I_DO_NOT_EXIST' ) → NULL

12.2.12.2. eval

Évalue une expression passée dans une chaîne. Utile pour développer des paramètres dynamiques passés en tant que variables ou champs de contexte.

Syntaxe

eval(expression)

Arguments

  • expression - une chaîne de caractère d’expression

Exemples

  • eval('\'sympa\'') → “sympa”

  • eval(@variable_expression) → [le résultat de l’évaluation de @expression_var, quel qu’il soit…]

12.2.12.3. eval_template

Évalue un modèle qui est passé dans une chaîne. Utile pour développer les paramètres dynamiques passés comme variables de contexte ou champs.

Syntaxe

eval_template(template)

Arguments

  • modèle - une chaîne modèle

Exemples

  • eval_template('QGIS [% upper(\'dechire\') %]') → QGIS DECHIRE

12.2.12.4. is_layer_visible

Renvoie « Vrai » si la couche spécifiée est visible.

Syntaxe

is_layer_visible(layer)

Arguments

  • layer - une chaîne de caractères représentant soit un nom de couche soit un ID de couche

Exemples

  • is_layer_visible('raster_de_base') → Vrai

12.2.12.5. mime_type

Returns the mime type of the binary data.

Syntaxe

mime_type(bytes)

Arguments

  • bytes - la donnée binaire

Exemples

  • mime_type('<html><body></body></html>') → text/html

  • mime_type(from_base64('R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAIAOw==')) → image/gif

12.2.12.6. var

Renvoie la valeur stockée dans une variable.

Syntaxe

var(name)

Arguments

  • name - un nom de variable

Exemples

  • var('qgis_version') → “2.12”

Plus de détails : Liste des variables par défaut

12.2.12.7. with_variable

Cette fonction définit une variable pour tout code d’expression qui sera fourni comme troisième argument. Ceci n’est utile que pour des expressions compliquées, où la même valeur calculée doit être utilisée à différents endroits.

Syntaxe

with_variable(name, value, expression)

Arguments

  • name - le nom de la variable à définir

  • value - la valeur à définir

  • expression - l’expression pour laquelle la variable sera disponible

Exemples

  • with_variable('ma_somme', 1 + 2 + 3, @ma_somme * 2 + @ma_somme * 5) → 42

12.2.13. Fonctions de Géométrie

Ce groupe contient des fonctions qui opèrent sur des objets géométriques (par exemple, buffer, transform, $area).

12.2.13.1. affine_transform

Returns the geometry after an affine transformation. Calculations are in the Spatial Reference System of this geometry. The operations are performed in a scale, rotation, translation order. If there is a Z or M offset but the coordinate is not present in the geometry, it will be added.

Syntaxe

affine_transform(geometry, delta_x, delta_y, rotation_z, scale_x, scale_y, [delta_z=0], [delta_m=0], [scale_z=1], [scale_m=1])

[] indique des éléments optionnels

Arguments

  • geometry - une geometrie

  • delta_x - translation suivant l’axe x

  • delta_y - translation suivant l’axe y

  • rotation_z - rotation autour de l’axe z en degrés, dans le sens inverse des aiguilles d’une montre

  • scale_x - le facteur d’échelle sur l’axe x

  • scale_y - le facteur d’échelle sur l’axe y

  • delta_z - translation suivant l’axe z

  • delta_m - translation suivant l’axe m

  • scale_z - le facteur d’échelle sur l’axe z

  • scale_m - le facteur d’échelle sur l’axe m

Exemples

  • geom_to_wkt(affine_transform(geom_from_wkt('LINESTRING(1 1, 2 2)'), 2, 2, 0, 1, 1)) → “LineString (3 3, 4 4)”

  • geom_to_wkt(affine_transform(geom_from_wkt('POLYGON((0 0, 0 3, 2 2, 0 0))'), 0, 0, -90, 1, 2)) → “Polygon ((0 0, 6 0, 4 -2, 0 0))”

  • geom_to_wkt(affine_transform(geom_from_wkt('POINT(3 1)'), 0, 0, 0, 1, 1, 5, 0)) → “PointZ (3 1 5)”

12.2.13.2. angle_at_vertex

Renvoie l’angle de la bissectrice (angle moyen) de la géométrie pour un sommet spécifique d’une géométrie de polyligne. Les angles sont en degrés dans le sens des aiguilles d’une montre à partir du nord.

Syntaxe

angle_at_vertex(geometry, vertex)

Arguments

  • geometry - une géométrie de polyligne

  • vertex - index du sommet, à partir de 0 ; si la valeur est négative, l’index du sommet sélectionné sera le nombre total de sommets moins la valeur absolue.

Exemples

  • angle_at_vertex(geometry:=geom_from_wkt('LineString(0 0, 10 0, 10 10)'),vertex:=1) → 45.0

12.2.13.3. $area

Renvoie la surface de l’entité courante. La surface calculée par cette fonction respecte à la fois le paramétrage de l’ellipsoïde du projet et les unités de distance. Par exemple, si un ellipsoïde a été paramétré pour le projet alors la surface sera ellipsoïdale, sinon, elle sera calculée selon un plan.

Syntaxe

$area

Exemples

  • $area → 42

12.2.13.4. area

Renvoie la surface d’une géométrie polygonale. Les calculs sont toujours planimétriques dans le Système de Coordonnées de Référence (SCR) de la géométrie et les unités de la surface correspondent aux unités du SCR. Cette fonction est différente des calculs effectués par la fonction $area qui réalise des calculs ellipsoïdaux en se basant sur les paramètres d’ellipsoïde du projet et des unités de surface.

Syntaxe

area(geometry)

Arguments

  • geometry - objet géométrique polygonal

Exemples

  • area(geom_from_wkt('POLYGON((0 0, 4 0, 4 2, 0 2, 0 0))')) → 8.0

12.2.13.5. azimuth

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 point_a et point_b.

Syntaxe

azimuth(point_a, point_b)

Arguments

  • point_a - géométrie ponctuelle

  • point_b - géométrie ponctuelle

Exemples

  • degrees( azimuth( make_point(25, 45), make_point(75, 100) ) ) → 42.273689

  • degrees( azimuth( make_point(75, 100), make_point(25,45) ) ) → 222.273689

12.2.13.6. boundary

Retourne la fermeture de la limite combinatoire de la géométrie (c’est-à-dire la limite topologique de la géométrie). Par exemple, une géométrie de polygone aura une limite composée des lignes de chaque anneau du polygone. Certains types de géométrie n’ont pas de limite définie, par exemple les points ou les collections de géométrie, et retourneront NULL.

Syntaxe

boundary(geometry)

Arguments

  • geometry - une geometrie

Exemples

  • geom_to_wkt(boundary(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))'))) → “LineString(1 1,0 0,-1 1,1 1)”

  • geom_to_wkt(boundary(geom_from_wkt('LineString(1 1,0 0,-1 1)'))) → “MultiPoint ((1 1),(-1 1))”

Plus de détails : l’algorithme Limite

12.2.13.7. bounds

Retourne une géométrie qui représente la boîte de délimitation d’une géométrie d’entrée. Les calculs sont effectués dans le système de référence spatiale de cette géométrie.

Syntaxe

bounds(geometry)

Arguments

  • geometry - une geometrie

Exemples

  • bounds($geometry) -> boîte englobante de la géométrie de l’élément en cours

  • geom_to_wkt(bounds(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))'))) → “Polygon ((-1 0, 1 0, 1 1, -1 1, -1 0))”

../../../_images/bounding_box.png

Fig. 12.4 Les lignes noires représentent les rectangles d’encombrement de chaque entité polygonale.

Plus de détails : l’algorithme Emprise

12.2.13.8. bounds_height

Retourne la hauteur de la boîte englobante d’une géométrie. Les calculs sont effectués dans le système de référence spatiale de cette géométrie.

Syntaxe

bounds_height(geometry)

Arguments

  • geometry - une geometrie

Exemples

  • bounds_height($geometry) → hauteur de la boîte englobante de la géométrie de l’élément en cours

  • bounds_height(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))')) → 1

12.2.13.9. bounds_width

Retourne la largeur de la boîte englobante d’une géométrie. Les calculs sont effectués dans le système de référence spatiale de cette géométrie.

Syntaxe

bounds_width(geometry)

Arguments

  • geometry - une geometrie

Exemples

  • bounds_width($geometry) → largeur de la boîte englobante de la géométrie de l’élément en cours

  • bounds_width(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))')) → 2

12.2.13.10. buffer

Renvoie une géométrie qui représente tous les points dont la distance par rapport à cette géométrie est inférieure ou égale à la distance. Les calculs sont effectués dans le système de référence spatiale de cette géométrie.

Syntaxe

buffer(geometry, distance, [segments=8], [cap=”round”], [join=”round”], [miter_limit=2])

[] indique des éléments optionnels

Arguments

  • geometry - une geometrie

  • distance - distance du tampon en unités de couche

  • segments - nombre de segments à utiliser pour représenter un quart de cercle lorsqu’un style de jointure circulaire est utilisé. Un nombre plus élevé donne un tampon plus lisse avec plus de nœuds.

  • cap - end cap style for buffer. Valid values are “round”, “flat” or “square”

  • join - join style for buffer. Valid values are “round”, “bevel” or “miter”.

  • miter_limit - miter distance limit, for use when the join style is set to “miter”

Exemples

  • buffer($geometry, 10.5) → polygone de la géométrie de l’élément actuel, tamponné par 10,5 unités

../../../_images/buffer1.png

Fig. 12.5 Buffer (in yellow) of points, line and polygon

Plus de détails : l’algorithme Tampon

12.2.13.11. buffer_by_m

Crée un tampon le long d’une géométrie linéaire où le diamètre du tampon varie en fonction des valeurs m aux sommets des lignes.

Syntaxe

buffer_by_m(geometry, [segments=8])

[] indique des éléments optionnels

Arguments

  • geometry - géométrie en entrée. Doit être une géométrie (multi)linéaire avec des valeurs m.

  • segments - nombre de segments pour obtenir des courbes approximatives d’un quart de cercle dans le tampon.

Exemples

  • buffer_by_m(geometry:=geom_from_wkt('LINESTRINGM(1 2 0.5, 4 2 0.2)'),segments:=8) → Un tampon de largeur variable commençant avec un diamètre de 0,5 et se terminant avec un diamètre de 0,2 le long de la géométrie de la ligne.

../../../_images/variable_buffer_m.png

Fig. 12.6 Buffering line features using the m value on the vertices

Plus de détails : l’algorithme buffer à largeur variable (par valeur M)

12.2.13.12. centroid

Renvoie le centre géométrique d’une géométrie.

Syntaxe

centroid(geometry)

Arguments

  • geometry - une geometrie

Exemples

  • centroid($geometry) → un point de geometri

Plus de détails : l’algorithme Centroïdes

12.2.13.13. close_line

Retourne une chaîne de ligne fermée de la chaîne de ligne d’entrée en ajoutant le premier point à la fin de la ligne, si elle n’est pas déjà fermée. Si la géométrie n’est pas une chaîne de lignes ou une chaîne multi-lignes, le résultat sera NULL.

Syntaxe

close_line(geometry)

Arguments

  • geometry - une géométrie de ligne

Exemples

  • geom_to_wkt(close_line(geom_from_wkt('LINESTRING(0 0, 1 0, 1 1)'))) → “LineString (0 0, 1 0, 1 1, 0 0)”

  • geom_to_wkt(close_line(geom_from_wkt('LINESTRING(0 0, 1 0, 1 1, 0 0)'))) → “LineString (0 0, 1 0, 1 1, 0 0)”

12.2.13.14. closest_point

Renvoie le point sur la géométrie1 qui est le plus proche de la géométrie2.

Syntaxe

closest_point(geometry1, geometry2)

Arguments

  • géométrie1 - géométrie pour trouver le point le plus proche sur

  • geometry2 - géométrie pour trouver le point le plus proche

Exemples

  • geom_to_wkt(closest_point(geom_from_wkt('LINESTRING (20 80, 98 190, 110 180, 50 75 )'),geom_from_wkt('POINT(100 100)'))) → “Point(73.0769 115.384)”

12.2.13.15. collect_geometries

Rassemble un ensemble de géométries en un objet géométrique en plusieurs parties.

Liste d’arguments variante

Les parties géométriques sont spécifiées comme des arguments distincts de la fonction.

Syntaxe

collect_geometries(geometry1, geometry2, …)

Arguments

  • geometry - une geometrie

Exemples

  • geom_to_wkt(collect_geometries(make_point(1,2), make_point(3,4), make_point(5,6))) → “MultiPoint ((1 2),(3 4),(5 6))”

Array variant

Les parties géométriques sont spécifiées sous la forme d’une liste.

Syntaxe

collect_geometries(array)

Arguments

  • array - liste d’objets géométriques

Exemples

  • geom_to_wkt(collect_geometries(array(make_point(1,2), make_point(3,4), make_point(5,6)))) → “MultiPoint ((1 2),(3 4),(5 6))”

Plus de détails : l’algorithme Collecter les géométries

12.2.13.16. combine

Retourne la combinaison de deux géométries.

Syntaxe

combine(geometry1, geometry2)

Arguments

  • geométry1 - une géométrie

  • geometry2 - une géométrie

Exemples

  • geom_to_wkt( combine( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 2 1)' ) ) ) → “MULTILINESTRING((4 4, 2 1), (3 3, 4 4), (4 4, 5 5))”

  • geom_to_wkt( combine( geom_from_wkt( 'LINESTRING(3 3, 4 4)' ), geom_from_wkt( 'LINESTRING(3 3, 6 6, 2 1)' ) ) ) → “LINESTRING(3 3, 4 4, 6 6, 2 1)”

12.2.13.17. contains

Teste si une géométrie en contient une autre. Renvoie vrai si et seulement si aucun point de la géométrie2 ne se trouve à l’extérieur de la géométrie1, et si au moins un point de l’intérieur de la géométrie2 se trouve à l’intérieur de la géométrie1.

Syntaxe

contains(geometry1, geometry2)

Arguments

  • geométry1 - une géométrie

  • geometry2 - une géométrie

Exemples

  • contains( geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))' ), geom_from_wkt( 'POINT(0.5 0.5 )' ) ) → true

  • contains( geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → false

Plus de détails : overlay_contains

12.2.13.18. convex_hull

Retourne la coque convexe d’une géométrie. Elle représente la géométrie convexe minimale qui englobe toutes les géométries de l’ensemble.

Syntaxe

convex_hull(geometry)

Arguments

  • geometry - une geometrie

Exemples

  • geom_to_wkt( convex_hull( geom_from_wkt( 'LINESTRING(3 3, 4 4, 4 10)' ) ) ) → “POLYGON((3 3, 4 10, 4 4, 3 3))”

Plus de détails : l’algorithme Enveloppe convexe

12.2.13.19. crosses

Teste si une géométrie en croise une autre. Le résultat est vrai si les géométries fournies ont certains points intérieurs communs, mais pas tous.

Syntaxe

crosses(geometry1, geometry2)

Arguments

  • geométry1 - une géométrie

  • geometry2 - une géométrie

Exemples

  • crosses( geom_from_wkt( 'LINESTRING(3 5, 4 4, 5 3)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → true

  • crosses( geom_from_wkt( 'POINT(4 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → false

Plus de détails : overlay_crosses

12.2.13.20. difference

Renvoie une géométrie qui représente la partie de la géométrie1 qui ne recoupe pas la géométrie2.

Syntaxe

difference(geometry1, geometry2)

Arguments

  • geométry1 - une géométrie

  • geometry2 - une géométrie

Exemples

  • geom_to_wkt( difference( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4)' ) ) ) → “LINESTRING(4 4, 5 5)”

Plus de détails : l’algorithme Difference

12.2.13.21. disjoint

Teste si des géométries ne s’intersectent pas. Renvoie vrai si les géométries n’ont aucune surface en commun.

Syntaxe

disjoint(geometry1, geometry2)

Arguments

  • geométry1 - une géométrie

  • geometry2 - une géométrie

Exemples

  • disjoint( geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0 ))' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → true

  • disjoint( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'POINT(4 4)' )) → false

Plus de détails : overlay_disjoint

12.2.13.22. 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.

Syntaxe

distance(geometry1, geometry2)

Arguments

  • geométry1 - une géométrie

  • geometry2 - une géométrie

Exemples

  • distance( geom_from_wkt( 'POINT(4 4)' ), geom_from_wkt( 'POINT(4 8)' ) ) → 4

12.2.13.23. distance_to_vertex

Renvoie la distance le long de la géométrie à un sommet spécifié.

Syntaxe

distance_to_vertex(geometry, vertex)

Arguments

  • geometry - une géométrie de polyligne

  • vertex - index du sommet, à partir de 0 ; si la valeur est négative, l’index du sommet sélectionné sera le nombre total de sommets moins la valeur absolue.

Exemples

  • distance_to_vertex(geometry:=geom_from_wkt('LineString(0 0, 10 0, 10 10)'),vertex:=1) → 10.0

12.2.13.24. end_point

Renvoie le dernier nœud d’une géométrie.

Syntaxe

end_point(geometry)

Arguments

  • geometry - objet géométrique

Exemples

  • geom_to_wkt(end_point(geom_from_wkt('LINESTRING(4 0, 4 2, 0 2)'))) → “Point (0 2)”

Plus de détails : l’algorithme Extraire des vertex spécifiques

12.2.13.25. exif_geotag

Creates a point geometry from the exif geotags of an image file.

Syntaxe

exif_geotag(path)

Arguments

  • path - An image file path.

Exemples

  • geom_to_wkt(exif_geotag('/my/photo.jpg')) → “Point (2 4)”

12.2.13.26. extend

Étire d’une valeur spécifiée le début et la fin d’une géométrie de type ligne. Les lignes sont étirées en prenant en compte l’inclinaison du premier et du dernier segment. Pour une poly-ligne, toutes les parties sont étirées. Les distances sont exprimées dans le Système Spatial de Référence de cette géométrie.

Syntaxe

extend(geometry, start_distance, end_distance)

Arguments

  • geométry - une géométrie (multi)linéaire

  • start_distance - distance pour prolonger le début de la ligne

  • end_distance - distance pour prolonger l’extrémité de la ligne.

Exemples

  • geom_to_wkt(extend(geom_from_wkt('LineString(0 0, 1 0, 1 1)'),1,2)) → “LineString (-1 0, 1 0, 1 3)”

  • geom_to_wkt(extend(geom_from_wkt('MultiLineString((0 0, 1 0, 1 1), (2 2, 0 2, 0 5))'),1,2)) → “MultiLineString ((-1 0, 1 0, 1 3),(3 2, 0 2, 0 7))”

Plus de détails : l’algorithme Prolonger les lignes

12.2.13.27. exterior_ring

Renvoie une chaîne de lignes représentant l’anneau extérieur d’une géométrie polygonale. Si la géométrie n’est pas un polygone, le résultat sera NULL.

Syntaxe

exterior_ring(geometry)

Arguments

  • geométry - une géométrie de polygone

Exemples

  • geom_to_wkt(exterior_ring(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),( 0.1 0.1, 0.1 0.2, 0.2 0.2, 0.2, 0.1, 0.1 0.1))'))) → “LineString (-1 -1, 4 0, 4 2, 0 2, -1 -1)”

12.2.13.28. extrude

Retourne une version extrudée de la géométrie (multi)courbe ou (multi)ligne d’entrée avec une extension spécifiée par x et y.

Syntaxe

extrude(geometry, x, y)

Arguments

  • geometry - a curve or linestring geometry

  • x - x extension, valeur numérique

  • y - extension y, valeur numérique

Exemples

  • geom_to_wkt(extrude(geom_from_wkt('LineString(1 2, 3 2, 4 3)'), 1, 2)) → “Polygon ((1 2, 3 2, 4 3, 5 5, 4 4, 2 4, 1 2))”

  • geom_to_wkt(extrude(geom_from_wkt('MultiLineString((1 2, 3 2), (4 3, 8 3))'), 1, 2)) → “MultiPolygon (((1 2, 3 2, 4 4, 2 4, 1 2)),((4 3, 8 3, 9 5, 5 5, 4 3)))”

12.2.13.29. flip_coordinates

Retourne une copie de la géométrie avec les coordonnées x et y échangées. Utile pour réparer les géométries dont les valeurs de latitude et de longitude ont été inversées.

Syntaxe

flip_coordinates(geometry)

Arguments

  • geometry - une geometrie

Exemples

  • geom_to_wkt(flip_coordinates(make_point(1, 2))) → “Point (2 1)”

Plus de détails : l’algorithme Permuter les coordonnées X et Y

12.2.13.30. force_rhr

Force une géométrie à respecter la règle de la main droite, dans laquelle la zone délimitée par un polygone se trouve à droite de la limite. En particulier, l’anneau extérieur est orienté dans le sens des aiguilles d’une montre et les anneaux intérieurs dans le sens inverse.

Syntaxe

force_rhr(geometry)

Arguments

  • geométry - une géométrie. Toutes les géométries non polygonales sont renvoyées inchangées.

Exemples

  • geom_to_wkt(force_rhr(geometry:=geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1))'))) → “Polygon ((-1 -1, 0 2, 4 2, 4 0, -1 -1))”

Plus de détails : l’algorithme Forcer la règle de droite

12.2.13.31. geom_from_gml

Retourne une géométrie à partir d’une représentation GML de la géométrie.

Syntaxe

geom_from_gml(gml)

Arguments

  • gml - Représentation GML d’une géométrie sous forme de chaîne

Exemples

  • geom_from_gml('<gml:LineString srsName="EPSG:4326"><gml:coordinates>4,4 5,5 6,6</gml:coordinates></gml:LineString>') → un objet géométrique linéaire

12.2.13.32. geom_from_wkb

Retourne une géométrie créée à partir d’une représentation binaire bien connue (WKB).

Syntaxe

geom_from_wkb(binary)

Arguments

  • binaire - Représentation binaire bien connue (WKB) d’une géométrie (comme un blob binaire)

Exemples

  • geom_from_wkb( geom_to_wkb( make_point(4,5) ) ) → un objet à géométrie ponctuelle

12.2.13.33. geom_from_wkt

Retourne une géométrie créée à partir d’une représentation Well-Known Text (WKT).

Syntaxe

geom_from_wkt(text)

Arguments

  • text - Représentation d’une géométrie par un texte bien connu (WKT)

Exemples

  • geom_from_wkt( 'POINT(4 5)' ) → un objet de géométrie

12.2.13.34. geom_to_wkb

Retourne la représentation binaire bien connue (WKB) d’une géométrie

Syntaxe

geom_to_wkb(geometry)

Arguments

  • geometry - une geometrie

Exemples

  • geom_to_wkb( $geometry ) → blob binaire contenant un objet de géométrie

12.2.13.35. geom_to_wkt

Retourne la représentation WKT (Well-Known Text) de la géométrie sans les métadonnées SRID.

Syntaxe

geom_to_wkt(geometry, [precision=8])

[] indique des éléments optionnels

Arguments

  • geometry - une geometrie

  • precision - précision numérique

Exemples

  • geom_to_wkt( make_point(6, 50) ) → “POINT(6 50)”

  • geom_to_wkt(centroid(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))'))) → “POINT(0 0.66666667)”

  • geom_to_wkt(centroid(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))')), 2) → “POINT(0 0.67)”

12.2.13.36. $geometry

Retourne la géométrie de l’élément en cours. Peut être utilisé pour le traitement avec d’autres fonctions.

Syntaxe

$geometry

Exemples

  • geom_to_wkt( $geometry ) → “POINT(6 50)”

12.2.13.37. geometry

Retourne la géométrie d’un élément.

Syntaxe

geometry(feature)

Arguments

  • feature - un objet entité

Exemples

  • `` geometry( $currentfeature )`` → the geometry of the current feature. Prefer using $geometry.

  • geom_to_wkt( geometry( get_feature_by_id( 'streets', 1 ) ) ) → the geometry in WKT of the feature with the id 1 on the layer « streets », e.g. “POINT(6 50)”

  • intersects( $geometry, geometry( get_feature( 'streets', 'name', 'Main St.' ) ) ) → true if the current feature spatially intersects the “Main St.” named feature in the « streets » layer

12.2.13.38. geometry_n

Retourne une géométrie spécifique d’une collection de géométrie, ou NULL si la géométrie en entrée n’est pas une collection.

Syntaxe

geometry_n(geometry, index)

Arguments

  • geometry - geometry collection

  • index - index de la géométrie à retourner, où 1 est la première géométrie de la collection

Exemples

  • geom_to_wkt(geometry_n(geom_from_wkt('GEOMETRYCOLLECTION(POINT(0 1), POINT(0 0), POINT(1 0), POINT(1 1))'),3)) → “Point (1 0)”

12.2.13.39. geometry_type

Returns a string value describing the type of a geometry (Point, Line or Polygon)

Syntaxe

geometry_type(geometry)

Arguments

  • geometry - une geometrie

Exemples

  • geometry_type( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → “Line”

  • geometry_type( geom_from_wkt( 'MULTILINESTRING((2 5, 3 6, 4 8), (1 1, 0 0))') ) → “Line”

  • geometry_type( geom_from_wkt( 'POINT(2 5)') ) → “Point”

  • geometry_type( geom_from_wkt( 'POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1))') ) → “Polygon”

12.2.13.40. hausdorff_distance

Retourne la distance de Hausdorff entre deux géométries. Il s’agit essentiellement d’une mesure de la similarité ou de la dissemblance de deux géométries, une distance plus faible indiquant une plus grande similarité.

La fonction peut être exécutée avec un argument optionnel de fraction de densification. Si elle n’est pas spécifiée, une approximation de la distance de Hausdorff standard est utilisée. Cette approximation est exacte ou suffisamment proche pour un large sous-ensemble de cas utiles. En voici quelques exemples :

  • calculer la distance entre des chaînes de caractères qui sont à peu près parallèles entre elles, et à peu près de longueur égale. Cela se produit dans les réseaux linéaires correspondants.

  • Tester la similarité des géométries.

Si l’approximation par défaut fournie par cette méthode est insuffisante, indiquez l’argument optionnel de la fraction de densification. Le fait de spécifier cet argument permet d’effectuer une densification de segment avant de calculer la distance de Hausdorff discrète. Le paramètre définit la fraction par laquelle densifier chaque segment. Chaque segment sera divisé en un certain nombre de sous-segments de longueur égale, dont la fraction de la longueur totale est la plus proche de la fraction donnée. En diminuant le paramètre de la fraction de densification, la distance retournée se rapprochera de la véritable distance de Hausdorff pour les géométries.

Syntaxe

hausdorff_distance(geometry1, geometry2, [densify_fraction])

[] indique des éléments optionnels

Arguments

  • geométry1 - une géométrie

  • geometry2 - une géométrie

  • densify_fraction - densifier le montant de la fraction

Exemples

  • hausdorff_distance( geometry1:= geom_from_wkt('LINESTRING (0 0, 2 1)'),geometry2:=geom_from_wkt('LINESTRING (0 0, 2 0)')) → 2

  • hausdorff_distance( geom_from_wkt('LINESTRING (130 0, 0 0, 0 150)'),geom_from_wkt('LINESTRING (10 10, 10 150, 130 10)')) → 14.142135623

  • hausdorff_distance( geom_from_wkt('LINESTRING (130 0, 0 0, 0 150)'),geom_from_wkt('LINESTRING (10 10, 10 150, 130 10)'),0.5) → 70.0

12.2.13.41. inclination

Renvoie l’inclinaison mesurée depuis le zénith (0) jusqu’au nadir (180) sur le modèle point_a à point_b

Syntaxe

inclination(point_a, point_b)

Arguments

  • point_a - géométrie ponctuelle

  • point_b - géométrie ponctuelle

Exemples

  • inclination( make_point( 5, 10, 0 ), make_point( 5, 10, 5 ) ) → 0.0

  • inclination( make_point( 5, 10, 0 ), make_point( 5, 10, 0 ) ) → 90.0

  • inclination( make_point( 5, 10, 0 ), make_point( 50, 100, 0 ) ) → 90.0

  • inclination( make_point( 5, 10, 0 ), make_point( 5, 10, -5 ) ) → 180.0

12.2.13.42. interior_ring_n

Renvoie un anneau intérieur spécifique à partir d’une géométrie de polygone, ou NULL si la géométrie n’est pas un polygone.

Syntaxe

interior_ring_n(geometry, index)

Arguments

  • geométry - géométrie des polygones

  • index - index de l’intérieur à retourner, où 1 est le premier anneau intérieur

Exemples

  • geom_to_wkt(interior_ring_n(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),(-0.1 -0.1, 0.4 0, 0.4 0.2, 0 0.2, -0.1 -0.1),(-1 -1, 4 0, 4 2, 0 2, -1 -1))'),1)) → “LineString (-0.1 -0.1, 0.4 0, 0.4 0.2, 0 0.2, -0.1 -0.1))”

12.2.13.43. intersection

Retourne une géométrie qui représente la partie commune de deux géométries.

Syntaxe

intersection(geometry1, geometry2)

Arguments

  • geométry1 - une géométrie

  • geometry2 - une géométrie

Exemples

  • geom_to_wkt( intersection( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4)' ) ) ) → “LINESTRING(3 3, 4 4)”

  • geom_to_wkt( intersection( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'MULTIPOINT(3.5 3.5, 4 5)' ) ) ) → “POINT(3.5 3.5)”

Plus de détails : l’algorithme Intersection

12.2.13.44. intersects

Teste si une géométrie en croise une autre. Retourne vrai si les géométries se croisent dans l’espace (partagent une partie de l’espace) et faux si elles ne se croisent pas.

Syntaxe

intersects(geometry1, geometry2)

Arguments

  • geométry1 - une géométrie

  • geometry2 - une géométrie

Exemples

  • intersects( geom_from_wkt( 'POINT(4 4)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → true

  • intersects( geom_from_wkt( 'POINT(4 5)' ), geom_from_wkt( 'POINT(5 5)' ) ) → false

Plus de détails : overlay_intersects

12.2.13.45. intersects_bbox

Teste si la boîte englobante d’une géométrie chevauche la boîte englobante d’une autre géométrie. Retourne vrai si les géométries coupent spatialement la boîte de délimitation définie et faux si elles ne le font pas.

Syntaxe

intersects_bbox(geometry1, geometry2)

Arguments

  • geométry1 - une géométrie

  • geometry2 - une géométrie

Exemples

  • intersects_bbox( geom_from_wkt( 'POINT(4 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → true

  • intersects_bbox( geom_from_wkt( 'POINT(6 5)' ), geom_from_wkt( 'POLYGON((3 3, 4 4, 5 5, 3 3))' ) ) → false

12.2.13.46. is_closed

Renvoie true si une ligne est fermée (le point de début et le point de fin sont identiques) ou false si une ligne n’est pas fermée. Si la géométrie n’est pas une ligne, le résultat sera NULL.

Syntaxe

is_closed(geometry)

Arguments

  • geometry - une géométrie de ligne

Exemples

  • is_closed(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)')) → false

  • is_closed(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2, 0 0)')) → true

12.2.13.47. is_empty

Retourne vrai si une géométrie est vide (sans coordonnées), faux si la géométrie n’est pas vide et NULL s’il n’y a pas de géométrie. Voir aussi is_empty_or_null.

Syntaxe

is_empty(geometry)

Arguments

  • geometry - une geometrie

Exemples

  • is_empty(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)')) → false

  • is_empty(geom_from_wkt('LINESTRING EMPTY')) → true

  • is_empty(geom_from_wkt('POINT(7 4)')) → false

  • is_empty(geom_from_wkt('POINT EMPTY')) → true

12.2.13.48. is_empty_or_null

Retourne vrai si une géométrie est NULL ou vide (sans coordonnées) ou faux sinon. Cette fonction est semblable à l’expression « $geometry IS NULL or is_empty($geometry) ».

Syntaxe

is_empty_or_null(geometry)

Arguments

  • geometry - une geometrie

Exemples

  • is_empty_or_null(NULL) → true

  • is_empty_or_null(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)')) → false

  • is_empty_or_null(geom_from_wkt('LINESTRING EMPTY')) → true

  • is_empty_or_null(geom_from_wkt('POINT(7 4)')) → false

  • is_empty_or_null(geom_from_wkt('POINT EMPTY')) → true

12.2.13.49. is_multipart

Renvoie true si une géométrie est de type multi-partie.

Syntaxe

is_multipart(geometry)

Arguments

  • geometry - une geometrie

Exemples

  • is_multipart(geom_from_wkt('MULTIPOINT ((0 0),(1 1),(2 2))')) → true

  • is_multipart(geom_from_wkt('POINT (0 0)')) → false

12.2.13.50. is_valid

Renvoie true si une géométrie est valide ; si elle est bien formée en 2D selon les règles de l’OGC.

Syntaxe

is_valid(geometry)

Arguments

  • geometry - une geometrie

Exemples

  • is_valid(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2, 0 0)')) → true

  • is_valid(geom_from_wkt('LINESTRING(0 0)')) → false

12.2.13.51. $length

Renvoie la longueur d’une polyligne. Si vous souhaitez récupérer la longueur de la bordure d’un polygone, utilisez $perimeter à la place. La longueur calculée par cette fonction respecte les paramètres d’ellipsoïde du projet ainsi que les unités de distances. Par exemple, si un ellipsoïde a été paramétré pour le projet alors la longueur sera ellipsoïdale, sinon, elle sera calculée selon un plan.

Syntaxe

$length

Exemples

  • $length → 42.4711

12.2.13.52. length

Renvoie le nombre de caractères d’une chaîne de caractères ou la longueur d’une géométrie de polylignes.

Variante chaîne de caractères

Renvoie le nombre de caractères de la chaîne de caractères.

Syntaxe

length(string)

Arguments

  • string - chaîne de caractères dont il faut calculer la longueur

Exemples

  • length('salut') → 5

Variante géométrique

Calcule la longueur d’une géométrie linéaire. Les calculs sont toujours planimétriques dans le Système de Coordonnées de Référence (SCR) de la géométrie et les unités de la longueur correspondent aux unités du SCR. Cette fonction est différente des calculs effectués par la fonction $length qui réalise des calculs ellipsoïdaux en se basant sur les paramètres d’ellipsoïde du projet et des unités de distance.

Syntaxe

length(geometry)

Arguments

  • geometry - un objet géométrique linéaire

Exemples

  • length(geom_from_wkt('LINESTRING(0 0, 4 0)')) → 4.0

Plus de détails : straight_distance_2d

12.2.13.53. length3D

Calculates the 3D length of a geometry line object. If the geometry is not a 3D line object, it returns its 2D length. Calculations are always planimetric in the Spatial Reference System (SRS) of this geometry, and the units of the returned length will match the units for the SRS. This differs from the calculations performed by the $length function, which will perform ellipsoidal calculations based on the project’s ellipsoid and distance unit settings.

Syntaxe

length3D(geometry)

Arguments

  • geometry - un objet géométrique linéaire

Exemples

  • length3D(geom_from_wkt('LINESTRINGZ(0 0 0, 3 0 4)')) → 5.0

12.2.13.54. line_interpolate_angle

Renvoie l’angle parallèle à la géométrie à une distance spécifiée le long d’une polyligne. Les angles sont en degrés dans le sens des aiguilles d’une montre par rapport au nord.

Syntaxe

line_interpolate_angle(geometry, distance)

Arguments

  • geometry - une géométrie de polyligne

  • distance - distance le long de la ligne pour interpoler l’angle à

Exemples

  • line_interpolate_angle(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),distance:=5) → 90.0

12.2.13.55. line_interpolate_point

Renvoie le point interpolée par une distance spécifiée le long d’une géométrie ligne.

Syntaxe

line_interpolate_point(geometry, distance)

Arguments

  • geometry - une géométrie de polyligne

  • distance - distance le long de la ligne pour interpoler

Exemples

  • geom_to_wkt(line_interpolate_point(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),distance:=5)) → “Point (5 0)”

Plus de détails : l’algorithme Interpoler le point sur la ligne

12.2.13.56. line_locate_point

Renvoie la distance le long d’une géométrie de type polyligne correspondant à la longueur de cette ligne à la plus proche position d’un point spécifié.

Syntaxe

line_locate_point(geometry, point)

Arguments

  • geometry - une géométrie de polyligne

  • point - géométrie du point pour localiser la position la plus proche sur la ligne

Exemples

  • line_locate_point(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),point:=geom_from_wkt('Point(5 0)')) → 5.0

12.2.13.57. line_merge

Retourne une géométrie LineString ou MultiLineString, où toutes les LineStrings connectées de la géométrie en entrée ont été fusionnées en une seule. Cette fonction retournera NULL si elle passe une géométrie qui n’est pas une LineString ou MultiLineString.

Syntaxe

line_merge(geometry)

Arguments

  • geométry - une géométrie LineString/MultiLineString

Exemples

  • geom_to_wkt(line_merge(geom_from_wkt('MULTILINESTRING((0 0, 1 1),(1 1, 2 2))'))) → “LineString(0 0,1 1,2 2)”

  • geom_to_wkt(line_merge(geom_from_wkt('MULTILINESTRING((0 0, 1 1),(11 1, 21 2))'))) → “MultiLineString((0 0, 1 1),(11 1, 21 2)”

12.2.13.58. line_substring

Renvoie la partie d’une géométrie de ligne (ou de courbe) qui se situe entre les distances de début et de fin spécifiées (mesurées à partir du début de la ligne). Les valeurs Z et M sont interpolées linéairement à partir des valeurs existantes.

Syntaxe

line_substring(geometry, start_distance, end_distance)

Arguments

  • geométry - une géométrie en ligne ou en courbe

  • start_distance - distance au début de la sous-chaîne

  • end_distance - distance à la fin de la sous-chaîne

Exemples

  • geom_to_wkt(line_substring(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),start_distance:=2,end_distance:=6)) → “LineString (2 0,6 0)”

Plus de détails : l’algorithme Portion de ligne

12.2.13.59. m

Renvoie la valeur m d’une géométrie de type point.

Syntaxe

m(geometry)

Arguments

  • geometry - une géométrie ponctuelle

Exemples

  • m( geom_from_wkt( 'POINTM(2 5 4)' ) ) → 4

12.2.13.60. m_max

Renvoie la valeur maximale m (mesure) d’une géométrie.

Syntaxe

m_max(geometry)

Arguments

  • geométry - une géométrie contenant des valeurs m

Exemples

  • m_max( make_point_m( 0,0,1 ) ) → 1

  • m_max(make_line( make_point_m( 0,0,1 ), make_point_m( -1,-1,2 ), make_point_m( -2,-2,0 ) ) ) → 2

12.2.13.61. m_min

Renvoie la valeur minimale m (mesure) d’une géométrie.

Syntaxe

m_min(geometry)

Arguments

  • geométry - une géométrie contenant des valeurs m

Exemples

  • m_min( make_point_m( 0,0,1 ) ) → 1

  • m_min(make_line( make_point_m( 0,0,1 ), make_point_m( -1,-1,2 ), make_point_m( -2,-2,0 ) ) ) → 0

12.2.13.62. main_angle

Returns the angle of the long axis (clockwise, in degrees from North) of the oriented minimal bounding rectangle, which completely covers the geometry.

Syntaxe

main_angle(geometry)

Arguments

  • geometry - une geometrie

Exemples

  • main_angle(geom_from_wkt('Polygon ((321577 129614, 321581 129618, 321585 129615, 321581 129610, 321577 129614))')) → 38.66

12.2.13.63. make_circle

Crée un polygone circulaire.

Syntaxe

make_circle(center, radius, [segments=36])

[] indique des éléments optionnels

Arguments

  • center - point du centre du cercle

  • radius - rayon du cercle

  • segments - argument en option pour la segmentation du polygone. Par défaut, cette valeur vaut 36

Exemples

  • geom_to_wkt(make_circle(make_point(10,10), 5, 4)) → “Polygon ((10 15, 15 10, 10 5, 5 10, 10 15))”

  • geom_to_wkt(make_circle(make_point(10,10,5), 5, 4)) → “PolygonZ ((10 15 5, 15 10 5, 10 5 5, 5 10 5, 10 15 5))”

  • geom_to_wkt(make_circle(make_point(10,10,5,30), 5, 4)) → “PolygonZM ((10 15 5 30, 15 10 5 30, 10 5 5 30, 5 10 5 30, 10 15 5 30))”

12.2.13.64. make_ellipse

Crée un polygone elliptique.

Syntaxe

make_ellipse(center, semi_major_axis, semi_minor_axis, azimuth, [segments=36])

[] indique des éléments optionnels

Arguments

  • center - point du centre de l’ellipse

  • semi_major_axis - demi-grand axe de l’ellipse

  • semi_minor_axis - demi-petit axe de l’ellipse

  • azimuth - orientation de l’ellipse

  • segments - argument en option pour la segmentation du polygone. Par défaut, cette valeur vaut 36

Exemples

  • geom_to_wkt(make_ellipse(make_point(10,10), 5, 2, 90, 4)) → “Polygon ((15 10, 10 8, 5 10, 10 12, 15 10))”

  • geom_to_wkt(make_ellipse(make_point(10,10,5), 5, 2, 90, 4)) → “PolygonZ ((15 10 5, 10 8 5, 5 10 5, 10 12 5, 15 10 5))”

  • geom_to_wkt(make_ellipse(make_point(10,10,5,30), 5, 2, 90, 4)) → “PolygonZM ((15 10 5 30, 10 8 5 30, 5 10 5 30, 10 12 5 30, 15 10 5 30))”

12.2.13.65. make_line

Crée une géométrie linéaire à partir d’une série de géométries ponctuelles.

Liste d’arguments variante

Les sommets des lignes sont spécifiés comme des arguments séparés de la fonction.

Syntaxe

make_line(point1, point2, …)

Arguments

  • point - une géométrie ponctuelle (ou une liste de points)

Exemples

  • geom_to_wkt(make_line(make_point(2,4),make_point(3,5))) → “LineString (2 4, 3 5)”

  • geom_to_wkt(make_line(make_point(2,4),make_point(3,5),make_point(9,7))) → “LineString (2 4, 3 5, 9 7)”

Array variant

Les sommets des lignes sont spécifiés comme une liste de points.

Syntaxe

make_line(array)

Arguments

  • array - liste de points

Exemples

  • geom_to_wkt(make_line(array(make_point(2,4),make_point(3,5),make_point(9,7)))) → “LineString (2 4, 3 5, 9 7)”

12.2.13.66. make_point

Crée une géométrie ponctuelle à partir des valeurs x et y (et optionnellement des valeurs z et m).

Syntaxe

make_point(x, y, [z], [m])

[] indique des éléments optionnels

Arguments

  • x - coordonnée x du point

  • y - coordonnée y du point

  • z - coordonnée optionnelle z du point

  • m - valeur optionnelle m du point

Exemples

  • geom_to_wkt(make_point(2,4)) → “Point (2 4)”

  • geom_to_wkt(make_point(2,4,6)) → “PointZ (2 4 6)”

  • geom_to_wkt(make_point(2,4,6,8)) → “PointZM (2 4 6 8)”

12.2.13.67. make_point_m

Crée une géométrie ponctuelle à partir de coordonnées x et y et d’une valeur m.

Syntaxe

make_point_m(x, y, m)

Arguments

  • x - coordonnée x du point

  • y - coordonnée y du point

  • m - valeur m du point

Exemples

  • geom_to_wkt(make_point_m(2,4,6)) → “PointM (2 4 6)”

12.2.13.68. make_polygon

Crée une géométrie polygonale à partir d’un anneau externe et de séries optionnelles de géométries d’anneaux internes.

Syntaxe

make_polygon(outerRing, [innerRing1], [innerRing2], …)

[] indique des éléments optionnels

Arguments

  • outerRing - géométrie linéaire fermée de l’anneau extérieur du polygone

  • innerRing - géométrie linéaire fermée optionnelle pour l’anneau intérieur

Exemples

  • geom_to_wkt(make_polygon(geom_from_wkt('LINESTRING( 0 0, 0 1, 1 1, 1 0, 0 0 )'))) → “Polygon ((0 0, 0 1, 1 1, 1 0, 0 0))”

  • geom_to_wkt(make_polygon(geom_from_wkt('LINESTRING( 0 0, 0 1, 1 1, 1 0, 0 0 )'),geom_from_wkt('LINESTRING( 0.1 0.1, 0.1 0.2, 0.2 0.2, 0.2 0.1, 0.1 0.1 )'),geom_from_wkt('LINESTRING( 0.8 0.8, 0.8 0.9, 0.9 0.9, 0.9 0.8, 0.8 0.8 )'))) → “Polygon ((0 0, 0 1, 1 1, 1 0, 0 0),(0.1 0.1, 0.1 0.2, 0.2 0.2, 0.2 0.1, 0.1 0.1),(0.8 0.8, 0.8 0.9, 0.9 0.9, 0.9 0.8, 0.8 0.8))”

12.2.13.69. make_rectangle_3points

Crée un rectangle à partir de 3 points.

Syntaxe

make_rectangle_3points(point1, point2, point3, [option=0])

[] indique des éléments optionnels

Arguments

  • point1 - Premier point.

  • point2 - Deuxième point.

  • point3 - Troisième point.

  • option - Un argument facultatif pour construire le rectangle. Par défaut, cette valeur est 0. La valeur peut être 0 (distance) ou 1 (projeté). Option distance : La seconde distance est égale à la distance entre le 2ème et le 3ème point. Option projeté : La seconde distance est égale à la distance de la projection perpendiculaire du 3ème point sur le segment ou son extension.

Exemples

  • geom_to_wkt(make_rectangle_3points(make_point(0, 0), make_point(0,5), make_point(5, 5), 0)) → “Polygon ((0 0, 0 5, 5 5, 5 0, 0 0))”

  • geom_to_wkt(make_rectangle_3points(make_point(0, 0), make_point(0,5), make_point(5, 3), 1)) → “Polygon ((0 0, 0 5, 5 5, 5 0, 0 0))”

12.2.13.70. make_regular_polygon

Crée un polygone régulier.

Syntaxe

make_regular_polygon(center, radius, number_sides, [circle=0])

[] indique des éléments optionnels

Arguments

  • center - centre du polygone régulier

  • radius - second point. Premier point si le polygone régulier est inscrit. Le point du milieu du premier côté si le polygone régulier est circonscrit.

  • number_sides - Nombre de côtés/arrêtes du polygone régulier

  • circle - Argument optionnel pour la construction du polygone régulier. Par défaut, cette valeur vaut 0. Elle peut prendre la valeur 0 (inscrit) ou 1 (circonscrit)

Exemples

  • geom_to_wkt(make_regular_polygon(make_point(0,0), make_point(0,5), 5)) → “Polygon ((0 5, 4.76 1.55, 2.94 -4.05, -2.94 -4.05, -4.76 1.55, 0 5))”

  • geom_to_wkt(make_regular_polygon(make_point(0,0), project(make_point(0,0), 4.0451, radians(36)), 5)) → “Polygon ((0 5, 4.76 1.55, 2.94 -4.05, -2.94 -4.05, -4.76 1.55, 0 5))”

12.2.13.71. make_square

Crée un carré à partir d’une diagonale.

Syntaxe

make_square(point1, point2)

Arguments

  • point1 - Premier point de la diagonale

  • point2 - Dernier point de la diagonale

Exemples

  • geom_to_wkt(make_square( make_point(0,0), make_point(5,5))) → “Polygon ((0 0, -0 5, 5 5, 5 0, 0 0))”

  • geom_to_wkt(make_square( make_point(5,0), make_point(5,5))) → “Polygon ((5 0, 2.5 2.5, 5 5, 7.5 2.5, 5 0))”

12.2.13.72. make_triangle

Crée un polygone triangulaire.

Syntaxe

make_triangle(point1, point2, point3)

Arguments

  • point1 - premier point du triangle

  • point2 - second point du triangle

  • point3 - troisième point du triangle

Exemples

  • geom_to_wkt(make_triangle(make_point(0,0), make_point(5,5), make_point(0,10))) → “Triangle ((0 0, 5 5, 0 10, 0 0))”

  • geom_to_wkt(boundary(make_triangle(make_point(0,0), make_point(5,5), make_point(0,10)))) → “LineString (0 0, 5 5, 0 10, 0 0)”

12.2.13.73. minimal_circle

Renvoie le cercle minimal entourant une géométrie. Il représente le cercle minimum qui renferme toutes les géométries de l’ensemble.

Syntaxe

minimal_circle(geometry, [segments=36])

[] indique des éléments optionnels

Arguments

  • geometry - une geometrie

  • segments - argument en option pour la segmentation du polygone. Par défaut, cette valeur vaut 36

Exemples

  • geom_to_wkt( minimal_circle( geom_from_wkt( 'LINESTRING(0 5, 0 -5, 2 1)' ), 4 ) ) → “Polygon ((0 5, 5 -0, -0 -5, -5 0, 0 5))”

  • geom_to_wkt( minimal_circle( geom_from_wkt( 'MULTIPOINT(1 2, 3 4, 3 2)' ), 4 ) ) → “Polygon ((3 4, 3 2, 1 2, 1 4, 3 4))”

Plus de détails : l’algorithme Cercles englobants minimum

12.2.13.74. nodes_to_points

Renvoie une géométrie multi-point composée de chaque nœud de la géométrie en entrée.

Syntaxe

nodes_to_points(geometry, [ignore_closing_nodes=false])

[] indique des éléments optionnels

Arguments

  • geometry - objet géométrique

  • ignore_closing_nodes - argument optionnel indiquant s’il faut inclure les nœuds dupliqués qui ferment les lignes ou les anneaux de polygones. La valeur par défaut est “false” et modifiée à “true” pour éviter que ces nœuds dupliqués soient présents dans la collection de géométries en sortie.

Exemples

  • geom_to_wkt(nodes_to_points(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)'))) → “MultiPoint ((0 0),(1 1),(2 2))”

  • geom_to_wkt(nodes_to_points(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1))'),true)) → “MultiPoint ((-1 -1),(4 0),(4 2),(0 2))”

Plus de détails : l’algorithme Extraire les vertex

12.2.13.75. 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.

Syntaxe

num_geometries(geometry)

Arguments

  • geometry - geometry collection

Exemples

  • num_geometries(geom_from_wkt('GEOMETRYCOLLECTION(POINT(0 1), POINT(0 0), POINT(1 0), POINT(1 1))')) → 4

12.2.13.76. 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.

Syntaxe

num_interior_rings(geometry)

Arguments

  • geometry - géométrie en entrée

Exemples

  • num_interior_rings(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),(-0.1 -0.1, 0.4 0, 0.4 0.2, 0 0.2, -0.1 -0.1))')) → 1

12.2.13.77. num_points

Renvoie le nombre de sommets d’une géométrie.

Syntaxe

num_points(geometry)

Arguments

  • geometry - une geometrie

Exemples

  • num_points($geometry) → nombre de sommets dans $geometry

12.2.13.78. num_rings

Renvoie le nombre d’anneaux (incluant les anneaux extérieurs) d’un polygone ou d’une collection de géométrie ou NULL si la géométrie en entrée n’est pas un polygone ou une collection.

Syntaxe

num_rings(geometry)

Arguments

  • geometry - géométrie en entrée

Exemples

  • num_rings(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),(-0.1 -0.1, 0.4 0, 0.4 0.2, 0 0.2, -0.1 -0.1))')) → 2

12.2.13.79. offset_curve

Renvoie une géométrie formée par le décalage d’une géométrie de ligne sur le côté. Les distances se trouvent dans le système de référence spatiale de cette géométrie.

Syntaxe

offset_curve(geometry, distance, [segments=8], [join=1], [miter_limit=2.0])

[] indique des éléments optionnels

Arguments

  • geométry - une géométrie (multi)linéaire

  • distance - distance de décalage. Les valeurs positives seront mises en mémoire tampon à gauche des lignes, les valeurs négatives à droite

  • segments - nombre de segments à utiliser pour représenter un quart de cercle lorsqu’un style de jointure circulaire est utilisé. Un nombre plus élevé donne une ligne plus lisse avec plus de nœuds.

  • jointure - joindre le style pour les coins, où 1 = rond, 2 = angle droit et 3 = oblique

  • limite_angle_droit - limite du rapport de l’angle droit utilisé pour les coins très pointus (en cas d’utilisation de jointure à angle droit uniquement)

Exemples

  • offset_curve($geometry, 10.5) → ligne décalée vers la gauche de 10,5 unités

  • offset_curve($geometry, -10.5) → ligne décalée vers la droite de 10,5 unités

  • offset_curve($geometry, 10.5, segments:=16, join:=1) → line offset to the left by 10.5 units, using more segments to result in a smoother curve

  • offset_curve($geometry, 10.5, join:=3) → line offset to the left by 10.5 units, using a beveled join

Plus de détails : l’algorithme Lignes décalées

12.2.13.80. order_parts

Ré-arrange les parties d’une géométrie multiple selon le critère donné

Syntaxe

order_parts(geometry, orderby, [ascending=true])

[] indique des éléments optionnels

Arguments

  • geometry - une géométrie multi-types

  • orderby - une chaîne d’expression définissant les critères d’ordre

  • ascendant - booléen, Vrai pour ascendant, Faux pour descendant

Exemples

  • geom_to_wkt(order_parts(geom_from_wkt('MultiPolygon (((1 1, 5 1, 5 5, 1 5, 1 1)),((1 1, 9 1, 9 9, 1 9, 1 1)))'), 'area($geometry)', False)) → “MultiPolygon (((1 1, 9 1, 9 9, 1 9, 1 1)),((1 1, 5 1, 5 5, 1 5, 1 1)))”

  • geom_to_wkt(order_parts(geom_from_wkt('LineString(1 2, 3 2, 4 3)'), '1', True)) → “LineString(1 2, 3 2, 4 3)”

12.2.13.81. oriented_bbox

Retourne une géométrie qui représente la boîte de délimitation orientée au minimum d’une géométrie en entrée.

Syntaxe

oriented_bbox(geometry)

Arguments

  • geometry - une geometrie

Exemples

  • geom_to_wkt( oriented_bbox( geom_from_wkt( 'MULTIPOINT(1 2, 3 4, 3 2)' ) ) ) → “Polygon ((3 2, 3 4, 1 4, 1 2, 3 2))”

Plus de détails : l’algorithme Boîte de délimitation minimale orientée

12.2.13.82. overlaps

Teste si une géométrie en chevauche une autre. Le résultat est vrai si les géométries partagent l’espace, sont de la même dimension, mais ne sont pas complètement contenues l’une par l’autre.

Syntaxe

overlaps(geometry1, geometry2)

Arguments

  • geométry1 - une géométrie

  • geometry2 - une géométrie

Exemples

  • overlaps( geom_from_wkt( 'LINESTRING(3 5, 4 4, 5 5, 5 3)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → true

  • overlaps( geom_from_wkt( 'LINESTRING(0 0, 1 1)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → false

12.2.13.83. overlay_contains

Retourne si l’entité actuelle contient spatialement au moins une entité d’une couche cible, ou un tableau de résultats basés sur des expressions pour les entités de la couche cible contenues dans l’entité actuelle.

Pour en savoir plus sur le prédicat GEOS « Contains » sous-jacent, tel que décrit dans la fonction PostGIS ST_Contains.

Syntaxe

overlay_contains(layer, [expression], [filter], [limit], [cache=false])

[] indique des éléments optionnels

Arguments

  • layer - la couche dont la superposition est vérifiée

  • expression - une expression optionnelle à évaluer sur les entités de la couche cible. Si elle n’est pas définie, la fonction retournera simplement un booléen indiquant s’il y a au moins une correspondance.

  • filter - une expression optionnelle pour filtrer les entités de la cible à vérifier. Si elle n’est pas définie, toutes les entités seront vérifiées.

  • limit - un nombre entier optionnel pour limiter le nombre d’entités correspondantes. S’il n’est pas défini, toutes les entités correspondantes seront renvoyées.

  • cache - réglez ce paramètre sur vrai pour construire un index spatial local (la plupart du temps, ce n’est pas souhaité, sauf si vous travaillez avec un fournisseur de données particulièrement lent)

Exemples

  • overlay_contains('regions') → true si l’élément actuel contient spatialement une région

  •  overlay_contains('regions', filter:= population > 10000) → true si l’entité actuelle contient spatialement une région dont la population est supérieure à 10 000

  • overlay_contains('regions', name) → un tableau de noms, pour les régions contenues dans l’entité actuelle

  • array_to_string(overlay_contains('regions', name)) → une chaîne de caractères sous forme de liste de noms séparés par des virgules, pour les régions contenues dans l’entité actuelle

  • array_sort(overlay_contains(layer:= 'régions', expression:= 'nom', filter:= population > 10000)) → un tableau ordonné de noms, pour les régions contenues dans l’entité actuelle et ayant une population supérieure à 10000

  • overlay_contains(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → un tableau de géométries (en WKT), pour un maximum de deux régions contenues dans l’entité actuelle

Plus de détails : contains, array manipulation, l’algorithme Sélection par localisation

12.2.13.84. overlay_crosses

Renvoie si l’entité actuelle croise spatialement au moins une entité d’une couche cible, ou un tableau de résultats basés sur des expressions pour les éléments de la couche cible croisés par l’entité actuelle.

Pour en savoir plus sur le prédicat GEOS « Crosses » sous-jacent, tel que décrit dans la fonction PostGIS ST_Crosses.

Syntaxe

overlay_crosses(layer, [expression], [filter], [limit], [cache=false])

[] indique des éléments optionnels

Arguments

  • layer - la couche dont la superposition est vérifiée

  • expression - une expression optionnelle à évaluer sur les entités de la couche cible. Si elle n’est pas définie, la fonction retournera simplement un booléen indiquant s’il y a au moins une correspondance.

  • filter - une expression optionnelle pour filtrer les entités de la cible à vérifier. Si elle n’est pas définie, toutes les entités seront vérifiées.

  • limit - un nombre entier optionnel pour limiter le nombre d’entités correspondantes. S’il n’est pas défini, toutes les entités correspondantes seront renvoyées.

  • cache - réglez ce paramètre sur vrai pour construire un index spatial local (la plupart du temps, ce n’est pas souhaité, sauf si vous travaillez avec un fournisseur de données particulièrement lent)

Exemples

  • overlay_crosses('regions') → true si l’entité actuelle traverse spatialement une région

  • overlay_crosses('regions', filter:= population > 10000) → true si l’entité actuelle traverse dans l’espace une région dont la population est supérieure à 10 000 habitants

  • overlay_crosses('regions', name) → un tableau de noms, pour les régions traversées par l’entité actuelle

  • array_to_string(overlay_crosses('regions', name)) → une chaîne de caractères sous forme de liste de noms séparés par des virgules, pour les régions traversées par l’entité courante

  • array_sort(overlay_crosses(layer:= 'régions', expression:= "name", filter:= population > 10000)) → un tableau ordonné de noms, pour les régions traversées par l’entité actuelle et dont la population est supérieure à 10000

  • overlay_crosses(layer:= 'regions', expression:= geom_to_wkt($geometry), limit:=2) → un tableau de géométries (dans WKT), pour un maximum de deux régions traversées par l’entité courante

Plus de détails : crosses, array manipulation, l’algorithme Sélection par localisation

12.2.13.85. overlay_disjoint

Retourne si l’entité actuelle est spatialement disjointe de toutes les entités d’une couche cible, ou un tableau de résultats basés sur des expressions pour les entités dans la couche cible qui sont disjointes de l’entité actuelle.

Pour en savoir plus sur le prédicat GEOS « Disjoint » sous-jacent, tel que décrit dans la fonction PostGIS ST_Disjoint.

Syntaxe

overlay_disjoint(layer, [expression], [filter], [limit], [cache=false])

[] indique des éléments optionnels

Arguments

  • layer - la couche dont la superposition est vérifiée

  • expression - une expression optionnelle à évaluer sur les entités de la couche cible. Si elle n’est pas définie, la fonction retournera simplement un booléen indiquant s’il y a au moins une correspondance.

  • filter - une expression optionnelle pour filtrer les entités de la cible à vérifier. Si elle n’est pas définie, toutes les entités seront vérifiées.

  • limit - un nombre entier optionnel pour limiter le nombre d’entités correspondantes. S’il n’est pas défini, toutes les entités correspondantes seront renvoyées.

  • cache - réglez ce paramètre sur vrai pour construire un index spatial local (la plupart du temps, ce n’est pas souhaité, sauf si vous travaillez avec un fournisseur de données particulièrement lent)

Exemples

  • overlay_disjoint('regions') → true si l’entité actuelle est spatialement disjointe de toutes les régions

  • overlay_disjoint('regions', filter:= population > 10000) → true si l’entité actuelle est spatialement disjointe de toutes les régions ayant une population supérieure à 10 000 habitants

  • overlay_disjoint('regions', name) → un tableau de noms, pour les régions spatialement disjointes de l’entité actuelle

  • array_to_string(overlay_disjoint('regions', name)) → une chaîne de caractères sous forme de liste de noms séparés par des virgules, pour les régions spatialement disjointes de l’entité actuelle

  • array_sort(overlay_disjoint(layer:= 'régions', expression:= "name", filter:= population > 10000)) → un tableau ordonné de noms, pour les régions spatialement disjointes de l’entité actuelle et ayant une population supérieure à 10000

  • overlay_disjoint(layer:= 'regions', expression:= geom_to_wkt($geometry), limit:=2) → un tableau de géométries (en WKT), pour un maximum de deux régions spatialement disjointes de l’entité courante

Plus de détails : disjoint, array manipulation, l’algorithme Sélection par localisation

12.2.13.86. overlay_equals

Retourne si l’entité actuelle est spatialement égale à au moins une entité d’une couche cible, ou un tableau de résultats basés sur des expressions pour les entités de la couche cible qui sont spatialement égales à l’entité actuelle.

Pour en savoir plus sur le prédicat GEOS « Equals » sous-jacent, tel que décrit dans la fonction PostGIS ST_Equals.

Syntaxe

overlay_equals(layer, [expression], [filter], [limit], [cache=false])

[] indique des éléments optionnels

Arguments

  • layer - la couche dont la superposition est vérifiée

  • expression - une expression optionnelle à évaluer sur les entités de la couche cible. Si elle n’est pas définie, la fonction retournera simplement un booléen indiquant s’il y a au moins une correspondance.

  • filter - une expression optionnelle pour filtrer les entités de la cible à vérifier. Si elle n’est pas définie, toutes les entités seront vérifiées.

  • limit - un nombre entier optionnel pour limiter le nombre d’entités correspondantes. S’il n’est pas défini, toutes les entités correspondantes seront renvoyées.

  • cache - réglez ce paramètre sur vrai pour construire un index spatial local (la plupart du temps, ce n’est pas souhaité, sauf si vous travaillez avec un fournisseur de données particulièrement lent)

Exemples

  • overlay_equals('regions') → vrai si l’entité actuelle est spatialement égale à une région

  • overlay_equals('regions', filter:= population > 10000) → true si l’entité actuelle est spatialement égale à une région dont la population est supérieure à 10 000

  • overlay_equals('regions', name) → un tableau de noms, pour les régions spatialement égales à l’entité actuelle.

  • array_to_string(overlay_equals('regions', name)) → une chaîne de caractères sous forme de liste de noms séparés par des virgules, pour les régions spatialement égales à l’entité actuelle

  • array_sort(overlay_equals(layer:= 'régions', expression:= "name", filter:= population > 10000)) → un tableau ordonné de noms, pour les régions spatialement égales à l’entité actuelle et ayant une population supérieure à 10000

  • overlay_equals(layer:= 'regions', expression:= geom_to_wkt($geometry), limit:=2) → un tableau de géométries (en WKT), pour un maximum de deux régions spatialement égales à l’entité courante

Plus de détails : array manipulation, l’algorithme Sélection par localisation

12.2.13.87. overlay_intersects

Retourne si l’entité actuelle coupe spatialement au moins une entité d’une couche cible, ou un ensemble de résultats basés sur des expressions pour les entités de la couche cible coupés par l’entité actuelle.

Pour en savoir plus sur le prédicat GEOS « Intersects » sous-jacent, tel que décrit dans la fonction PostGIS ST_Intersects.

Syntaxe

overlay_intersects(layer, [expression], [filter], [limit], [cache=false])

[] indique des éléments optionnels

Arguments

  • layer - la couche dont la superposition est vérifiée

  • expression - une expression optionnelle à évaluer sur les entités de la couche cible. Si elle n’est pas définie, la fonction retournera simplement un booléen indiquant s’il y a au moins une correspondance.

  • filter - une expression optionnelle pour filtrer les entités de la cible à vérifier. Si elle n’est pas définie, toutes les entités seront vérifiées.

  • limit - un nombre entier optionnel pour limiter le nombre d’entités correspondantes. S’il n’est pas défini, toutes les entités correspondantes seront renvoyées.

  • cache - réglez ce paramètre sur vrai pour construire un index spatial local (la plupart du temps, ce n’est pas souhaité, sauf si vous travaillez avec un fournisseur de données particulièrement lent)

Exemples

  • overlay_intersects('regions') → true si l’entité actuelle recoupe spatialement une région

  • overlay_intersects('regions', filter:= population > 10000) → true si l’entité actuelle recoupe spatialement une région dont la population est supérieure à 10 000 habitants

  • overlay_intersects('regions', name) → un tableau de noms, pour les régions intersectées par l’entité actuelle

  • array_to_string(overlay_intersects('regions', name)) → une chaîne de caractères sous la forme d’une liste de noms séparés par des virgules, pour les régions traversées par l’entité actuelle

  • array_sort(overlay_intersects(layer:= 'régions', expression:= "name", filter:= population > 10000)) → un tableau ordonné de noms, pour les régions intersectées par l’entité actuelle et ayant une population supérieure à 10000

  • overlay_intersects(layer:= 'regions', expression:= geom_to_wkt($geometry), limit:=2) → un tableau de géométries (en WKT), pour un maximum de deux régions coupées par l’entité courante

Plus de détails : intersects, array manipulation, l’algorithme Sélection par localisation

12.2.13.88. overlay_nearest

Indique si l’entité actuelle possède une ou plusieurs entités d’une couche cible à une distance donnée, ou un ensemble de résultats basés sur des expressions pour les entités de la couche cible à une distance de l’entité actuelle.

Remarque : cette fonction peut être lente et consommer beaucoup de mémoire pour les grandes couches.

Syntaxe

overlay_nearest(layer, [expression], [filter], [limit=1], [max_distance], [cache=false])

[] indique des éléments optionnels

Arguments

  • layer - la couche cible

  • expression - une expression optionnelle à évaluer sur les entités de la couche cible. Si elle n’est pas définie, la fonction retournera simplement un booléen indiquant s’il y a au moins une correspondance.

  • filter - une expression optionnelle pour filtrer les entités de la cible à vérifier. Si elle n’est pas définie, toutes les entités de la couche cible seront utilisées.

  • limit - un nombre entier optionnel pour limiter le nombre d’entités correspondantes. S’il n’est pas défini, seule l’entité la plus proche sera retournée. S’il est fixé à -1, il renvoie toutes les entités correspondantes.

  • max_distance - une distance optionnelle pour limiter la recherche d’entités correspondantes. Si cette distance n’est pas définie, toutes les entités de la couche cible seront utilisées.

  • cache - réglez ce paramètre sur vrai pour construire un index spatial local (la plupart du temps, ce n’est pas souhaité, sauf si vous travaillez avec un fournisseur de données particulièrement lent)

Exemples

  • overlay_nearest('airports') → true si la couche « airports » présente au moins une entité

  • overlay_nearest('airports', max_distance:= 5000) → true s’il y a un aéroport à une distance de 5000 unités cartographiques de l’entité actuelle

  • overlay_nearest('airports', name) → le nom de l’aéroport le plus proche de l’entité actuelle, sous forme de tableau

  • array_to_string(overlay_nearest('airports', name)) → le nom de l’aéroport le plus proche de l’entité actuelle, sous forme de chaîne

  • overlay_nearest(layer:='airports', expression:= name, max_distance:= 5000) → le nom de l’aéroport le plus proche à une distance de 5000 unités cartographiques de l’entité actuelle, sous forme de tableau

  • overlay_nearest(layer:= 'airports', expression:= "name", filter:= "Use"= 'Civilian', limit:=3) → un tableau de noms, pour les trois aéroports civils les plus proches au maximum, classés par distance

  • overlay_nearest(layer:= 'airports', expression:= 'name', limit:= -1, max_distance:= 5000) → un tableau de noms, pour tous les aéroports situés à une distance de 5000 unités cartographiques de l’entité actuelle, classés par distance

Plus de détails : array manipulation, l’algorithme Joindre les attributs par le plus proche

12.2.13.89. overlay_touches

Indique si l’entité actuelle touche dans l’espace au moins une entité d’une couche cible, ou un ensemble de résultats basés sur des expressions pour les entités de la couche cible touchés par l’entité actuelle.

Pour en savoir plus sur le prédicat GEOS « Touches » sous-jacent, tel que décrit dans la fonction PostGIS ST_Touches.

Syntaxe

overlay_touches(layer, [expression], [filter], [limit], [cache=false])

[] indique des éléments optionnels

Arguments

  • layer - la couche dont la superposition est vérifiée

  • expression - une expression optionnelle à évaluer sur les entités de la couche cible. Si elle n’est pas définie, la fonction retournera simplement un booléen indiquant s’il y a au moins une correspondance.

  • filter - une expression optionnelle pour filtrer les entités de la cible à vérifier. Si elle n’est pas définie, toutes les entités seront vérifiées.

  • limit - un nombre entier optionnel pour limiter le nombre d’entités correspondantes. S’il n’est pas défini, toutes les entités correspondantes seront renvoyées.

  • cache - réglez ce paramètre sur vrai pour construire un index spatial local (la plupart du temps, ce n’est pas souhaité, sauf si vous travaillez avec un fournisseur de données particulièrement lent)

Exemples

  • overlay_touches('regions') → true si l’entité actuelle touche spatialement une région

  • overlay_touches('regions', filter:= population > 10000) → true si l’entité actuelle touche spatialement une région dont la population est supérieure à 10 000 habitants

  • overlay_touches('regions', name) → un tableau de noms, pour les régions touchées par l’entité actuelle

  • string_to_array(overlay_touches('regions', name)) → une chaîne de caractères sous forme de liste de noms séparés par des virgules, pour les régions touchées par l’entité actuelle

  • array_sort(overlay_touches(layer:= 'régions', expression:= "name", filter:= population > 10000)) → un tableau ordonné de noms, pour les régions touchées par l’entité actuelle et ayant une population supérieure à 10000

  • overlay_touches(layer:= 'regions', expression:= geom_to_wkt($geometry), limit:=2) → un tableau de géométries (en WKT), pour un maximum de deux régions touchées par l’entité actuelle

Plus de détails : touches, array manipulation, l’algorithme Sélection par localisation

12.2.13.90. overlay_within

Retourne si l’entité actuelle se trouve dans l’espace dans au moins une entité d’une couche cible, ou un tableau de résultats basés sur des expressions pour les entités dans la couche cible qui contiennent l’entité actuelle.

Pour en savoir plus sur le prédicat GEOS « Within » sous-jacent, tel que décrit dans la fonction PostGIS ST_Within.

Syntaxe

overlay_within(layer, [expression], [filter], [limit], [cache=false])

[] indique des éléments optionnels

Arguments

  • layer - la couche dont la superposition est vérifiée

  • expression - une expression optionnelle à évaluer sur les entités de la couche cible. Si elle n’est pas définie, la fonction retournera simplement un booléen indiquant s’il y a au moins une correspondance.

  • filter - une expression optionnelle pour filtrer les entités de la cible à vérifier. Si elle n’est pas définie, toutes les entités seront vérifiées.

  • limit - un nombre entier optionnel pour limiter le nombre d’entités correspondantes. S’il n’est pas défini, toutes les entités correspondantes seront renvoyées.

  • cache - réglez ce paramètre sur vrai pour construire un index spatial local (la plupart du temps, ce n’est pas souhaité, sauf si vous travaillez avec un fournisseur de données particulièrement lent)

Exemples

  • overlay_within('regions') → true si l’entité actuelle se trouve dans une région

  •  overlay_within('regions', filter:= population > 10000) → true si l’entité actuelle se trouve dans une région dont la population est supérieure à 10 000 habitants

  • overlay_within('regions', name) → un tableau de noms, pour les régions contenant l’entité actuelle

  • array_to_string(overlay_within('regions', name)) → une chaîne de caractères sous forme de liste de noms séparés par des virgules, pour les régions contenant l’entité actuelle

  • array_sort(overlay_within(layer:= 'régions', expression:= "name", filter:= population > 10000)) → un tableau ordonné de noms, pour les régions contenant l’entité actuelle et ayant une population supérieure à 10000

  • overlay_within(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → un tableau de géométries (dans WKT), pour un maximum de deux régions contenant l’entité actuelle

Plus de détails : within, array manipulation, l’algorithme Sélection par localisation

12.2.13.91. $perimeter

Renvoie le périmètre de l’entité courante. Le périmètre calculé par cette fonction respecte à la fois le paramétrage de l’ellipsoïde du projet et des unités de distance. Par exemple, si un ellipsoïde a été paramétré pour le projet alors le périmètre sera ellipsoïdal, sinon, il sera calculé selon un plan.

Syntaxe

$perimeter

Exemples

  • $perimeter → 42

12.2.13.92. perimeter

Renvoie le périmètre d’une géométrie polygonale. Les calculs sont toujours planimétriques dans le Système de Coordonnées de Référence (SCR) de la géométrie et les unités du périmètre correspondent aux unités du SCR. Cette fonction est différente des calculs effectués par la fonction $perimeter qui réalise des calculs ellipsoïdaux en se basant sur les paramètres d’ellipsoïde du projet et des unités de distance.

Syntaxe

perimeter(geometry)

Arguments

  • geometry - objet géométrique polygonal

Exemples

  • perimeter(geom_from_wkt('POLYGON((0 0, 4 0, 4 2, 0 2, 0 0))')) → 12.0

12.2.13.93. point_n

Retourne un nœud spécifique à partir d’une géométrie.

Syntaxe

point_n(geometry, index)

Arguments

  • geometry - objet géométrique

  • index - index du noeud à retourner, où 1 est le premier noeud ; si la valeur est négative, l’index du sommet sélectionné sera son compte total moins la valeur absolue

Exemples

  • geom_to_wkt(point_n(geom_from_wkt('POLYGON((0 0, 4 0, 4 2, 0 2, 0 0))'),2)) → “Point (4 0)”

Plus de détails : l’algorithme Extraire des vertex spécifiques

12.2.13.94. point_on_surface

Retourne un point garanti sur la surface d’une géométrie.

Syntaxe

point_on_surface(geometry)

Arguments

  • geometry - une geometrie

Exemples

  • point_on_surface($geometry) →une géométrie de point

Plus de détails : l’algorithme Point sur la surface

12.2.13.95. pole_of_inaccessibility

Calcule le pôle approximatif d’inaccessibilité pour une surface, qui est le point interne le plus éloigné de la limite de la surface. Cette fonction utilise l’algorithme « polylabel » (Vladimir Agafonkin, 2016), qui est une approche itérative garantissant de trouver le véritable pôle d’inaccessibilité dans une tolérance spécifiée. Des tolérances plus précises nécessitent plus d’itérations et prendront plus de temps à calculer.

Syntaxe

pole_of_inaccessibility(geometry, tolerance)

Arguments

  • geometry - une geometrie

  • tolérance - distance maximale entre le point de retour et la position du pôle vrai

Exemples

  • geom_to_wkt(pole_of_inaccessibility( geom_from_wkt('POLYGON((0 1, 0 9, 3 10, 3 3, 10 3, 10 1, 0 1))'), 0.1))' → “Point(1.546875 2.546875)”

Plus de détails : l’algorithme Pôle d’inaccessibilité

12.2.13.96. project

Renvoie un point projeté à partir d’un point de départ en utilisant une distance, un relèvement (azimut) et une élévation en radians.

Syntaxe

project(point, distance, azimuth, [elevation])

[] indique des éléments optionnels

Arguments

  • point - point de départ

  • distance - distance par rapport au projet

  • azimut - azimut en radians dans le sens des aiguilles d’une montre, où 0 correspond au nord

  • élévation - angle d’inclinaison en radians

Exemples

  • geom_to_wkt(project(make_point(1, 2), 3, radians(270))) → “Point(-2, 2)”

Plus de détails : l’algorithme Points de projet (cartésiens)

12.2.13.97. relate

Teste la représentation du modèle DE-9IM (Dimensional Extended 9 Intersection Model) de la relation entre deux géométries.

Variante relationnelle

Retourne la représentation du modèle DE-9IM (Dimensional Extended 9 Intersection Model) de la relation entre deux géométries.

Syntaxe

relate(geometry, geometry)

Arguments

  • geometry - une geometrie

  • geometry - une geometrie

Exemples

  • relate( geom_from_wkt( 'LINESTRING(40 40,120 120)' ), geom_from_wkt( 'LINESTRING(40 40,60 120)' ) ) → “FF1F00102”

Variante de correspondance de modèle

Teste si la relation DE-9IM entre deux géométries correspond à un modèle spécifié.

Syntaxe

relate(geometry, geometry, pattern)

Arguments

  • geometry - une geometrie

  • geometry - une geometrie

  • modèle - Modèle DE-9IM à faire correspondre

Exemples

  • relate( geom_from_wkt( 'LINESTRING(40 40,120 120)' ), geom_from_wkt( 'LINESTRING(40 40,60 120)' ), '**1F001**' ) → True

12.2.13.98. reverse

Inverse le sens d’une chaîne de lignes en inversant l’ordre de ses sommets.

Syntaxe

reverse(geometry)

Arguments

  • geometry - une geometrie

Exemples

  • geom_to_wkt(reverse(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)'))) → “LINESTRING(2 2, 1 1, 0 0)”

Plus de détails : l’algorithme Inverser la direction de la ligne

12.2.13.99. rotate

Retourne une version tournée d’une géométrie. Les calculs sont effectués dans le système de référence spatiale de cette géométrie.

Syntaxe

rotate(geometry, rotation, [center])

[] indique des éléments optionnels

Arguments

  • geometry - une geometrie

  • rotation - rotation dans le sens des aiguilles d’une montre en degrés

  • centre - point central de rotation. S’il n’est pas spécifié, le centre de la boîte de délimitation de la géométrie est utilisé.

Exemples

  • rotate($geometry, 45, make_point(4, 5)) → géométrie tournée de 45 degrés dans le sens des aiguilles d’une montre autour du point (4, 5)

  • rotate($geometry, 45) → géométrie tournée de 45 degrés dans le sens des aiguilles d’une montre autour du centre de sa boîte englobante

../../../_images/rotate.gif

Fig. 12.7 Rotating features

12.2.13.100. segments_to_lines

Renvoie une géométrie multi-lignes consistant en une ligne pour chaque segment de la géométrie en entrée.

Syntaxe

segments_to_lines(geometry)

Arguments

  • geometry - objet géométrique

Exemples

  • geom_to_wkt(segments_to_lines(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)'))) → “MultiLineString ((0 0, 1 1),(1 1, 2 2))”

Plus de détails : l’algorithme Exploser les lignes

12.2.13.101. shortest_line

Renvoie la ligne la plus courte reliant la géométrie1 à la géométrie2. La ligne résultante commencera à la géométrie 1 et se terminera à la géométrie 2.

Syntaxe

shortest_line(geometry1, geometry2)

Arguments

  • géométrie1 - géométrie pour trouver la ligne la plus courte à partir

  • geometry2 - géométrie pour trouver la ligne la plus courte vers

Exemples

  • geom_to_wkt(shortest_line(geom_from_wkt('LINESTRING (20 80, 98 190, 110 180, 50 75 )'),geom_from_wkt('POINT(100 100)'))) → “LineString(73.0769 115.384, 100 100)”

12.2.13.102. simplify

Simplifie une géométrie en supprimant les nœuds à l’aide d’un seuil basé sur la distance (c’est-à-dire l’algorithme de Douglas Peucker). L’algorithme préserve les grandes déviations des géométries et réduit le nombre de sommets dans les segments presque droits.

Syntaxe

simplify(geometry, tolerance)

Arguments

  • geometry - une geometrie

  • tolérance - écart maximal par rapport aux segments droits pour les points à enlever

Exemples

  • geom_to_wkt(simplify(geometry:=geom_from_wkt('LineString(0 0, 5 0.1, 10 0)'),tolerance:=5)) → “LineString(0 0, 10 0)”

Plus de détails : l’algorithme Simplifier

12.2.13.103. simplify_vw

Simplifie une géométrie en supprimant les nœuds à l’aide d’un seuil basé sur la surface (c’est-à-dire l’algorithme Visvalingam-Whyatt). L’algorithme supprime les sommets qui créent de petites zones dans les géométries, par exemple des pointes étroites ou des segments presque droits.

Syntaxe

simplify_vw(geometry, tolerance)

Arguments

  • geometry - une geometrie

  • tolérance - une mesure de la surface maximale créée par un nœud pour le nœud à supprimer

Exemples

  • geom_to_wkt(simplify_vw(geometry:=geom_from_wkt('LineString(0 0, 5 0, 5.01 10, 5.02 0, 10 0)'),tolerance:=5)) → “LineString(0 0, 10 0)”

Plus de détails : l’algorithme Simplifier

12.2.13.104. single_sided_buffer

Retourne une géométrie formée par la mise en mémoire tampon d’un seul côté d’une géométrie de ligne. Les distances se trouvent dans le système de référence spatiale de cette géométrie.

Syntaxe

single_sided_buffer(geometry, distance, [segments=8], [join=1], [miter_limit=2.0])

[] indique des éléments optionnels

Arguments

  • geométry - une géométrie (multi)linéaire

  • distance - distance tampon. Les valeurs positives seront mises en mémoire tampon à gauche des lignes, les valeurs négatives à droite

  • segments - nombre de segments à utiliser pour représenter un quart de cercle lorsqu’un style de jointure circulaire est utilisé. Un nombre plus élevé donne un tampon plus lisse avec plus de nœuds.

  • jointure - joindre le style pour les coins, où 1 = rond, 2 = angle droit et 3 = oblique

  • limite_angle_droit - limite du rapport de l’angle droit utilisé pour les coins très pointus (en cas d’utilisation de jointure à angle droit uniquement)

Exemples

  • single_sided_buffer($geometry, 10.5) → ligne tampon à gauche par 10,5 unités

  • single_sided_buffer($geometry, -10.5) →ligne tampon à droite par 10,5 unités

  • single_sided_buffer($geometry, 10.5, segments:=16, join:=1) → line buffered to the left by 10.5 units, using more segments to result in a smoother buffer

  • single_sided_buffer($geometry, 10.5, join:=3) → line buffered to the left by 10.5 units, using a beveled join

Plus de détails : l’algorithme buffer simple face

12.2.13.105. sinuosity

Returns the sinuosity of a curve, which is the ratio of the curve length to the straight (2D) distance between its endpoints.

Syntaxe

sinuosity(geometry)

Arguments

  • geometry - Input curve (circularstring, linestring)

Exemples

  • round(sinuosity(geom_from_wkt('LINESTRING(2 0, 2 2, 3 2, 3 3)')), 3) → 1.265

  • sinuosity(geom_from_wkt('LINESTRING( 3 1, 5 1)')) → 1.0

12.2.13.106. smooth

Lisse une géométrie en ajoutant des nœuds supplémentaires qui arrondissent les coins de la géométrie. Si les géométries en entrée contiennent des valeurs Z ou M, celles-ci seront également lissées et la géométrie de sortie conservera la même dimensionnalité que la géométrie d’entrée.

Syntaxe

smooth(geometry, [iterations=1], [offset=0.25], [min_length=-1], [max_angle=180])

[] indique des éléments optionnels

Arguments

  • geometry - une geometrie

  • itérations - nombre d’itérations de lissage à appliquer. Des nombres plus importants donnent des géométries plus lisses mais plus complexes.

  • offset - valeur comprise entre 0 et 0,5 qui contrôle le degré de conformité de la géométrie lissée avec la géométrie d’origine. Des valeurs plus petites entraînent un lissage plus serré, des valeurs plus grandes entraînent un lissage moins serré.

  • min_length - longueur minimale des segments à lisser. Ce paramètre peut être utilisé pour éviter de placer un nombre excessif de nœuds supplémentaires dans des segments plus courts de la géométrie.

  • max_angle - angle maximal au nœud pour le lissage à appliquer (0-180). En abaissant l’angle maximal, on peut préserver les angles intentionnellement vifs de la géométrie. Par exemple, une valeur de 80 degrés conservera des angles droits dans la géométrie.

Exemples

  • geom_to_wkt(smooth(geometry:=geom_from_wkt('LineString(0 0, 5 0, 5 5)'),iterations:=1,offset:=0.2,min_length:=-1,max_angle:=180)) → “LineString (0 0, 4 0, 5 1, 5 5)”

Plus de détails : l’algorithme Lisser

12.2.13.107. start_point

Renvoie le premier nœud d’une géométrie.

Syntaxe

start_point(geometry)

Arguments

  • geometry - objet géométrique

Exemples

  • geom_to_wkt(start_point(geom_from_wkt('LINESTRING(4 0, 4 2, 0 2)'))) → “Point (4 0)”

Plus de détails : l’algorithme Extraire des vertex spécifiques

12.2.13.108. straight_distance_2d

Returns the direct/euclidean distance between the first and last vertex of a geometry. The geometry must be a curve (circularstring, linestring).

Syntaxe

straight_distance_2d(geometry)

Arguments

  • geometry - la géométrie

Exemples

  • straight_distance_2d(geom_from_wkt('LINESTRING(1 0, 1 1)')) → 1

  • round(straight_distance_2d(geom_from_wkt('LINESTRING(1 4, 3 5, 5 0)')), 3) → 5.657

Plus de détails : length

12.2.13.109. sym_difference

Renvoie une géométrie qui représente la portion non intersectées de deux géométries.

Syntaxe

sym_difference(geometry1, geometry2)

Arguments

  • geométry1 - une géométrie

  • geometry2 - une géométrie

Exemples

  • geom_to_wkt( sym_difference( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 8 8)' ) ) ) → “LINESTRING(5 5, 8 8)”

Plus de détails : l’algorithme Différence symétrique

12.2.13.110. tapered_buffer

Crée autour d’une ligne une zone tampon dont le diamètre varie uniformément du début jusqu’à la fin de la ligne.

Syntaxe

tapered_buffer(geometry, start_width, end_width, [segments=8])

[] indique des éléments optionnels

Arguments

  • geometry - géométrie en entrée. Doit être de type (multi)ligne.

  • start_width - largeur de la zone tampon en début de ligne,

  • end_width - largeur de la zone tampon en fin de ligne.

  • segments - nombre de segments pour obtenir des courbes approximatives d’un quart de cercle dans le tampon.

Exemples

  • tapered_buffer(geometry:=geom_from_wkt('LINESTRING(1 2, 4 2)'),start_width:=1,end_width:=2,segments:=8) → Un tampon de taille variable commençant avec un diamètre de 1 et finissant par un diamètre de 2 le long d’une géométrie de polyligne.

../../../_images/tapered_buffer.png

Fig. 12.8 Tapered buffer on line features

Plus de détails : l’algorithme Tampons coniques

12.2.13.111. touches

Teste si une géométrie en touche une autre. Le résultat est vrai si les géométries ont au moins un point commun, mais que leurs intérieurs ne se croisent pas.

Syntaxe

touches(geometry1, geometry2)

Arguments

  • geométry1 - une géométrie

  • geometry2 - une géométrie

Exemples

  • touches( geom_from_wkt( 'LINESTRING(5 3, 4 4)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → true

  • touches( geom_from_wkt( 'POINT(4 4)' ), geom_from_wkt( 'POINT(5 5)' ) ) → false

Plus de détails : overlay_touches

12.2.13.112. transform

Renvoie la géométrie transformée d’un CRS source à un CRS de destination.

Syntaxe

transform(geometry, source_auth_id, dest_auth_id)

Arguments

  • geometry - une geometrie

  • source_auth_id - la source auth CRS ID

  • dest_auth_id - l’ID CRS de destination

Exemples

  • geom_to_wkt( transform( make_point(488995.53240249, 7104473.38600835), 'EPSG:2154', 'EPSG:4326' ) ) → “POINT(0 51)”

Plus de détails : l’algorithme Reprojeter la couche

12.2.13.113. translate

Renvoie une version re projetée d’une géométrie. Les calculs se trouvent dans le système de référence spatiale de cette géométrie.

Syntaxe

translate(geometry, dx, dy)

Arguments

  • geometry - une geometrie

  • dx - delta x

  • dy - delta y

Exemples

  • translate($geometry, 5, 10) → une géométrie du même type que l’original

../../../_images/translate_geometry.png

Fig. 12.9 Translater des entités

Plus de détails : l’algorithme Translater

12.2.13.114. union

Retourne une géométrie qui représente l’union ponctuelle des géométries.

Syntaxe

union(geometry1, geometry2)

Arguments

  • geométry1 - une géométrie

  • geometry2 - une géométrie

Exemples

  • geom_to_wkt( union( make_point(4, 4), make_point(5, 5) ) ) → “MULTIPOINT(4 4, 5 5)”

12.2.13.115. wedge_buffer

Retourne un tampon en forme de coin provenant d’une géométrie de point.

Syntaxe

wedge_buffer(center, azimuth, width, outer_radius, [inner_radius=0.0])

[] indique des éléments optionnels

Arguments

  • center - point central (origine) de la mémoire tampon. Doit être une géométrie de point.

  • azimut - angle (en degrés) pour le milieu du coin jusqu’au point.

  • width - largeur du tampon (en degrés). Notez que le coin s’étendra jusqu’à la moitié de la largeur angulaire de chaque côté de la direction de l’azimut.

  • outer_radius - rayon extérieur pour les tampons

  • inner_radius - rayon intérieur facultatif pour les tampons

Exemples

  • wedge_buffer(center:=geom_from_wkt('POINT(1 2)'),azimuth:=90,width:=180,outer_radius:=1) → Un tampon en forme de coin centré sur le point (1,2), orienté vers l’Est, avec une largeur de 180 degrés et un rayon extérieur de 1.

Plus de détails : l’algorithme Créer des buffer compensés

12.2.13.116. within

Teste si une géométrie est à l’intérieur d’une autre. Retourne vrai si la géométrie1 est complètement à l’intérieur de la géométrie2.

Syntaxe

within(geometry1, geometry2)

Arguments

  • geométry1 - une géométrie

  • geometry2 - une géométrie

Exemples

  • within( geom_from_wkt( 'POINT( 0.5 0.5)' ), geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))' ) ) → true

  • within( geom_from_wkt( 'POINT( 5 5 )' ), geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0 ))' ) ) → false

Plus de détails : overlay_within

12.2.13.117. $x

Renvoie la coordonnée x de l’entité ponctuelle en cours. Si l’entité est multi-partie, la coordonnée x du premier point est renvoyée.

Syntaxe

$x

Exemples

  • $x → 42

12.2.13.118. 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.

Syntaxe

x(geometry)

Arguments

  • geometry - une geometrie

Exemples

  • x( geom_from_wkt( 'POINT(2 5)' ) ) → 2

  • x( $geometry ) → coordonnée x du centroïde de l’entité actuelle

12.2.13.119. $x_at

Récupère une coordonnée en x de la géométrie de l’entité actuelle.

Syntaxe

$x_at(i)

Arguments

  • i - index du point de la ligne (les index commencent à 0, les valeurs négatives s’appliquent à partir de la fin et commence à -1)

Exemples

  • $x_at(1) → 5

12.2.13.120. x_max

Renvoie la coordonnée x maximale d’une géométrie. Les calculs sont effectués dans le Système de Coordonnées de Référence de la géométrie.

Syntaxe

x_max(geometry)

Arguments

  • geometry - une geometrie

Exemples

  • x_max( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 4

12.2.13.121. x_min

Renvoie la coordonnée x minimale d’une géométrie. Les calculs sont effectués dans le Système de Coordonnées de Référence de la géométrie.

Syntaxe

x_min(geometry)

Arguments

  • geometry - une geometrie

Exemples

  • x_min( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 2

12.2.13.122. $y

Renvoie la coordonnée y de l’entité ponctuelle en cours. Si l’entité est multi-partie, la coordonnée y du premier point est renvoyée.

Syntaxe

$y

Exemples

  • $y → 42

12.2.13.123. 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.

Syntaxe

y(geometry)

Arguments

  • geometry - une geometrie

Exemples

  • y( geom_from_wkt( 'POINT(2 5)' ) ) → 5

  • y( $geometry ) → coordonnée y du centroïde de l’entité actuelle

12.2.13.124. $y_at

Récupère une coordonnée en y de la géométrie de l’entité actuelle.

Syntaxe

$y_at(i)

Arguments

  • i - index du point de la ligne (les index commencent à 0, les valeurs négatives s’appliquent à partir de la fin et commence à -1)

Exemples

  • $y_at(1) → 2

12.2.13.125. y_max

Renvoie la coordonnée y maximale d’une géométrie. Les calculs sont effectués dans le Système de Coordonnées de Référence de la géométrie.

Syntaxe

y_max(geometry)

Arguments

  • geometry - une geometrie

Exemples

  • y_max( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 8

12.2.13.126. y_min

Renvoie la coordonnée y minimale d’une géométrie. Les calculs sont effectués dans le Système de Coordonnées de Référence de la géométrie.

Syntaxe

y_min(geometry)

Arguments

  • geometry - une geometrie

Exemples

  • y_min( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 5

12.2.13.127. $z

Returns the z value of the current point feature if it is 3D. If the feature is a multipoint feature, then the z value of the first point will be returned.

Syntaxe

$z

Exemples

  • $z → 123

12.2.13.128. z

Renvoie la coordonnée z d’une géométrie ponctuelle ou NULL si la géométrie n’a pas de valeur z.

Syntaxe

z(geometry)

Arguments

  • geometry - une géométrie ponctuelle

Exemples

  • z( geom_from_wkt( 'POINTZ(2 5 7)' ) ) → 7

12.2.13.129. z_max

Renvoie la coordonnée z maximale d’une géométrie ou NULL si la géométrie n’a pas de valeur z.

Syntaxe

z_max(geometry)

Arguments

  • geometry - une géométrie avec coordonnée z

Exemples

  • z_max( geom_from_wkt( 'POINT ( 0 0 1 )' ) ) → 1

  • z_max( geom_from_wkt( 'MULTIPOINT ( 0 0 1 , 1 1 3 )' ) ) → 3

  • z_max( make_line( make_point( 0,0,0 ), make_point( -1,-1,-2 ) ) ) → 0

  • z_max( geom_from_wkt( 'LINESTRING( 0 0 0, 1 0 2, 1 1 -1 )' ) ) → 2

  • z_max( geom_from_wkt( 'POINT ( 0 0 )' ) ) → NULL

12.2.13.130. z_min

Renvoie la coordonnée z minimale d’une géométrie ou NULL si la géométrie n’a pas de valeur z.

Syntaxe

z_min(geometry)

Arguments

  • geometry - une géométrie avec coordonnée z

Exemples

  • z_min( geom_from_wkt( 'POINT ( 0 0 1 )' ) ) → 1

  • z_min( geom_from_wkt( 'MULTIPOINT ( 0 0 1 , 1 1 3 )' ) ) → 1

  • z_min( make_line( make_point( 0,0,0 ), make_point( -1,-1,-2 ) ) ) → -2

  • z_min( geom_from_wkt( 'LINESTRING( 0 0 0, 1 0 2, 1 1 -1 )' ) ) → -1

  • z_min( geom_from_wkt( 'POINT ( 0 0 )' ) ) → NULL

12.2.14. Fonctions de Mise en Page

Ce groupe contient des fonctions pour manipuler les propriétés des objets des mises en pages.

12.2.14.1. item_variables

Renvoie une table de correspondance des variables d’un élément de la mise en page à l’intérieur de cette mise en page.

Syntaxe

item_variables(id)

Arguments

  • id - Identifiant de l’élément de la mise en page

Exemples

  • map_get( item_variables('Carte 0'), 'map_scale') → l’échelle de l’élément “Carte 0” dans la mise en page actuelle

Plus de détails : Liste des variables par défaut

12.2.14.2. map_credits

Returns a list of credit (usage rights) strings for the layers shown in a layout map item.

Syntaxe

map_credits(id, [include_layer_names=false], [layer_name_separator=”: “])

[] indique des éléments optionnels

Arguments

  • id - map item ID

  • include_layer_names - Set to true to include layer names before their credit strings

  • layer_name_separator - String to insert between layer names and their credit strings, if include_layer_names is true

Exemples

  • array_to_string( map_credits( 'Main Map' ) ) → comma separated list of layer credits for layers shown in the “Main Map” layout item, e.g “CC-BY-NC, CC-BY-SA”

  • array_to_string( map_credits( 'Main Map', include_layer_names := true, layer_name_separator := ': ' ) ) → comma separated list of layer names and their credits for layers shown in the “Main Map” layout item, e.g. “Railway lines: CC-BY-NC, Basemap: CC-BY-SA”

This function requires the Access metadata properties of the layers to have been filled.

12.2.15. Couches

Ce groupe contient une liste des couches disponibles dans le projet courant. Il propose ainsi une façon simple de se référer à des couches dans une expression, par exemple pour exécuter des requêtes d’agrégation, attributaires ou spatiales.

Il fournit également des fonctions pratiques pour manipuler les calques.

12.2.15.1. decode_uri

Prend une couche et décode l’uri du fournisseur de données sous-jacent. Les données qui sont disponibles dépendent du fournisseur de données.

Syntaxe

decode_uri(layer, [part])

[] indique des éléments optionnels

Arguments

  • La couche pour laquelle l’uri doit être décodé.

  • part - La partie de l’uri à retourner. Si elle n’est pas spécifiée, une carte avec toutes les parties de l’uri sera retournée.

Exemples

  • decode_uri(@layer) → {“layerId”: “0”, “layerName”: “”, “path”: “/home/qgis/shapefile.shp”}

  • decode_uri(@layer) → {“layerId”: NULL, “layerName”: “layer”, “path”: “/home/qgis/geopackage.gpkg”}

  • decode_uri(@layer, 'path') → “C:\my_data\qgis\shape.shp”

12.2.15.2. layer_property

Renvoie une propriété ou une valeur de métadonnée de la couche.

Syntaxe

layer_property(layer, property)

Arguments

  • layer - une chaîne de caractères représentant soit un nom de couche soit un ID de couche

  • property - une chaîne correspondant à la propriété à renvoyer. Les options valides sont :

    • name: nom de la couche

    • id: ID de le couche

    • title: chaîne titre des métadonnées

    • abstract: chaîne résumé des métadonnées

    • keywords: mots-clés des métadonnées

    • data_url: URL de métadonnées

    • attribution: chaîne d’attribution des métadonnées

    • attribution_url: URL d’attribution des métadonnées

    • source: couche source

    • min_scale: échelle d’affichage minimale de la couche

    • max_scale: échelle d’affichage maximale de la couche

    • is_editable: si la couche est en mode édition

    • crs: SCR de la couche

    • crs_definition: définition complète du SCR de la couche

    • crs_description: description du SCR de la couche

    • extent: étendue de la couche (comme objet géométrie)

    • distance_units: unités de distance de la couche

    • type: type de couche, par exemple, Vecteur ou Raster

    • storage_type: format de stockage (couches vectorielles uniquement)

    • geometry_type: type de géométrie, par exemple Point (couches vectorielles uniquement)

    • feature_count: nombre approximatif d’entités de la couche (couches vectorielles uniquement)

    • path: chemin du fichier de la source de données pour la couche. Disponible uniquement pour les couches basées sur des fichiers.

Exemples

  • layer_property('rues','title') → “Fond de carte des Rues”

  • layer_property('aeroports','feature_count') → 120

  • layer_property('landsat','crs') → “EPSG:4326”

Plus de détails : propriétés des couches vecteur, raster et maillage

12.2.16. Fonctions de Tableaux associatifs

Ce groupe contient des fonctions servant à créer ou manipuler des clés et des valeurs de structures de données “tableaux associatifs” (également appelées dictionnaire, paires de clé-valeur, tableaux de correspondance ou “map”). Contrairement à la structure de liste de données où l’ordre des valeurs a une importance, l’ordre des paires clé-valeur dans le tableau n’a pas d’importance et les valeurs sont identifiées par leurs clés.

12.2.16.1. from_json

Charge une chaîne formatée en JSON.

Syntaxe

from_json(string)

Arguments

  • chaîne - Chaîne JSON

Exemples

  • from_json('{"qgis":"déchire"}') → { “qgis”: “déchire” }

  • from_json('[1,2,3]') → [1,2,3]

12.2.16.2. hstore_to_map

Crée une carte à partir d’une chaîne formatée hstore.

Syntaxe

hstore_to_map(string)

Arguments

  • string - la chaîne en entrée

Exemples

  • hstore_to_map('qgis=>déchire') → { “qgis”: “déchire” }

12.2.16.3. map

Retourne une carte contenant toutes les clés et valeurs passées en tant que paire de paramètres.

Syntaxe

map(key1, value1, key2, value2, …)

Arguments

  • clé - une clé (chaîne de caractères)

  • value - une valeur

Exemples

  • map('1','one','2', 'two') → { “1”: “one”, “2”: “two” }

  • map('1','one','2', 'two')['1'] → “one”

12.2.16.4. map_akeys

Retourne toutes les clés d’une carte sous forme de tableau.

Syntaxe

map_akeys(map)

Arguments

  • map - une carte

Exemples

  • map_akeys(map('1','one','2','two')) → [ “1”, “2” ]

12.2.16.5. map_avals

Retourne toutes les valeurs d’une carte sous forme de tableau.

Syntaxe

map_avals(map)

Arguments

  • map - une carte

Exemples

  • map_avals(map('1','one','2','two')) → [ “one”, “two” ]

12.2.16.6. map_concat

Renvoie une carte contenant toutes les entrées des cartes données. Si deux cartes contiennent la même clé, la valeur de la deuxième carte est prise.

Syntaxe

map_concat(map1, map2, …)

Arguments

  • map - une carte

Exemples

  • map_concat(map('1','un', '2','en plus'),map('2','deux', '3','trois')) → { “1”: “un”, “2”: “deux”, “3”: “trois” }

12.2.16.7. map_delete

Retourne une carte avec la clé donnée et sa valeur correspondante supprimée.

Syntaxe

map_delete(map, key)

Arguments

  • map - une carte

  • key - la clé pour supprimer

Exemples

  • map_delete(map('1','one','2','two'),'2') → { “1”: “one” }

12.2.16.8. map_exist

Retourne vrai si la clé donnée existe dans la carte.

Syntaxe

map_exist(map, key)

Arguments

  • map - une carte

  • key - la clé de la recherche

Exemples

  • map_exist(map('1','one','2','two'),'3') → false

12.2.16.9. map_get

Renvoie la valeur correspondant à une clé dans un dictionnaire. Renvoie NULL si la clé n’existe pas.

Syntaxe

map_get(map, key)

Arguments

  • map - une carte

  • key - la clé de la recherche

Exemples

  • map_get(map('1','one','2','two'),'2') → “two”

  • map_get( item_variables('Carte 0'), 'map_scale') → l’échelle de l’élément “Carte 0” (s’il existe) dans la mise en page actuelle

Indication

You can also use the index operator ([]) to get a value from a map.

12.2.16.10. map_insert

Ajoute une clé et sa valeur à un dictionnaire. Si la clé existe déjà, la valeur correspondante sera écrasée par la nouvelle.

Syntaxe

map_insert(map, key, value)

Arguments

  • map - une carte

  • key - la clé à ajouter

  • value - la valeur à ajouter

Exemples

  • map_insert(map('1','one'),'3','three') → { “1”: “one”, “3”: “three” }

  • map_insert(map('1','un','2','en plus'),'2','deux') → { “1”: “un”, “2”: “deux” }

12.2.16.11. map_to_hstore

Fusionner les éléments de la carte en une chaîne au format hstore.

Syntaxe

map_to_hstore(map)

Arguments

  • map - la carte d’entrée

Exemples

  • map_to_hstore(map('qgis','déchire')) → “« qgis »=> »déchire »”

12.2.16.12. to_json

Créer une chaîne formatée en JSON à partir d’une carte, d’une table ou d’une autre valeur.

Syntaxe

to_json(value)

Arguments

  • value - La valeur d’entrée

Exemples

  • to_json(map('qgis','rocks')) → {« qgis »: »rocks »}

  • to_json(array(1,2,3)) → [1,2,3]

12.2.17. Fonctions mathématiques

Ce groupe contient des fonctions mathématiques (par ex. racine carré, sin et cos).

12.2.17.1. abs

Renvoie la valeur absolue d’un nombre.

Syntaxe

abs(value)

Arguments

  • value - un nombre

Exemples

  • abs(-2) → 2

12.2.17.2. acos

Renvoie le cosinus inverse d’une valeur en radians.

Syntaxe

acos(value)

Arguments

  • value - cosinus d’un angle en radians

Exemples

  • acos(0.5) → 1.0471975511966

12.2.17.3. asin

Renvoie le sinus inverse d’une valeur en radians.

Syntaxe

asin(value)

Arguments

  • value - sinus d’un angle en radians

Exemples

  • asin(1.0) → 1.5707963267949

12.2.17.4. atan

Renvoie la tangeante inverse d’une valeur en radians.

Syntaxe

atan(value)

Arguments

  • value - tangente d’un angle en radians

Exemples

  • atan(0.5) → 0.463647609000806

12.2.17.5. atan2

Retourne la tangente inverse de dy/dx en utilisant les signes des deux arguments pour déterminer le quadrant du résultat.

Syntaxe

atan2(dy, dx)

Arguments

  • dy - différence de coordonnées y

  • dx - différence de coordonnées x

Exemples

  • atan2(1.0, 1.732) → 0.523611477769969

12.2.17.6. ceil

Arrondit un nombre vers le haut.

Syntaxe

ceil(value)

Arguments

  • value - un nombre

Exemples

  • ceil(4.9) → 5

  • ceil(-4.9) → -4

12.2.17.7. clamp

Restreint une valeur d’entrée à une plage spécifique.

Syntaxe

clamp(minimum, input, maximum)

Arguments

  • minimum - la plus petite valeur que input peut prendre.

  • input - une valeur qui sera restreinte à la plage indiquée par minimum et maximum

  • maximum - la plus grande valeur que input peut prendre

Exemples

  • clamp(1,5,10) → 5

    input se situe entre 1 et 10 donc la valeur est renvoyée inchangée

  • clamp(1,0,10) → 1

    input est inférieure à la valeur minimum de 1, la fonction renvoie 1

  • clamp(1,11,10) → 10

    input est supérieure à la valeur maximale de 10, la fonction renvoie 10

12.2.17.8. cos

Renvoie le cosinus d’un angle.

Syntaxe

cos(angle)

Arguments

  • angle - angle en radians

Exemples

  • cos(1.571) → 0.000796326710733263

12.2.17.9. degrees

Convertit des angles en radians vers des degrés.

Syntaxe

degrees(radians)

Arguments

  • radians - valeur numérique

Exemples

  • degrees(3.14159) → 180

  • degrees(1) → 57.2958

12.2.17.10. exp

Renvoie l’exponentiel d’une valeur.

Syntaxe

exp(value)

Arguments

  • value - nombre dont il faut renvoyer l’exponentiel

Exemples

  • exp(1.0) → 2.71828182845905

12.2.17.11. floor

Arrondit un nombre vers le bas.

Syntaxe

floor(value)

Arguments

  • value - un nombre

Exemples

  • floor(4.9) → 4

  • floor(-4.9) → -5

12.2.17.12. ln

Renvoie le logarithme népérien d’une valeur.

Syntaxe

ln(value)

Arguments

  • value - valeur numérique

Exemples

  • ln(1) → 0

  • ln(2.7182818284590452354) → 1

12.2.17.13. log

Renvoie la valeur du logarithme selon la valeur et la base en arguments.

Syntaxe

log(base, value)

Arguments

  • base - n’importe quel nombre positif

  • value - n’importe quel nombre positif

Exemples

  • log(2, 32) → 5

  • log(0.5, 32) → -5

12.2.17.14. log10

Renvoie la valeur du logarithme en base 10 de l’expression en argument.

Syntaxe

log10(value)

Arguments

  • value - n’importe quel nombre positif

Exemples

  • log10(1) → 0

  • log10(100) → 2

12.2.17.15. max

Renvoie la valeur la plus haute d’un ensemble de valeurs.

Syntaxe

max(value1, value2, …)

Arguments

  • value - un nombre

Exemples

  • max(2,10.2,5.5) → 10.2

  • max(20.5,NULL,6.2) → 20.5

12.2.17.16. min

Renvoie la valeur la plus faible d’un ensemble de valeurs.

Syntaxe

min(value1, value2, …)

Arguments

  • value - un nombre

Exemples

  • min(20.5,10,6.2) → 6.2

  • min(2,-10.3,NULL) → -10.3

12.2.17.17. pi

Renvoie la valeur de Pi pour utilisation dans d’autres calculs.

Syntaxe

pi()

Exemples

  • pi() → 3.14159265358979

12.2.17.18. radians

Convertit des angles en degrés vers des radians.

Syntaxe

radians(degrees)

Arguments

  • degrees - valeur numérique

Exemples

  • radians(180) → 3.14159

  • radians(57.2958) → 1

12.2.17.19. rand

Renvoie un entier aléatoire dans la plage spécifiée par les valeurs minimale et maximale (inclusives). Si une graine est fournie, le résultat sera toujours le même, en fonction de la graine.

Syntaxe

rand(min, max, [seed=NULL])

[] indique des éléments optionnels

Arguments

  • min - un entier représentant la plus petite valeur aléatoire possible

  • max - un entier représentant la plus grande valeur aléatoire possible

  • seed - n’importe quelle valeur à utiliser comme graine

Exemples

  • rand(1, 10) → 8

12.2.17.20. randf

Renvoie un nombre réel aléatoire aléatoire dans la plage spécifiée par les valeurs minimale et maximale (inclusives). Si une graine est fournie, le résultat sera toujours le même, en fonction de la graine.

Syntaxe

randf([min=0.0], [max=1.0], [seed=NULL])

[] indique des éléments optionnels

Arguments

  • min - un nombre réel représentant la plus petite valeur aléatoire possible

  • max - un nombre réel représentant la plus grande valeur aléatoire possible

  • seed - n’importe quelle valeur à utiliser comme graine

Exemples

  • randf(1, 10) → 4.59258286403147

12.2.17.21. round

Arrondit un nombre au nombre de décimales indiqué.

Syntaxe

round(value, [places=0])

[] indique des éléments optionnels

Arguments

  • value - nombre décimal à arrondir

  • places - Entier optionnel représentant le nombre de caractères après la virgule à arrondir. Peut être négatif.

Exemples

  • round(1234.567, 2) → 1234.57

  • round(1234.567) → 1235

  • round(1234.567, -1) → 1230

12.2.17.22. scale_exp

Transforme une valeur donnée d’un domaine d’entrée en une plage de sortie à l’aide d’une courbe exponentielle. Cette fonction peut être utilisée pour faciliter les valeurs dans ou hors de la plage de sortie spécifiée.

Syntaxe

scale_exp(value, domain_min, domain_max, range_min, range_max, exponent)

Arguments

  • value - Une valeur dans le domaine d’entrée. La fonction retournera une valeur correspondante à l’échelle dans le domaine de la sortie.

  • domain_min - Spécifie la valeur minimale dans le domaine de saisie, la plus petite valeur que la valeur de saisie doit prendre.

  • domaine_max - Spécifie la valeur maximale dans le domaine d’entrée, la plus grande valeur que la valeur d’entrée devrait prendre.

  • range_min - Spécifie la valeur minimale dans la plage de sortie, la plus petite valeur qui doit être sortie par la fonction.

  • range_max - Spécifie la valeur maximale dans la plage de sortie, la plus grande valeur qui doit être sortie par la fonction.

  • exposant - Valeur positive (supérieure à 0), qui dicte la manière dont les valeurs d’entrée sont mises en correspondance avec la plage de sortie. Les grands exposants font que les valeurs de sortie « s’atténuent », en commençant lentement avant d’accélérer à mesure que les valeurs d’entrée approchent du maximum du domaine. Les exposants plus petits (moins de 1) entraînent une « sortie » des valeurs de sortie, où la mise en correspondance commence rapidement mais ralentit à mesure que l’on se rapproche du maximum du domaine.

Exemples

  • scale_exp(5,0,10,0,100,2) → 25

    easing in, using an exponent of 2

  • scale_exp(3,0,10,0,100,0.5) → 54.772

    l’assouplissement, en utilisant un exposant de 0,5

12.2.17.23. scale_linear

Transforme une valeur donnée d’un domaine d’entrée à une plage de sortie en utilisant une interpolation linéaire.

Syntaxe

scale_linear(value, domain_min, domain_max, range_min, range_max)

Arguments

  • value - Une valeur dans le domaine d’entrée. La fonction retournera une valeur correspondante à l’échelle dans le domaine de la sortie.

  • domain_min - Spécifie la valeur minimale dans le domaine de saisie, la plus petite valeur que la valeur de saisie doit prendre.

  • domaine_max - Spécifie la valeur maximale dans le domaine d’entrée, la plus grande valeur que la valeur d’entrée devrait prendre.

  • range_min - Spécifie la valeur minimale dans la plage de sortie, la plus petite valeur qui doit être sortie par la fonction.

  • range_max - Spécifie la valeur maximale dans la plage de sortie, la plus grande valeur qui doit être sortie par la fonction.

Exemples

  • scale_linear(5,0,10,0,100) → 50

  • scale_linear(0.2,0,1,0,360) → 72

    la mise à l’échelle d’une valeur comprise entre 0 et 1 à un angle compris entre 0 et 360

  • scale_linear(1500,1000,10000,9,20) → 9.6111111

    la mise à l’échelle d’une population qui varie entre 1000 et 10000 à une taille de police comprise entre 9 et 20

12.2.17.24. sin

Renvoie le sinus d’un angle.

Syntaxe

sin(angle)

Arguments

  • angle - angle en radians

Exemples

  • sin(1.571) → 0.999999682931835

12.2.17.25. sqrt

Renvoie la racine carrée d’une valeur.

Syntaxe

sqrt(value)

Arguments

  • value - un nombre

Exemples

  • sqrt(9) → 3

12.2.17.26. tan

Renvoie la tangente d’un angle.

Syntaxe

tan(angle)

Arguments

  • angle - angle en radians

Exemples

  • tan(1.0) → 1.5574077246549

12.2.18. Fonctions de maillage

This group contains functions which calculate or return mesh related values.

12.2.18.1. $face_area

Returns the area of the current mesh face. The area calculated by this function respects both the current project’s ellipsoid setting and area unit settings. For example, if an ellipsoid has been set for the project then the calculated area will be ellipsoidal, and if no ellipsoid is set then the calculated area will be planimetric.

Syntaxe

$face_area

Exemples

  • $face_area → 42

12.2.18.2. $face_index

Returns the index of the current mesh face.

Syntaxe

$face_index

Exemples

  • $face_index → 4581

12.2.18.3. $vertex_as_point

Returns the current vertex as a point geometry.

Syntaxe

$vertex_as_point

Exemples

  • geom_to_wkt( $vertex_as_point ) → “POINT(800 1500 41)”

12.2.18.4. $vertex_index

Returns the index of the current mesh vertex.

Syntaxe

$vertex_index

Exemples

  • $vertex_index → 9874

12.2.18.5. $vertex_x

Returns the X coordinate of the current mesh vertex.

Syntaxe

$vertex_x

Exemples

  • $vertex_x → 42.12

12.2.18.6. $vertex_y

Returns the Y coordinate of the current mesh vertex.

Syntaxe

$vertex_y

Exemples

  • $vertex_y → 12.24

12.2.18.7. $vertex_z

Renvoie la valeur Z du sommet actuel du maillage.

Syntaxe

$vertex_z

Exemples

  • $vertex_z → 42

12.2.19. Opérateurs

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.

12.2.19.1. %

Reste d’une division

Syntaxe

a % b

Arguments

  • a - valeur

  • b - valeur

Exemples

  • 5 % 4 → 1

  • 5 % NULL → NULL

12.2.19.2. *

Multiplication de deux valeurs

Syntaxe

a * b

Arguments

  • a - valeur

  • b - valeur

Exemples

  • 5 * 4 → 20

  • 5 * NULL → NULL

12.2.19.3. +

Addition de deux valeurs. Si une des valeurs est NULL, le résultat sera aussi NULL.

Syntaxe

a + b

Arguments

  • a - valeur

  • b - valeur

Exemples

  • 5 + 4 → 9

  • 5 + NULL → NULL

  • 'QGIS ' + 'ROCKS' → “QGIS ROCKS”

  • to_datetime('2020-08-01 12:00:00') + '1 day 2 hours' → 2020-08-02T14:00:00

Voir aussi : concat, ||

12.2.19.4. -

Soustraction de deux valeurs. Si une des valeurs est NULL, le résultat sera aussi NULL.

Syntaxe

a - b

Arguments

  • a - valeur

  • b - valeur

Exemples

  • 5 - 4 → 1

  • 5 - NULL → NULL

  • to_datetime('2012-05-05 12:00:00') - to_interval('1 day 2 hours') → 2012-05-04T10:00:00

12.2.19.5. /

Division de deux valeurs

Syntaxe

a / b

Arguments

  • a - valeur

  • b - valeur

Exemples

  • 5 / 4 → 1.25

  • 5 / NULL → NULL

12.2.19.6. <

Compare deux valeurs et renvoie 1 si la valeur à gauche est inférieure à celle de droite.

Syntaxe

a < b

Arguments

  • a - valeur

  • b - valeur

Exemples

  • 5 < 4 → 0

  • 5 < 5 → 0

  • 4 < 5 → 1

12.2.19.7. <=

Compare deux valeurs et renvoie 1 si la valeur à gauche est inférieure ou égale à celle de droite.

Syntaxe

a <= b

Arguments

  • a - valeur

  • b - valeur

Exemples

  • 5 <= 4 → 0

  • 5 <= 5 → 1

  • 4 <= 5 → 1

12.2.19.8. <>

Compare deux valeurs et renvoie 1 si elles ne sont pas égales.

Syntaxe

a <> b

Arguments

  • a - valeur

  • b - valeur

Exemples

  • 5 <> 4 → 1

  • 4 <> 4 → 0

  • 5 <> NULL → NULL

  • NULL <> NULL → NULL

12.2.19.9. =

Compare deux valeurs et renvoie 1 si elles sont égales.

Syntaxe

a = b

Arguments

  • a - valeur

  • b - valeur

Exemples

  • 5 = 4 → 0

  • 4 = 4 → 1

  • 5 = NULL → NULL

  • NULL = NULL → NULL

12.2.19.10. >

Compare deux valeurs et renvoie 1 si la valeur à gauche est supérieure à celle de droite.

Syntaxe

a > b

Arguments

  • a - valeur

  • b - valeur

Exemples

  • 5 > 4 → 1

  • 5 > 5 → 0

  • 4 > 5 → 0

12.2.19.11. >=

Compare deux valeurs et renvoie 1 si la valeur à gauche est supérieure ou égale à celle de droite.

Syntaxe

a >= b

Arguments

  • a - valeur

  • b - valeur

Exemples

  • 5 >= 4 → 1

  • 5 >= 5 → 1

  • 4 >= 5 → 0

12.2.19.12. AND

Renvoie 1 lorsque les conditions a et b sont vraies.

Syntaxe

a AND b

Arguments

  • a - condition

  • b - condition

Exemples

  • TRUE AND TRUE → 1

  • TRUE AND FALSE → 0

  • 4 = 2+2 AND 1 = 1 → 1

  • 4 = 2+2 AND 1 = 2 → 0

12.2.19.13. ILIKE

Returns 1 if the first parameter matches case-insensitive the supplied pattern. LIKE can be used instead of ILIKE to make the match case-sensitive. Works with numbers also.

Syntaxe

string/number ILIKE pattern

Arguments

  • string/number - string to search

  • pattern - pattern to find, you can use “%” as a wildcard, “_” as a single char and “\\” to escape these special characters.

Exemples

  • 'A' ILIKE 'A' → 1

  • 'A' ILIKE 'a' → 1

  • 'A' ILIKE 'B' → 0

  • 'ABC' ILIKE 'b' → 0

  • 'ABC' ILIKE 'B' → 0

  • 'ABC' ILIKE '_b_' → 1

  • 'ABC' ILIKE '_B_' → 1

  • 'ABCD' ILIKE '_b_' → 0

  • 'ABCD' ILIKE '_B_' → 0

  • 'ABCD' ILIKE '_b%' → 1

  • 'ABCD' ILIKE '_B%' → 1

  • 'ABCD' ILIKE '%b%' → 1

  • 'ABCD' ILIKE '%B%' → 1

  • 'ABCD%' ILIKE 'abcd\\%' → 1

  • 'ABCD' ILIKE '%B\\%' → 0

12.2.19.14. IN

Returns 1 if value is found within a list of values.

Syntaxe

a IN b

Arguments

  • a - valeur

  • b - liste de valeurs

Exemples

  • 'A' IN ('A','B') → 1

  • 'A' IN ('C','B') → 0

12.2.19.15. IS

Renvoie 1 si a est identique à b

Syntaxe

a IS b

Arguments

  • a - n’importe quelle valeur

  • b - n’importe quelle valeur

Exemples

  • 'A' IS 'A' → 1

  • 'A' IS 'a' → 0

  • 4 IS 4 → 1

  • 4 IS 2+2 → 1

  • 4 IS 2 → 0

  • $geometry IS NULL → 0, si la géométrie n’est pas NULL

12.2.19.16. IS NOT

Renvoie 1 si a n’est pas identique à b.

Syntaxe

a IS NOT b

Arguments

  • a - valeur

  • b - valeur

Exemples

  • 'a' IS NOT 'b' → 1

  • 'a' IS NOT 'a' → 0

  • 4 IS NOT 2+2 → 0

12.2.19.17. LIKE

Returns 1 if the first parameter matches the supplied pattern. Works with numbers also.

Syntaxe

string/number LIKE pattern

Arguments

  • string/number - value

  • pattern - pattern to compare value with, you can use “%” as a wildcard, “_” as a single char and “\\” to escape these special characters.

Exemples

  • 'A' LIKE 'A' → 1

  • 'A' LIKE 'a' → 0

  • 'A' LIKE 'B' → 0

  • 'ABC' LIKE 'B' → 0

  • 'ABC' LIKE '_B_' → 1

  • 'ABCD' LIKE '_B_' → 0

  • 'ABCD' LIKE '_B%' → 1

  • 'ABCD' LIKE '%B%' → 1

  • '1%' LIKE '1\\%' → 1

  • '1_' LIKE '1\\%' → 0

12.2.19.18. NOT

Negates a condition.

Syntaxe

NOT a

Arguments

  • a - condition

Exemples

  • NOT 1 → 0

  • NOT 0 → 1

12.2.19.19. OR

Returns 1 when condition a or b is true.

Syntaxe

a OR b

Arguments

  • a - condition

  • b - condition

Exemples

  • 4 = 2+2 OR 1 = 1 → 1

  • 4 = 2+2 OR 1 = 2 → 1

  • 4 = 2   OR 1 = 2 → 0

12.2.19.20. []

Index operator. Returns an element from an array or map value.

Syntaxe

[index]

Arguments

  • index - array index or map key value

Exemples

  • array(1,2,3)[0] → 1

  • array(1,2,3)[2] → 3

  • array(1,2,3)[-1] → 3

  • map('a',1,'b',2)['a'] → 1

  • map('a',1,'b',2)['b'] → 2

Voir aussi : array_get, map_get

12.2.19.21. ^

Power of two values.

Syntaxe

a ^ b

Arguments

  • a - valeur

  • b - valeur

Exemples

  • 5 ^ 4 → 625

  • 5 ^ NULL → NULL

12.2.19.22. ||

Joins two values together into a string.

If one of the values is NULL the result will be NULL. See the CONCAT function for a different behavior.

Syntaxe

a || b

Arguments

  • a - valeur

  • b - valeur

Exemples

  • 'Ici' || ' et ' || 'là' → “Ici et là”

  • 'Rien' || NULL → NULL

  • 'Dia: ' || "Diametre" → “Dia: 25”

  • 1 || 2 → “12”

Voir aussi : concat, +

12.2.19.23. ~

Performs a regular expression match on a string value. Backslash characters must be double escaped (e.g., « \\s » to match a white space character).

Syntaxe

string ~ regex

Arguments

  • string - une chaîne de caractères

  • regex - A regular expression. Slashes must be escaped, eg \\d.

Exemples

  • 'hello' ~ 'll' → 1

  • 'hello' ~ '^ll' → 0

  • 'hello' ~ 'llo$' → 1

  • 'abc123' ~ '\\d+' → 1

Plus de détails : regexp_match

12.2.20. Fonctions de Processing

Ce groupe contient des fonctions qui opèrent sur des algorithmes de traitement.

12.2.20.1. parameter

Renvoie la valeur d’un paramètre d’entrée d’un algorithme de traitement.

Syntaxe

parameter(name)

Arguments

  • name - nom du paramètre d’entrée correspondant

Exemples

  • parameter('BUFFER_SIZE') → 5.6

12.2.21. Fonctions Raster

Ce groupe contient des fonctions à implémenter sur une couche raster

12.2.21.1. raster_statistic

Renvoie les statistiques d’une couche raster.

Syntaxe

raster_statistic(layer, band, property)

Arguments

  • layer - une chaîne de caractères représentant soit un nom de couche raster ou un ID de couche

  • band - entier représentant le numéro de bande de la couche raster, commençant à 1

  • property - une chaîne correspondant à la propriété à renvoyer. Les options valides sont :

    • min: valeur minimum

    • max: valeur maximum

    • avg: valeur moyenne

    • stdev: écart type des valeurs

    • range: plage des valeurs (max - min)

    • sum: somme de toutes les valeurs du raster

Exemples

  • raster_statistic('lc',1,'avg') → Valeur moyenne de la bande 1 issue de la couche raster “lc”

  • raster_statistic('ac2010',3,'min') → Valeur minimale de la bande 3 issue de la couche raster “ac2010”

12.2.21.2. raster_value

Retourne la valeur du pixel dans le raster aux coordonnées du point.

Syntaxe

raster_value(layer, band, point)

Arguments

  • layer - le nom ou l’identifiant de la couche raster

  • band - le numéro de la bande dans laquelle prélever la valeur.

  • point - géométrie ponctuelle (pour les géométries multi-parties ayant plus qu’une partie, une valeur NULL sera renvoyée)

Exemples

  • raster_value('dem', 1, make_point(1,1)) → 25

12.2.22. Fonction d’enregistrement et d’attributs

Ce groupe contient des fonctions qui permettent d’accéder aux identifiants des enregistrements.

12.2.22.1. attribute

Retourne un attribut d’une entité.

Variante 1

Retourne la valeur d’un attribut de l’élément en cours.

Syntaxe

attribute(attribute_name)

Arguments

  • attribute_name - nom de l’attribut à renvoyer

Exemples

  • attribute( 'name' ) → valeur stockée dans l’attribut “name” pour l’entité actuelle

Variante 2

Permet de spécifier l’entité cible et le nom de l’attribut.

Syntaxe

attribute(feature, attribute_name)

Arguments

  • feature - une entité

  • attribute_name - nom de l’attribut à renvoyer

Exemples

  • attribute( @atlas_feature, 'name' ) → valeur stockée dans l’attribut “name” pour l’entité actuelle de l’atlas

12.2.22.2. attributes

Retourne un dictionnaire contenant tous les attributs d’une entité, avec les noms des champs comme clés du dictionnaire.

Variante 1

Retourne un dictionnaire contenant tous les attributs de l’entité en cours.

Syntaxe

attributes()

Exemples

  • attributes()['name'] → valeur stockée dans l’attribut “name” pour l’entité en cours

Variante 2

Permet de spécifier l’entité cible.

Syntaxe

attributes(feature)

Arguments

  • feature - une entité

Exemples

  • attributes( @atlas_feature )['name'] → valeur stockée dans l’attribut “name” pour l’entité actuelle de l’atlas

Plus de détails : Fonctions de Tableaux associatifs

12.2.22.3. $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.

Syntaxe

$currentfeature

Exemples

  • attribute( $currentfeature, 'name' ) → valeur stockée dans l’attribut “name” pour l’entité actuelle

12.2.22.4. display_expression

Retourne l’expression d’affichage pour une entité donnée dans une couche. L’expression est évaluée par défaut. Elle peut être utilisée avec zéro, un ou plusieurs arguments, voir ci-dessous pour plus de détails.

Pas de paramètres

Si elle est appelée sans paramètres, la fonction évaluera l’expression d’affichage de l’entité actuelle dans la couche en cours.

Syntaxe

display_expression()

Exemples

  • display_expression() → L’expression d’affichage de l’entité courante dans la couche courante.

Une “entité” en paramètre

Si elle est appelée uniquement avec une entité en paramètre, la fonction évaluera l’entité spécifiée à partir de la couche actuelle.

Syntaxe

display_expression(feature)

Arguments

  • feature - L’entité qui doit être évaluée.

Exemples

  • display_expression(@atlas_feature) → L’expression d’affichage de l’entité actuelle de l’atlas.

Paramètres des couches et des entités

Si la fonction est appelée à la fois avec une couche et une entité, elle évaluera l’entité spécifiée à partir de la couche spécifiée.

Syntaxe

display_expression(layer, feature, [evaluate=true])

[] indique des éléments optionnels

Arguments

  • layer - La couche (ou son ID ou son nom)

  • feature - L’entité qui doit être évaluée.

  • evaluate - Si l’expression doit être évaluée. Si elle est fausse, l’expression sera renvoyée sous forme de chaîne de caractères littérale uniquement (qui pourrait éventuellement être évaluée ultérieurement à l’aide de la fonction “eval”).

Exemples

  • display_expression( 'streets', get_feature_by_id('streets', 1)) → L’expression d’affichage de l’entité avec l’ID 1 sur la couche “streets”.

  • display_expression('a_layer_id', $currentfeature, 'False') → L’expression d’affichage de l’entité donnée n’est pas évaluée.

12.2.22.5. get_feature

Retourne la première entité d’une couche correspondant à une valeur d’attribut donnée.

Syntaxe

get_feature(layer, attribute, value)

Arguments

  • layer - nom de la couche ou ID

  • attribute - nom de l’attribut

  • value - valeur d’attribut à trouver

Exemples

  • get_feature('rue','nom','de la Libération') → Première entité trouvée dans la couche « rue » avec la valeur « de la Libération » dans le champ « nom »

12.2.22.6. get_feature_by_id

Retourne l’entité avec un identifiant sur une couche.

Syntaxe

get_feature_by_id(layer, feature_id)

Arguments

  • layer - couche, nom de la couche ou identifiant de la couche

  • feature_id - l’identifiant de l’entité qui doit être renvoyée

Exemples

  • get_feature_by_id('streets', 1) → l’entité avec l’id 1 sur la couche « streets »

Plus de détails : $id

12.2.22.7. $id

Renvoie l’identifiant de l’entité de la ligne actuelle.

Syntaxe

$id

Exemples

  • $id → 42

12.2.22.8. is_selected

Retourne Vrai si une entité est sélectionnée. Peut être utilisé avec zéro, un ou deux arguments, voir ci-dessous pour plus de détails.

Pas de paramètres

Si elle est appelée sans paramètres, la fonction reviendra à l’état vrai si l’entité en cours dans la couche actuelle est sélectionné.

Syntaxe

is_selected()

Exemples

  • is_selected() → Vrai si l’entité actuelle dans la couche actuelle est sélectionnée.

Une “entité” en paramètre

Si elle est appelée uniquement avec une entité en paramètre, la fonction retourne vrai si l’entité spécifiée de la couche actuelle est sélectionnée.

Syntaxe

is_selected(feature)

Arguments

  • feature - l’entité qui doit être vérifiée pour la sélection.

Exemples

  • is_selected(@atlas_feature) → Vrai si l’entité actuelle de l’atlas est sélectionnée.

  • is_selected(get_feature('streets', 'name', 'Main St.'))) → True if the unique named « Main St. » feature on the active « streets » layer is selected.

  • is_selected(get_feature_by_id('streets', 1)) → True if the feature with the id 1 on the active « streets » layer is selected.

Deux paramètres

Si la fonction est appelée à la fois avec une couche et une entité, elle retournera vrai si l’entité spécifiée de la couche spécifiée est sélectionnée.

Syntaxe

is_selected(layer, feature)

Arguments

  • layer - La couche (son ID ou nom) sur laquelle la sélection sera vérifiée.

  • feature - l’entité qui doit être vérifiée pour la sélection.

Exemples

  • is_selected('streets', get_feature('streets', 'name', 'street_name')) → Vrai si la rue du bâtiment actuel est sélectionnée (en supposant que la couche du bâtiment a un champ appelé “street_name” et que la couche “streets” a un champ appelé “name” avec des valeurs uniques).

  • is_selected( “streets”, get_feature_by_id(“streets”, 1))` → Vrai si l’entité avec l’id 1 sur la couche « streets » est sélectionnée.

12.2.22.9. maptip

Retourne l’info-bulle pour une entité donnée dans une couche. L’expression est évaluée par défaut. Peut être utilisée avec zéro, un ou plusieurs arguments, voir ci-dessous pour plus de détails.

Pas de paramètres

Si elle est appelée sans paramètres, la fonction évaluera l’extrémité de la carte de l’élément actuel dans la couche en cours.

Syntaxe

maptip()

Exemples

  • maptip() → Le maptip de l’entité courante dans la couche courante.

Une “entité” en paramètre

Si elle est appelée uniquement avec une entité en paramètre, la fonction évaluera l’entité spécifiée à partir de la couche actuelle.

Syntaxe

maptip(feature)

Arguments

  • feature - L’entité qui doit être évaluée.

Exemples

  • maptip(@atlas_feature) → Le maptip de l’entité actuelle de l’atlas.

Paramètres des couches et des entités

Si la fonction est appelée à la fois avec une couche et une entité, elle évaluera l’entité spécifiée à partir de la couche spécifiée.

Syntaxe

maptip(layer, feature, [evaluate=true])

[] indique des éléments optionnels

Arguments

  • layer - La couche (ou son ID ou son nom)

  • feature - L’entité qui doit être évaluée.

  • evaluate - Si l’expression doit être évaluée. Si elle est fausse, l’expression sera renvoyée sous forme de chaîne de caractères littérale uniquement (qui pourrait éventuellement être évaluée ultérieurement à l’aide de la fonction “eval_template”).

Exemples

  • maptip('streets', get_feature_by_id('streets', 1)) → Le maptip de l’élément avec l’ID 1 sur la couche “streets”.

  • maptip('a_layer_id', $currentfeature, 'False') → Le maptip de l’entité donnée n’a pas été évalué.

12.2.22.10. num_selected

Renvoie le nombre d’entités sélectionnées d’une couche donnée. Par défaut la fonction agit sur la couche sur laquelle l’expression est évaluée.

Syntaxe

num_selected([layer=current layer])

[] indique des éléments optionnels

Arguments

  • layer - La couche (ou son id ou nom) sur laquelle la sélection sera vérifiée.

Exemples

  • num_selected() → Le nombre d’entités sélectionnées sur la couche actuelle.

  • num_selected('rues') → Le nombre d’entités sélectionnées sur la couche des rues

12.2.22.11. represent_value

Retourne la valeur de représentation configurée pour une valeur de champ. Cela dépend du type de widget configuré. Souvent, cela est utile pour les widgets de type « Carte des valeurs ».

Syntaxe

represent_value(value, fieldName)

Arguments

  • value - La valeur qui doit être résolue. Très probablement un champ.

  • fieldName - Le nom du champ pour lequel la configuration du widget doit être chargée. (Facultatif)

Exemples

  • represent_value("field_with_value_map") → Description de la valeur

  • represent_value('static value', 'field_name') → Description de la valeur statique

Plus de détails : Types de widgets

12.2.22.12. sqlite_fetch_and_increment

Gérer les valeurs auto-incrémentées dans les bases de données sqlite.

Les valeurs par défaut de SQlite ne peuvent être appliquées qu’à l’insertion et ne peuvent pas être prélevées.

Il est donc impossible d’acquérir une clé primaire incrémentée via AUTO_INCREMENT avant de créer la ligne dans la base de données. Sidenote : avec postgres, cela fonctionne via l’option évaluer les valeurs par défaut.

Lors de l’ajout de nouvelles entités avec les relations, il est vraiment agréable de pouvoir déjà ajouter des enfants pour un parent, alors que le formulaire des parents est encore ouvert et donc l’entité parent non engagée.

Pour contourner cette limitation, cette fonction peut être utilisée pour gérer les valeurs des séquences dans une table séparé sur des formats basés sur sqlite comme gpkg.

La table de séquence sera filtrée pour un identifiant de séquence (filter_attribute et filter_value) et la valeur actuelle du champ id_field sera incrémentée de 1 et la valeur incrémentée sera retournée.

Si des colonnes supplémentaires nécessitent de spécifier des valeurs, la carte default_values peut être utilisée à cet effet.

Note

Cette fonction modifie la table sqlite cible. Elle est destinée à être utilisée avec des configurations de valeurs par défaut pour les attributs.

Lorsque le paramètre de la base de données est une couche et que la couche est en mode transaction, la valeur ne sera récupérée qu’une seule fois pendant la durée de vie d’une transaction et sera mise en cache et incrémentée. Il est donc dangereux de travailler sur la même base de données à partir de plusieurs processus en parallèle.

Syntaxe

sqlite_fetch_and_increment(database, table, id_field, filter_attribute, filter_value, [default_values])

[] indique des éléments optionnels

Arguments

  • database - Chemin vers le fichier sqlite ou la couche geopackage

  • table - Nom de la table qui gère les séquences

  • id_field - Nom du champ qui contient la valeur actuelle

  • filter_attribute - Nommez le champ qui contient un identifiant unique pour cette séquence. Doit avoir un index UNIQUE.

  • filter_value - Nom de la séquence à utiliser.

  • default_values - Table de correspondance avec les valeurs par défaut pour des colonnes supplémentaires dans la table. Les valeurs doivent être encadrées par des apostrophes. Les fonctions sont permises.

Exemples

  • sqlite_fetch_and_increment(@layer, 'sequence_table', 'last_unique_id', 'sequence_id', 'global', map('last_change', 'date(''now'')', 'user', '''' || @user_account_name || '''')) → 0

  • sqlite_fetch_and_increment(layer_property(@layer, 'path'), 'sequence_table', 'last_unique_id', 'sequence_id', 'global', map('last_change', 'date(''now'')', 'user', '''' || @user_account_name || '''')) → 0

Plus de détails : Onglet sources de données, Créer des relations un à plusieurs ou plusieurs à plusieurs

12.2.22.13. uuid

Generates a Universally Unique Identifier (UUID) for each row using the Qt QUuid::createUuid method.

Syntaxe

uuid([format=”WithBraces”])

[] indique des éléments optionnels

Arguments

  • format - The format, as the UUID will be formatted. “WithBraces”, “WithoutBraces” or “Id128”.

Exemples

  • uuid() → “{0bd2f60f-f157-4a6d-96af-d4ba4cb366a1}”

  • uuid('WithoutBraces') → “0bd2f60f-f157-4a6d-96af-d4ba4cb366a1”

  • uuid('Id128') → “0bd2f60ff1574a6d96afd4ba4cb366a1”

12.2.23. Relations

Ce groupe contient la liste des relations disponibles dans le projet en cours, avec leur description. Il fournit un accès rapide à l’ID de relation pour rédiger une expression (avec par exemple, la fonction relation_aggregate) ou de personnaliser un formulaire.

12.2.24. Fonctions de Chaîne

Ce groupe contient des fonctions qui opèrent sur des chaînes (par ex. qui remplace, convertit en majuscule).

12.2.24.1. ascii

Renvoie le code ASCII du premier caractère d’une chaîne.

Syntaxe

ascii(string)

Arguments

  • string - la chaîne de caractères à convertir en code ASCII

Exemples

  • ascii('Q') → 81

12.2.24.2. char

Renvoie le caractère associé à un code Unicode.

Syntaxe

char(code)

Arguments

  • code - un code Unicode

Exemples

  • char(81) → “Q”

12.2.24.3. concat

Concatène plusieurs chaînes de caractères en une seule. Les valeurs NULL sont converties en chaînes vides. Les autres valeurs (comme les nombres) sont converties en chaînes de caractères.

Syntaxe

concat(string1, string2, …)

Arguments

  • string - une chaîne de caractères

Exemples

  • concat('pyj', 'ama') → “pyjama”

  • concat('a','b','c','d','e') → “abcde”

  • concat('Anno ', 1984) → “Anno 1984”

  • concat('The Wall', NULL) → “The Wall”

Au sujet de l’agrégation de champs

Vous pouvez aussi concaténer des chaînes ou des valeurs de champ à l’aide des opérateurs || ou +, avec certaines caractéristiques spéciales:

  • L’opérateur + correspond également à une fonction d’addition, donc si vous avez un opérande de type numérique (champ ou valeur numérique), cela peut être sujet à erreur et vous feriez mieux d’utiliser les autres

    'My feature id is: ' + "gid" => triggers an error as gid returns an integer
    
  • Lorsque l’un des arguments est une valeur NULL, || ou + renverra une valeur NULL. Pour retourner les autres arguments malgré la valeur NULL, vous pouvez utiliser la fonction concat:

    'My feature id is: ' + NULL ==> NULL
    'My feature id is: ' || NULL => NULL
    concat('My feature id is: ', NULL) => 'My feature id is: '
    

Voir aussi : ||, +

12.2.24.4. format

Formate une chaîne de caractères en utilisant les arguments fournis.

Syntaxe

format(string, arg1, arg2, …)

Arguments

  • string - A string with placeholders %1, %2, etc., for the arguments. Placeholders can be repeated. The lowest numbered placeholder is replaced by arg1, the next by arg2, etc.

  • arg - tout type. Tout nombre d’arguments.

Exemples

  • format('Ceci %1 un %2','est', 'test') → “Ceci est un test”

  • format('This is %2','a bit unexpected but 2 is lowest number in string','normal') → “This is a bit unexpected but 2 is lowest number in string”

12.2.24.5. format_date

Formate une date ou une chaîne de caractères selon un format personnalisé. Utilise le formatage des dates/temps de Qt. Voir QDateTime::toString.

Syntaxe

format_date(datetime, format, [language])

[] indique des éléments optionnels

Arguments

  • datetime - valeur de date, d’heure ou de date-heure

  • format - Modèle utilisé pour mettre en forme la chaîne.

    Expression

    Sortie

    d

    le numéro du jour sans zéro en préfixe (1 à 31)

    dd

    le numéro du jour avec zéro en préfixe (01 à 31)

    ddd

    le nom abrégé du jour selon la langue (i.e. “Lun” à “Dim”)

    dddd

    le nom complet du jour selon la langue (i.e. “Lundi” à “Dimanche”)

    M

    le numéro du mois sans zéro en préfixe (1 à 12)

    MM

    le numéro du mois avec zéro en préfixe (01 à 12)

    MMM

    le nom abrégé du mois selon la langue (i.e. “Jan” à “Déc”)

    MMMM

    le nom complet du mois selon la langue (i.e. “Janvier” à “Décembre”)

    yy

    l’année en nombre à deux chiffres (00 à 99)

    yyyy

    l’année en nombre à quatre chiffres

    Ces expressions peuvent être utilisée pour la partie horaire de la chaîne mise en forme :

    Expression

    Sortie

    h

    l’heure sans zéro en préfixe (0 à 23 ou 1 à 12 si affichage AM/PM)

    hh

    l’heure avec zéro en préfixe (00 à 23 ou 01 à 12 si affichage AM/PM)

    H

    l’heure sans zéro en préfixe (0 à 23, même si affichage AM/PM)

    HH

    l’heure avec zéro en préfixe (00 à 23, même si affichage AM/PM)

    m

    les minutes sans zéro en préfixe (0 à 59)

    mm

    les minutes avec zéro en préfixe (00 à 59)

    s

    les secondes sans zéro en préfixe (0 à 59)

    ss

    les secondes avec zéro en préfixe (00 à 59)

    z

    les millisecondes sans zéros en préfixe (0 à 999)

    zzz

    les millisecondes avec zéros en préfixe (000 à 999)

    AP or A

    Interprète comme un horaire AM/PM. AP correspondra à la fois à “AM” et “PM”.

    ap or a

    Interprète comme un horaire AM/PM. ap correspondra à la fois à “am” et “pm”.

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to format the date into a custom string. By default the current QGIS user locale is used.

Exemples

  • format_date('2012-05-15','dd.MM.yyyy') → “15.05.2012”

  • format_date('2012-05-15','d MMMM yyyy','fr') → “15 mai 2012”

  • format_date('2012-05-15','dddd') → “Tuesday”, if the current locale is an English variant

  • format_date('2012-05-15 13:54:20','dd.MM.yy') → “15.05.12”

  • format_date('13:54:20','hh:mm AP') → “01:54 PM”

12.2.24.6. format_number

Returns a number formatted with the locale separator for thousands. By default the current QGIS user locale is used. Also truncates the decimal places to the number of supplied places.

Syntaxe

format_number(number, [places=0], [language])

[] indique des éléments optionnels

Arguments

  • number - nombre à formater

  • places - entier représentant le nombre de décimales auquel arrondir.

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to format the number into a string. By default the current QGIS user locale is used.

Exemples

  • format_number(10000000.332,2) → “10,000,000.33” if e.g. the current locale is an English variant

  • format_number(10000000.332,2,'fr') → “10 000 000,33”

12.2.24.7. left

Renvoie un extrait de chaîne de caractères contenant les n caractères les plus à gauche de la chaîne initiale.

Syntaxe

left(string, length)

Arguments

  • string - une chaîne de caractères

  • length - entier. Le nombre de caractères depuis la gauche de la chaîne à renvoyer.

Exemples

  • left('Salut tout le monde',5) → “Salut”

12.2.24.8. length

Renvoie le nombre de caractères d’une chaîne de caractères ou la longueur d’une géométrie de polylignes.

Variante chaîne de caractères

Renvoie le nombre de caractères de la chaîne de caractères.

Syntaxe

length(string)

Arguments

  • string - chaîne de caractères dont il faut calculer la longueur

Exemples

  • length('salut') → 5

Variante géométrique

Calcule la longueur d’une géométrie linéaire. Les calculs sont toujours planimétriques dans le Système de Coordonnées de Référence (SCR) de la géométrie et les unités de la longueur correspondent aux unités du SCR. Cette fonction est différente des calculs effectués par la fonction $length qui réalise des calculs ellipsoïdaux en se basant sur les paramètres d’ellipsoïde du projet et des unités de distance.

Syntaxe

length(geometry)

Arguments

  • geometry - un objet géométrique linéaire

Exemples

  • length(geom_from_wkt('LINESTRING(0 0, 4 0)')) → 4.0

12.2.24.9. lower

Convertit une chaîne de caractères en caractères minuscules.

Syntaxe

lower(string)

Arguments

  • string - la chaîne de caractères à convertir en minuscules

Exemples

  • lower('SALUT tout le monde') → “salut tout le monde”

12.2.24.10. lpad

Renvoie une chaîne de caractères complétée à sa gauche avec un caractère de remplissage jusqu’à la largeur spécifiée. Si la largeur spécifiée est inférieure à la longueur de la chaîne de caractère, la chaîne de caractères est tronquée.

Syntaxe

lpad(string, width, fill)

Arguments

  • string - chaîne de caractères à remplir

  • width - longueur de la nouvelle chaîne de caractères

  • fill - caractère de remplissage

Exemples

  • lpad('Salut', 10, 'x') → “xxxxxSalut”

  • lpad('Hello', 3, 'x') → “Hel”

12.2.24.11. regexp_match

Renvoie la première occurrence correspondant à une expression régulière dans une chaîne de caractères, ou 0 si la sous-chaîne n’a pas été trouvée.

Syntaxe

regexp_match(input_string, regex)

Arguments

  • input_string - la chaîne à tester selon l’expression régulière

  • regex - L’expression régulière de test. Les caractères antislash doivent être échappés deux fois (ex: « \\s » correspond à un caractère d’espace, « \\b » à une fin de mot…).

Exemples

  • regexp_match('QGIS DECHIRE','\\sDECHIRE') → 5

  • regexp_match('Budač','udač\\b') → 2

12.2.24.12. regexp_replace

Renvoie une chaîne de caractères en utilisant une expression régulière de substitution.

Syntaxe

regexp_replace(input_string, regex, replacement)

Arguments

  • input_string - la chaîne de caractères à remplacer en cas de correspondance

  • regex - L’expression régulière de remplacement. Les caractères antislash doivent être échappés deux fois (ex: « \\s » correspond à un caractère d’espace).

  • replacement - La chaîne de caractères utilisée en remplacement de chaque occurrence renvoyée en correspondance de l’expression régulière donnée. Les groupes capturés peuvent être insérés comme chaîne de remplacement en utilisant \\1, \\2, etc.

Exemples

  • regexp_replace('QGIS SERAIT GENIAL','\\sSERAIT\\s',' EST ') → “QGIS EST GENIAL”

  • regexp_replace('ABC123','\\d+','') → “ABC”

  • regexp_replace('mon nom est John','(.*) est (.*)','\\2 est \\1') → “John est mon nom”

12.2.24.13. regexp_substr

Renvoie la portion d’une chaîne de caractères qui correspond à une expression régulière fournie.

Syntaxe

regexp_substr(input_string, regex)

Arguments

  • input_string - la chaîne où trouver la correspondance

  • regex - L’expression régulière à comparer. Les caractères antislash doivent être échappés deux fois (ex: « \\s » correspond à un caractère d’espace).

Exemples

  • regexp_substr('abc123','(\\d+)') → “123”

12.2.24.14. replace

Renvoie une chaîne de caractères où la chaîne, la liste ou la table de correspondance fournie a été utilisée pour remplacer des caractères.

Variante chaîne & liste

Renvoie une chaîne de caractères où la chaîne ou la liste fournie a été utilisée pour remplacer des caractères ou une liste de caractères.

Syntaxe

replace(string, before, after)

Arguments

  • string - la chaîne en entrée

  • before - la chaîne de caractères ou la liste de caractères à remplacer

  • after - la chaîne de caractères ou la liste de caractères à utiliser en remplacement

Exemples

  • replace('QGIS SERAIT GENIAL','SERAIT','EST') → “QGIS EST GENIAL”

  • replace('QGIS ABC',array('A','B','C'),array('X','Y','Z')) → “QGIS XYZ”

  • replace('QGIS',array('Q','S'),'') → “GI”

Variante table de correspondance

Returns a string with the supplied map keys replaced by paired values. Longer map keys are evaluated first.

Syntaxe

replace(string, map)

Arguments

  • string - la chaîne en entrée

  • map - la table de correspondance contenant les clés et valeurs

Exemples

  • replace('APPLI SERAIT GENIAL',map('APP','QGIS','SERAIT','EST')) → “QGIS EST GENIAL”

  • replace('forty two',map('for','4','two','2','forty two','42')) → “42”

12.2.24.16. rpad

Renvoie une chaîne de caractères complétée à sa droite avec un caractère de remplissage jusqu’à la largeur spécifiée. Si la largeur spécifiée est inférieure à la longueur de la chaîne de caractère, la chaîne de caractères est tronquée.

Syntaxe

rpad(string, width, fill)

Arguments

  • string - chaîne de caractères à remplir

  • width - longueur de la nouvelle chaîne de caractères

  • fill - caractère de remplissage

Exemples

  • rpad('Salut', 10, 'x') → “Salutxxxxx”

  • rpad('Hello', 3, 'x') → “Hel”

12.2.24.17. strpos

Renvoie la position de la première occurrence d’une sous-chaîne dans une chaîne de caractères ou 0 si la sous-chaîne est introuvable.

Syntaxe

strpos(haystack, needle)

Arguments

  • haystack - la chaîne dans laquelle effectuer la recherche

  • needle - la chaîne de caractères recherchée

Exemples

  • strpos('SALUT TOUT LE MONDE','MONDE') → 15

  • strpos('SALUT TOUT LE MONDE','AU REVOIR') → 0

12.2.24.18. substr

Renvoie une partie de chaîne de caractères.

Syntaxe

substr(string, start, [length])

[] indique des éléments optionnels

Arguments

  • string - la chaîne complète en entrée

  • start - entier représentant la position de départ à partir de laquelle procéder à l’extraction en commençant par 1 ; si la valeur de départ est négative, la chaîne de caractères renvoyée débutera à la fin de la chaîne moins la valeur de départ

  • length - entier représentant la longueur de la chaîne à extraire ; si la longueur est négative, la chaîne renvoyée omettra le nombre de caractères correspondant à cette longueur à partir de la fin de la chaîne

Exemples

  • substr('SALUT TOUT LE MONDE',3,5) → “LUT T”

  • substr('HELLO WORLD',6) → “ WORLD”

  • substr('HELLO WORLD',-5) → “WORLD”

  • substr('HELLO',3,-1) → “LL”

  • substr('HELLO WORLD',-5,2) → “WO”

  • substr('HELLO WORLD',-5,-1) → “WORL”

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

Syntaxe

title(string)

Arguments

  • string - la chaîne à convertir en casse titre

Exemples

  • title('salut tout le MOnde') → “Salut Tout Le Monde”

12.2.24.20. to_string

Convertit un nombre en chaîne de caractères.

Syntaxe

to_string(number)

Arguments

  • number - Valeur entière ou réelle. Le nombre à convertir en chaîne de caractères.

Exemples

  • to_string(123) → “123”

12.2.24.21. trim

Supprime tous les caractères d’espace (espaces, tabulations, etc.) situés au début ou à la fin d’une chaîne de caractères.

Syntaxe

trim(string)

Arguments

  • string - la chaîne de caractères à nettoyer

Exemples

  • trim('   Salut tout le monde    ') → “salut tout le monde”

12.2.24.22. upper

Convertit une chaîne de caractères en caractères majuscules.

Syntaxe

upper(string)

Arguments

  • string - la chaîne de caractères à convertir en majuscules

Exemples

  • upper('salut tout le MOnde') → “SALUT TOUT LE MONDE”

12.2.24.23. wordwrap

Renvoie une chaîne de caractères découpée par des retours à la ligne, selon un nombre minimum ou maximum de caractères.

Syntaxe

wordwrap(string, wrap_length, [delimiter_string])

[] indique des éléments optionnels

Arguments

  • string - la chaîne à découper

  • wrap_length - un entier. Si wrap_length est positif, le nombre représente le nombre maximum idéal de caractères pour insérer un retour à la ligne ; si négatif, le nombre représente le nombre minimum de caractères pour insérer un retour à la ligne.

  • delimiter_string - Chaîne de caractères optionnelle de substitution pour générer un retour à la ligne.

Exemples

  • wordwrap('UNIVERSITE DE QGIS',13) → “UNIVERSITE DE<br>QGIS”

  • wordwrap('UNIVERSITE DE QGIS',-3) → “UNIVERSITE<br>DE QGIS”

12.2.25. Expressions de l’utilisateur

Ce groupe contient les expressions enregistrées sous le nom de user expressions

12.2.26. Variables

Ce groupe contient des variables dynamiques liées à la demande, au fichier de projet et à d’autres paramètres. La disponibilité des variables dépend du contexte :

  • à partir de la boîte de dialogue expressionSelect Sélection les entités en utilisant une expression.

  • à partir de la boîte de dialogue calculateField Calculatrice de champs.

  • à partir de la boîte de dialogue des propriétés de la couche.

  • depuis la mise en page d’impression

Pour utiliser ces variables dans une expression, elles doivent être précédées du caractère @ (par exemple, @row_number).

Variable

Description

algorithm_id

L’identifiant unique d’un algorithme

animation_end_time

Fin de la plage temporelle globale de l’animation (en tant que valeur date-heure)

animation_interval

Durée de la plage temporelle globale de l’animation (en tant que valeur d’intervalle)

animation_start_time

Début de la plage temporelle globale de l’animation (en tant que valeur date-heure)

atlas_feature

L’entité actuelle de l’atlas (en tant que foncton d’objet)

atlas_featureid

Identification des entités de l’atlas actuel

atlas_featurenumber

Le numéro de l’entité actuelle de l’atlas dans la mise en page

atlas_filename

Le nom du fichier de l’atlas actuel

atlas_geometry

La géométrie des entités de l’atlas actuel

atlas_layerid

L’ID de la couche de couverture actuelle de l’atlas

atlas_layername

Le nom de la couche de couverture de l’atlas actuel

atlas_pagename

Le nom de la page actuelle de l’atlas

atlas_totalfeatures

Le nombre total d’entités dans l’atlas

canvas_cursor_point

La dernière position du curseur sur le canevas dans les coordonnées géographiques du projet

cluster_color

La couleur des symboles dans un groupe, ou NULL si les symboles ont des couleurs mélangées

cluster_size

Le nombre de symboles contenus dans un groupe

current_feature

L’entité en cours d’édition dans le formulaire ou la ligne de la table d’attribut

current_geometry

La géométrie de l’entité en cours d’édition dans le formulaire ou la ligne de la table

current_parent_feature

représente l’entité en cours d’édition dans le formulaire parent. Utilisable uniquement dans un contexte de formulaire intégré.

current_parent_geometry

représente la géométrie de l’élément en cours d’édition dans la forme parent. Utilisable uniquement dans un contexte de formulaire intégré.

form_mode

À quoi sert le formulaire, comme AddFeatureMode, SingleEditMode, MultiEditMode, SearchMode, AggregateSearchMode ou IdentifyMode sous forme de chaîne.

frame_duration

Durée temporelle de chaque image d’animation (en tant que valeur d’intervalle)

frame_number

Numéro de l’image actuelle pendant la lecture de l’animation

frame_rate

Nombre d’images par seconde pendant la lecture de l’animation

fullextent_maxx

Valeur x maximale de l’étendue complète du canevas (y compris toutes les couches)

fullextent_maxy

Valeur y maximale de l’étendue complète du canevas (y compris toutes les couches)

fullextent_minx

Valeur x minimale de l’étendue complète du canevas (y compris toutes les couches)

fullextent_miny

Valeur y minimale de l’étendue complète du canevas (y compris toutes les couches)

geometry_part_count

Le nombre de parties dans la géométrie de l’élément rendu

geometry_part_num

Le numéro de partie de la géométrie actuelle pour l’élément en cours de rendu

geometry_point_count

Le nombre de points dans la partie de la géométrie rendue

geometry_point_num

Le numéro du point courant dans la partie de la géométrie rendue

geometry_ring_num

Current geometry ring number for feature being rendered (for polygon features only). The exterior ring has a value of 0.

grid_axis

L’axe d’annotation de la grille actuelle (par exemple, « x » pour la longitude, « y » pour la latitude)

grid_number

La valeur actuelle de l’annotation de la grille

item_id

L’ID utilisateur de l’élément de mise en page (pas nécessairement unique)

item_uuid

L’identifiant unique de l’élément de mise en page

layer

La couche actuelle

layer_crs NEW in 3.18

The Coordinate Reference System Authority ID of the current layer

layer_id

L’ID de la couche actuelle

layer_ids

Les ID de toutes les couches cartographiques du projet actuel sous forme de liste

layer_name

Le nom de la couche actuelle

layers

Toutes les couches cartographiques du projet actuel sous forme de liste

layout_dpi

La résolution de composition (DPI)

layout_name

Le nom de la mise en page

layout_numpages

Le nombre de pages dans la mise en page

layout_page

Le numéro de page de l’élément en cours dans la mise en page

layout_pageheight

The active page height in the layout (in mm for standard paper sizes, or whatever unit was used for custom paper size)

layout_pageoffsets

Array of Y coordinate of the top of each page. Allows to dynamically position items on pages in a context where page sizes may change

layout_pagewidth

The active page width in the layout (in mm for standard paper sizes, or whatever unit was used for custom paper size)

legend_column_count

Le nombre de colonnes dans la légende

legend_filter_by_map

Indique si le contenu de la légende est filtré par la carte

legend_filter_out_atlas

Indique si l’atlas est filtré hors de la légende

legend_split_layers

Indique si les couches peuvent être divisées dans la légende

legend_title

Le titre de la légende

legend_wrap_string

Le(s) caractère(s) utilisé(s) pour envelopper le texte de la légende

map_crs

Le système de référence des coordonnées de la carte actuelle

map_crs_acronym

L’acronyme du système de référence des coordonnées de la carte actuelle

map_crs_definition

La définition complète du système de référence des coordonnées de la carte actuelle

map_crs_description

Le nom du système de référence des coordonnées de la carte actuelle

map_crs_ellipsoid

L’acronyme de l’ellipsoïde du système de référence des coordonnées de la carte actuelle

map_crs_proj4

La définition Proj4 du système de référence des coordonnées de la carte actuelle

map_crs_projection NEW in 3.20

The descriptive name of the projection method used by the Coordinate reference system of the map (e.g. “Albers Equal Area”)

map_crs_wkt

La définition WKT du système de référence des coordonnées de la carte actuelle

map_end_time

La fin de la plage temporelle de la carte (en tant que valeur date-heure)

map_extent

La géométrie représentant l’étendue actuelle de la carte

map_extent_center

L’élément ponctuel au centre de la carte

map_extent_height

La hauteur actuelle de la carte

map_extent_width

La largeur actuelle de la carte

map_id

L’ID de la destination actuelle sur la carte. Il s’agira de “canvas” pour les rendus de canevas, et de l’ID de l’élément pour les rendus de carte de mise en page

map_interval

La durée de la plage temporelle de la carte (en tant que valeur d’intervalle)

map_layer_ids

La liste des ID des couches de la carte visibles dans la carte

map_layers

La liste des couches cartographiques visibles dans la carte

map_rotation

La rotation actuelle de la carte

map_scale

L’échelle actuelle de la carte

map_start_time

Le début de la plage temporelle de la carte (en tant que valeur date-heure)

map_units

Les unités de mesure des cartes

model_path

Chemin complet (y compris le nom du fichier) du modèle actuel (ou chemin du projet si le modèle est intégré dans un projet).

model_folder

Dossier contenant le modèle actuel (ou le dossier du projet si le modèle est intégré dans un projet).

model_name

Nom du modèle courant

model_group

Groupe pour le modèle actuel

notification_message

Contenu du message de notification envoyé par le fournisseur (disponible uniquement pour les actions déclenchées par les notifications du fournisseur).

parent

Fait référence à l’entité actuelle dans la couche parent, donnant accès à ses attributs et à sa géométrie lors du filtrage d’une fonction d’agrégat

project_abstract

Le résumé du projet, tiré des métadonnées du projet

project_area_units

L’unité de surface pour le projet actuel, utilisée lors du calcul des surfaces des géométries

project_author

L’auteur du projet, tiré des métadonnées du projet

project_basename

Le nom de base du nom de fichier du projet actuel (sans chemin et extension)

project_creation_date

La date de création du projet, tirée des métadonnées du projet

project_crs

Le système de référence des coordonnées du projet

project_crs_arconym

L’acronyme du système de référence coordonnées du projet

project_crs_definition

La définition complète du système de référence des coordonnées du projet

project_crs_description

La description du système de référence des coordonnées du projet

project_crs_ellipsoid

L’ellipsoïde du système de référence des coordonnées du projet

project_crs_proj4

La représentation Proj4 du système de référence des coordonnées du projet

project_crs_wkt

La représentation WKT du système de référence des coordonnées du projet

project_distance_units

L’unité de distance du projet en cours, utilisée pour le calcul des longueurs des géométries et des distances

project_ellipsoid

Le nom de l’ellipsoïde du projet en cours, utilisé pour le calcul des surface géodésiques ou des longueurs de géométrie

project_filename

Le nom de fichier du projet actuel

project_folder

Le dossier du projet en cours

project_home

Le home path du projet actuel

project_identifier

L’identifiant du projet, tiré des métadonnées du projet

project_keywords

Les mots-clés du projet, tirés des métadonnées du projet

project_last_saved

Date/time à laquelle le projet a été enregistré pour la dernière fois.

project_path

Le chemin complet (y compris le nom du fichier) du projet en cours

project_title

Le titre du projet actuel

project_units

Les unités du CRS du projet

qgis_locale

La langue actuelle de QGIS

qgis_os_name

Le nom du système d’exploitation actuel, par exemple “windows”, “linux” ou “osx”.

qgis_platform

La plate-forme QGIS, par exemple “desktop” ou “server”.

qgis_release_name

Le nom de la version actuelle de QGIS

qgis_short_version

La chaîne courte de la version actuelle de QGIS

qgis_version

La chaîne de la version actuelle de QGIS

qgis_version_no

Le numéro de la version actuelle de QGIS

row_number

Enregistre le numéro de la ligne actuelle

snapping_results

Donne accès aux résultats de capture lors de la numérisation d’une entité (uniquement disponible dans la fonctionnalité d’ajout)

scale_value

La valeur actuelle de la distance entre les barres d’échelle

selected_file_path

Selected file path from file widget selector when uploading a file with an external storage system

symbol_angle

L’angle du symbole utilisé pour rendre l’élément (valable uniquement pour les symboles de marqueur)

symbol_color

La couleur du symbole utilisé pour rendre l’entité

symbol_count

Le nombre d’entités représentés par le symbole (dans la légende de la mise en page)

symbol_id

L’identification interne du symbole (dans la légende de la mise en page)

symbol_label

L’étiquette du symbole (soit une étiquette définie par l’utilisateur, soit l’étiquette autogénérée par défaut - dans la légende de la mise en page)

symbol_layer_count

Nombre total de couches de symboles dans le symbole

symbol_layer_index

Index de la couche de symboles actuelle

symbol_marker_column

Numéro de colonne pour le marqueur (valable uniquement pour les remplissages par points).

symbol_marker_row

Numéro de rang pour le marqueur (valable uniquement pour les remplissages par points).

user_account_name

Le nom utilisateur de compte du système d’exploitation actuel

user_full_name

Le nom d’utilisateur du système d’exploitation actuel

value

La valeur actuelle

vector_tile_zoom

Exact vector tile zoom level of the map that is being rendered (derived from the current map scale). Normally in interval [0, 20]. Unlike @zoom_level, this variable is a floating point value which can be used to interpolate values between two integer zoom levels.

with_variable

Permet de définir une variable à utiliser dans une expression et d’éviter de recalculer la même valeur à plusieurs reprises

zoom_level

Vector tile zoom level of the map that is being rendered (derived from the current map scale). Normally in interval [0, 20].

Quelques exemples :

  • Renvoyer la coordonnée X du centre d’un élément carte de la mise en page

    x( map_get( item_variables( 'map1'), 'map_extent_center' ) )
    
  • Renvoie, pour chaque entité de la couche actuelle, le nombre d’entités dans la couche “airports” qui lui sont superposés

    aggregate( layer:='airport', aggregate:='count', expression:="code",
                   filter:=intersects( $geometry, geometry( @parent ) ) )
    
  • Récupère l’object_id du premier point accroché d’une ligne

    with_variable(
      'first_snapped_point',
      array_first( @snapping_results ),
      attribute(
        get_feature_by_id(
          map_get( @first_snapped_point, 'layer' ),
          map_get( @first_snapped_point, 'feature_id' )
        ),
        'object_id'
      )
    )
    

12.2.27. Fonctions récentes

Ce groupe contient des fonctions récemment utilisées. Selon le contexte de son utilisation (sélection entités, calculateur de champs, générique), les expressions récemment appliquées sont ajoutées à la liste correspondante (jusqu’à dix expressions), triées de plus récentes à moins récentes. Il est ainsi facile de récupérer et de réappliquer rapidement les expressions précédemment utilisées.