Important

La traduction est le fruit d’un effort communautaire auquel vous pouvez vous joindre. Cette page est actuellement traduite à 94.50%.

13.2. Liste des fonctions

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

13.2.1. Fonctions d’agrégats

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

13.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 les agrégats “concatenate” et “concatenate_unique”

  • 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:="nom", concatenator:=',') → liste séparée par des virgules des noms de 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

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

13.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”

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

13.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 les agrégats “concatenate” et “concatenate_unique”

  • 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 : Définir des relations entre plusieurs couches

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

13.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”

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

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

13.2.2.2. array_all

Renvoie TRUE (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)) → TRUE

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

13.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 ]

13.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 ]

13.2.2.5. array_contains

Renvoie TRUE (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) → TRUE

13.2.2.6. array_count

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

Syntaxe

array_count(array, value)

Arguments

  • array - une liste

  • value - la valeur à compter

Exemples

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

13.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 ]

13.2.2.8. array_filter

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

Syntaxe

array_filter(array, expression, [limit=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(array(1,2,3),@element < 3, 1) → [ 1 ]

13.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(array('a', 'b', 'c'), 'b') → 1

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

13.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”

13.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 ]

13.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(array('a','b','c'),-1) → “c”

Indication

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

13.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 ]

13.2.2.14. array_intersect

Renvoie TRUE (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)) → TRUE

13.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”

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

13.2.2.17. array_majority

Renvoie les valeurs les plus courantes d’un tableau.

Syntaxe

array_majority(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: 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

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

13.2.2.19. array_mean

Renvoie la moyenne des valeurs arithmétiques d’une liste. Les valeurs non numériques de la liste sont ignorées.

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

13.2.2.20. array_median

Renvoie la médiane des valeurs arithmétiques d’une liste. Les valeurs non numériques de la liste sont ignorées.

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

13.2.2.21. array_min

Renvoie la valeur minimale d’une liste.

Syntaxe

array_min(array)

Arguments

  • array - une liste

Exemples

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

13.2.2.22. array_minority

Renvoie les valeurs les moins courantes d’un tableau.

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: par défaut, toutes les valeurs les moins courantes sont renvoyées dans un tableau.

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

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

    • real_majority: renvoie les valeurs qui apparaissent moins de fois que la moitié de la taille du tableau.

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 ]

13.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 ]

13.2.2.24. array_prioritize

Renvoie une liste triée selon un ordre spécifié dans une autre liste. Les valeurs présentes dans la première liste mais pas dans la seconde sont ajoutées à la fin du résultat.

Syntaxe

array_prioritize(array, array_prioritize)

Arguments

  • array - une liste

  • array_prioritize - une liste avec les valeurs classées par ordre de priorité

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 ]

13.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” ]

13.2.2.26. array_remove_at

Returns an array with the item at the given index removed. Supports positive (0 for the first element) and negative (the last -Nth value, -1 for the last element) index.

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 ]

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

13.2.2.27. array_replace

Renvoie une liste en en ayant modifié la valeur, la liste de valeurs ou le tableau de valeurs indiqué.

Variante valeur & liste

Renvoie une liste dont une valeur ou liste de valeurs a été remplacée par une autre valeur ou liste de valeurs.

Syntaxe

array_replace(array, before, after)

Arguments

  • array - la liste en entrée

  • before - la valeur ou liste de valeurs à remplacer

  • after - la valeur ou liste de valeurs à utiliser en remplacement

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” ]

13.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 ]

13.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” ]

13.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 ]

13.2.2.31. array_sum

Renvoie la somme des valeurs arithmétiques d’une liste. Les valeurs non numériques de la liste sont ignorées.

Syntaxe

array_sum(array)

Arguments

  • array - une liste

Exemples

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

13.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”

13.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 ]

13.2.2.34. geometries_to_array

Explose une géométrie en une liste de géométries plus simples.

Syntaxe

geometries_to_array(geometry)

Arguments

  • geometry - géométrie en entrée

Exemples

  • geometries_to_array(geom_from_wkt('GeometryCollection (Polygon ((5 8, 4 1, 3 2, 5 8)),LineString (3 2, 4 2))')) → une liste composée de la géométrie d’un polygone et celle d’une ligne

  • geom_to_wkt(geometries_to_array(geom_from_wkt('GeometryCollection (Polygon ((5 8, 4 1, 3 2, 5 8)),LineString (3 2, 4 2))'))[0]) → “Polygon ((5 8, 4 1, 3 2, 5 8))”

  • geometries_to_array(geom_from_wkt('MULTIPOLYGON(((5 5,0 0,0 10,5 5)),((5 5,10 10,10 0,5 5))')) → une liste composée de deux géométries polygonales

13.2.2.35. 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” ]

13.2.2.36. 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” ]

13.2.3. Fonctions de Couleur

Ce groupe contient des fonctions pour manipuler les couleurs.

13.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”

13.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”

13.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”

13.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”

13.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”

13.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”

13.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”

13.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”

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

13.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”

13.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”

13.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”

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

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

13.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 : paramétrer des couleurs de projet

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

13.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”

13.2.4. Fonctions conditionnelles

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

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

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

13.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”

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

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

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

13.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…).

13.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”

13.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”

13.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”

13.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”

13.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==”

13.2.5.6. to_date

Convertit une chaîne de caractères en objet date. Une chaîne de format optionnelle peut être fournie pour analyser la chaîne ; voir QDate::fromString ou la fonction ref:format_date <expression_function_Date_and_Time_format_date> pour des informations additionnelles sur le format. Par défaut, QGIS utilise les paramètres de langue définis par l’utilisateur.

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 - langue (minuscule, deux ou trois lettres, code de langue ISO 639) utilisée pour convertir la chaîne de caractères en date. Par défaut, QGIS utilise les paramètres de langue définis par l’utilisateur.

Exemples

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

  • to_date('Juin 29, 2019','MMMM d, yyyy') → 2019-06-29, si “Juin” est le terme utilisé pour définir le sixième mois dans la langue paramétrée dans QGIS. Sinon, une erreur se produit.

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

13.2.5.7. to_datetime

Convertit une chaîne de caractères en objet datetime. Une chaîne de format optionnelle peut être fournie pour analyser la chaîne ; voir QDate::fromString, QTime::fromString ou la fonction ref:format_date <expression_function_Date_and_Time_format_date> pour des informations additionnelles sur le format. Par défaut, QGIS utilise les paramètres de langue définis par l’utilisateur.

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 - langue (minuscule, deux ou trois lettres, code de langue ISO 639) utilisée pour convertir la chaîne de caractères en datetime. Par défaut, QGIS utilise les paramètres de langue définis par l’utilisateur.

Exemples

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

  • to_datetime('Juin 29, 2019 @ 12:34','MMMM d, yyyy @ HH:mm') → 2019-06-29T12:34, si “Juin” est le terme utilisé pour définir le sixième mois dans la langue paramétrée dans QGIS. Sinon, une erreur se produit.

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

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

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

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

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

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

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

13.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”

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

13.2.6. Fonctions personnalisées

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

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

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

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

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

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

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

13.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 ou A

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

    ap ou a

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

  • language - langue (minuscule, deux ou trois lettres, code de langue ISO 639) utilisée pour convertir la date en chaîne de caractères. Par défaut, QGIS utilise les paramètres de langue définis par l’utilisateur.

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') → “Mardi”, si la langue paramétrée est dérivée du Français

  • 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”

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

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

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

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

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

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

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

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

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

13.2.7.16. to_date

Convertit une chaîne de caractères en objet date. Une chaîne de format optionnelle peut être fournie pour analyser la chaîne ; voir QDate::fromString ou la fonction ref:format_date <expression_function_Date_and_Time_format_date> pour des informations additionnelles sur le format. Par défaut, QGIS utilise les paramètres de langue définis par l’utilisateur.

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 - langue (minuscule, deux ou trois lettres, code de langue ISO 639) utilisée pour convertir la chaîne de caractères en date. Par défaut, QGIS utilise les paramètres de langue définis par l’utilisateur.

Exemples

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

  • to_date('Juin 29, 2019','MMMM d, yyyy') → 2019-06-29, si “Juin” est le terme utilisé pour définir le sixième mois dans la langue paramétrée dans QGIS. Sinon, une erreur se produit.

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

13.2.7.17. to_datetime

Convertit une chaîne de caractères en objet datetime. Une chaîne de format optionnelle peut être fournie pour analyser la chaîne ; voir QDate::fromString, QTime::fromString ou la fonction ref:format_date <expression_function_Date_and_Time_format_date> pour des informations additionnelles sur le format. Par défaut, QGIS utilise les paramètres de langue définis par l’utilisateur.

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 - langue (minuscule, deux ou trois lettres, code de langue ISO 639) utilisée pour convertir la chaîne de caractères en datetime. Par défaut, QGIS utilise les paramètres de langue définis par l’utilisateur.

Exemples

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

  • to_datetime('Juin 29, 2019 @ 12:34','MMMM d, yyyy @ HH:mm') → 2019-06-29T12:34, si “Juin” est le terme utilisé pour définir le sixième mois dans la langue paramétrée dans QGIS. Sinon, une erreur se produit.

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

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

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

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

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

13.2.8. Champs et Valeurs

Contains a list of fields from the active layer, and special values. Fields list includes the ones stored in the dataset, virtual and auxiliary ones as well as from joins.

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.

13.2.8.1. NULL

Équivaut à une valeur NULL.

Syntaxe

NULL

Exemples

  • NULL → une valeur NULL

Note

Pour tester les valeurs nulles, utilisez plutôt les expressions IS NULL ou IS NOT NULL.

13.2.9. Fonctions Fichiers et Chemins

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

13.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 - a file path or a map layer value. If a map layer value is specified then the file source of the layer will be used.

Exemples

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

13.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 or a map layer value. If a map layer value is specified then the file source of the layer will be used.

  • 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

13.2.9.3. file_exists

Renvoie TRUE (vrai) si un chemin de fichier existe.

Syntaxe

file_exists(path)

Arguments

  • path - a file path or a map layer value. If a map layer value is specified then the file source of the layer will be used.

Exemples

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

13.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 - a file path or a map layer value. If a map layer value is specified then the file source of the layer will be used.

Exemples

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

13.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 - a file path or a map layer value. If a map layer value is specified then the file source of the layer will be used.

Exemples

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

13.2.9.6. file_size

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

Syntaxe

file_size(path)

Arguments

  • path - a file path or a map layer value. If a map layer value is specified then the file source of the layer will be used.

Exemples

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

13.2.9.7. file_suffix

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

Syntaxe

file_suffix(path)

Arguments

  • path - a file path or a map layer value. If a map layer value is specified then the file source of the layer will be used.

Exemples

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

13.2.9.8. is_directory

Renvoie TRUE (vrai) si un chemin correspond à un répertoire.

Syntaxe

is_directory(path)

Arguments

  • path - a file path or a map layer value. If a map layer value is specified then the file source of the layer will be used.

Exemples

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

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

13.2.9.9. is_file

Renvoie TRUE (vrai) si un chemin correspond à un fichier.

Syntaxe

is_file(path)

Arguments

  • path - a file path or a map layer value. If a map layer value is specified then the file source of the layer will be used.

Exemples

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

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

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

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

13.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”.

13.2.11. Fonctions de correspondance floue

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

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

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

13.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”

13.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”

13.2.12. Fonctions Générales

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

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

13.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…]

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

13.2.12.4. is_layer_visible

Renvoie TRUE (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('baseraster') → TRUE

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

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

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

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

13.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 géométrie

  • 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)”

../../../_images/affinetransform.png

Fig. 13.4 Vector point layer (green dots) before (left), and after (right) an affine transformation (translation).

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

13.2.13.3. apply_dash_pattern

Applies a dash pattern to a geometry, returning a MultiLineString geometry which is the input geometry stroked along each line/ring with the specified pattern.

Syntaxe

apply_dash_pattern(geometry, pattern, [start_rule=no_rule], [end_rule=no_rule], [adjustment=both], [pattern_offset=0])

[] indique des éléments optionnels

Arguments

  • geometry - une géometrie (accepte aussi bien les (multi)lignes que les (multi)polygones).

  • pattern - dash pattern, as an array of numbers representing dash and gap lengths. Must contain an even number of elements.

  • start_rule - optional rule for constraining the start of the pattern. Valid values are “no_rule”, “full_dash”, “half_dash”, “full_gap”, “half_gap”.

  • end_rule - optional rule for constraining the end of the pattern. Valid values are “no_rule”, “full_dash”, “half_dash”, “full_gap”, “half_gap”.

  • adjustment - optional rule for specifying which part of patterns are adjusted to fit the desired pattern rules. Valid values are “both”, “dash”, “gap”.

  • pattern_offset - Optional distance specifying a specific distance along the pattern to commence at.

Exemples

  • geom_to_wkt(apply_dash_pattern(geom_from_wkt('LINESTRING(1 1, 10 1)'), array(3, 1))) → MultiLineString ((1 1, 4 1),(5 1, 8 1),(9 1, 10 1, 10 1))

  • geom_to_wkt(apply_dash_pattern(geom_from_wkt('LINESTRING(1 1, 10 1)'), array(3, 1), start_rule:='half_dash')) → MultiLineString ((1 1, 2.5 1),(3.5 1, 6.5 1),(7.5 1, 10 1, 10 1))

13.2.13.4. $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

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

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

13.2.13.7. bearing

Returns the north-based bearing as the angle in radians measured clockwise on the ellipsoid from the vertical on point_a to point_b.

Syntaxe

bearing(point_a, point_b, [source_crs], [ellipsoid])

[] indique des éléments optionnels

Arguments

  • point_a - géométrie ponctuelle

  • point_b - géométrie ponctuelle

  • source_crs - an optional string representing the source CRS of the points. By default the current layer’s CRS is used.

  • ellipsoid - an optional string representing the acronym or the authority:ID (eg “EPSG:7030”) of the ellipsoid on which the bearing should be measured. By default the current project’s ellipsoid setting is used.

Exemples

  • degrees( bearing( make_point(16198544, -4534850), make_point(18736872, -1877769), 'EPSG:3857', 'EPSG:7030') ) → 49.980071

  • degrees( bearing( make_point(18736872, -1877769), make_point(16198544, -4534850), 'EPSG:3857', 'WGS84') ) → 219.282386

13.2.13.8. 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 géométrie

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))”

../../../_images/boundary_polygon.png

Fig. 13.5 Boundary (black dashed line) of the source polygon layer

Plus de détails : l’algorithme Limite

13.2.13.9. 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 géométrie

Exemples

  • bounds(@geometry) → boîte englobante de la géométrie de l’entité 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. 13.6 Les lignes noires représentent les rectangles d’encombrement de chaque entité polygonale.

Plus de détails : l’algorithme Emprise

13.2.13.10. 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 géométrie

Exemples

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

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

13.2.13.11. 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 géométrie

Exemples

  • bounds_width(@geometry) → largeur de la boîte englobante de la géométrie de l’entité en cours

  • bounds_width(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))')) → 2

13.2.13.12. 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 géométrie

  • 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’entité actuelle, tamponné par 10,5 unités

../../../_images/buffer1.png

Fig. 13.7 Buffer (in yellow) of points, line, polygon with positive buffer, and polygon with negative buffer

Plus de détails : l’algorithme Tampon

13.2.13.13. 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. 13.8 Buffering line features using the m value on the vertices

Plus de détails : l’algorithme buffer à largeur variable (par valeur M)

13.2.13.14. centroid

Renvoie le centre géométrique d’une géométrie.

Syntaxe

centroid(geometry)

Arguments

  • geometry - une géométrie

Exemples

  • centroid(@geometry) → une géométrie de type point

../../../_images/centroids1.png

Fig. 13.9 Les étoiles rouges représentent les centroïdes des caractéristiques de la couche d’entrée.

Plus de détails : l’algorithme Centroïdes

13.2.13.15. 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)”

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

  • geometry1 - géométrie sur laquelle localiser le point le plus proche

  • geometry2 - géométrie vis-à-vis de laquelle il faut 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)”

13.2.13.17. collect_geometries

Rassemble un ensemble de géométries en un objet géométrique multipartie.

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 géométrie

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

13.2.13.18. combine

Retourne la combinaison de deux géométries.

Syntaxe

combine(geometry1, geometry2)

Arguments

  • geometry1 - 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)”

13.2.13.19. concave_hull

Renvoie un polygone concave qui contient tous les points de la géométrie

Syntaxe

concave_hull(geometry, target_percent, [allow_holes=False])

[] indique des éléments optionnels

Arguments

  • geometry - une géométrie

  • target_percent - the percentage of area of the convex hull the solution tries to approach. A target_percent of 1 gives the same result as the convex hull. A target_percent between 0 and 0.99 produces a result that should have a smaller area than the convex hull.

  • allow_holes - argument optionnel indiquant s’il faut permettre des trous à l’intérieur de la géométrie en sortie. La valeur par défaut est FALSE. Mettez-la à TRUE si vous ne souhaitez pas de trou dans la géométrie résultante.

Exemples

  • geom_to_wkt(concave_hull(geom_from_wkt('MULTILINESTRING((106 164,30 112,74 70,82 112,130 94,130 62,122 40,156 32,162 76,172 88),(132 178,134 148,128 136,96 128,132 108,150 130,170 142,174 110,156 96,158 90,158 88),(22 64,66 28,94 38,94 68,114 76,112 30,132 10,168 18,178 34,186 52,184 74,190 100,190 122,182 148,178 170,176 184,156 164,146 178,132 186,92 182,56 158,36 150,62 150,76 128,88 118))'), 0.99)) → “Polygon ((30 112, 36 150, 92 182, 132 186, 176 184, 190 122, 190 100, 186 52, 178 34, 168 18, 132 10, 112 30, 66 28, 22 64, 30 112))”

../../../_images/concave_hull_threshold.png

Concave hulls with increasing target_percent parameter

Plus de détails : convex_hull, l’algorithme Concave hull

13.2.13.20. contains

Tests whether a geometry contains another. Returns TRUE if and only if no points of geometry2 lie in the exterior of geometry1, and at least one point of the interior of geometry2 lies in the interior of geometry1.

Syntaxe

contains(geometry1, geometry2)

Arguments

  • geometry1 - 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

13.2.13.21. 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 géométrie

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))”

../../../_images/convex_hull.png

Black lines identify the convex hull for each feature

Plus de détails : concave_hull, l’algorithme Enveloppe convexe

13.2.13.22. crosses

Tests whether a geometry crosses another. Returns TRUE if the supplied geometries have some, but not all, interior points in common.

Syntaxe

crosses(geometry1, geometry2)

Arguments

  • geometry1 - 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

13.2.13.23. densify_by_count

Takes a polygon or line layer geometry and generates a new one in which the geometries have a larger number of vertices than the original one.

Syntaxe

densify_by_count(geometry, vertices)

Arguments

  • geometry - une géometrie (accepte aussi bien les (multi)lignes que les (multi)polygones).

  • vertices - number of vertices to add (per segment)

Exemples

  • geom_to_wkt(densify_by_count(geom_from_wkt('LINESTRING(1 1, 10 1)'), 3)) → LineString (1 1, 3.25 1, 5.5 1, 7.75 1, 10 1)

../../../_images/densify_geometry.png

Les points rouges montrent les sommets avant et après la densification

Plus de détails : l’algorithme Densifier en nombre

13.2.13.24. densify_by_distance

Takes a polygon or line layer geometry and generates a new one in which the geometries are densified by adding additional vertices on edges that have a maximum distance of the specified interval distance.

Syntaxe

densify_by_distance(geometry, distance)

Arguments

  • geometry - une géometrie (accepte aussi bien les (multi)lignes que les (multi)polygones).

  • distance - maximum interval distance between vertices in output geometry

Exemples

  • geom_to_wkt(densify_by_distance(geom_from_wkt('LINESTRING(1 1, 10 1)'), 4)) → LineString (1 1, 4 1, 7 1, 10 1)

../../../_images/densify_geometry_interval.png

Densifier la géométrie à un intervalle donné

Plus de détails : l’algorithme Densifier par intervalle

13.2.13.25. difference

Renvoie une géométrie qui représente la partie de la géométrie 1 qui ne recoupe pas la géométrie 2.

Syntaxe

difference(geometry1, geometry2)

Arguments

  • geometry1 - 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

13.2.13.26. disjoint

Teste si des géométries ne s’intersectent pas. Renvoie vrai (TRUE) si les géométries n’ont aucune surface en commun.

Syntaxe

disjoint(geometry1, geometry2)

Arguments

  • geometry1 - 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

13.2.13.27. distance

Returns the minimum distance (based on spatial reference) between two geometries in projected units.

Syntaxe

distance(geometry1, geometry2)

Arguments

  • geometry1 - une géométrie

  • geometry2 - une géométrie

Exemples

  • distance( geom_from_wkt( 'POINT(4 4)' ), geom_from_wkt( 'POINT(4 8)' ) ) → 4

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

13.2.13.29. 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)”

../../../_images/end_point.png

End point of a line feature

Plus de détails : start_point, l’algorithme Extraire des vertex spécifiques

13.2.13.30. exif_geotag

Creates a point geometry from the exif geotags of an image file.

Syntaxe

exif_geotag(path)

Arguments

  • path - An image file path or a map layer value. If a map layer value is specified then the file source of the layer will be used.

Exemples

  • geom_to_wkt(exif_geotag('/my/photo.jpg')) → “Point (2 4)”

13.2.13.31. 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))”

../../../_images/extend_lines.png

Les tirets rouges représentent l’extension initiale et finale de la couche d’origine

Plus de détails : l’algorithme Prolonger les lignes

13.2.13.32. 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)”

../../../_images/exterior_ring.png

The dashed line represents the exterior ring of the polygon

13.2.13.33. 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)))”

../../../_images/extrude.png

Generating a polygon by extruding a line with offset in x and y directions

13.2.13.34. 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 géométrie

Exemples

  • geom_to_wkt(flip_coordinates(make_point(1, 2))) → “Point (2 1)”

  • geom_to_wkt(flip_coordinates(geom_from_wkt('LineString(0 2, 1 0, 1 6)'))) → “LineString (2 0, 0 1, 6 1)”

Plus de détails : l’algorithme Permuter les coordonnées X et Y

13.2.13.35. force_polygon_ccw

Forces a geometry to respect the convention where exterior rings are counter-clockwise, interior rings are clockwise.

Syntaxe

force_polygon_ccw(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_polygon_ccw(geometry:=geom_from_wkt('Polygon ((-1 -1, 0 2, 4 2, 4 0, -1 -1))'))) → “Polygon ((-1 -1, 4 0, 4 2, 0 2, -1 -1))”

Plus de détails : force_polygon_cw, force_rhr

13.2.13.36. force_polygon_cw

Forces a geometry to respect the convention where exterior rings are clockwise, interior rings are counter-clockwise.

Syntaxe

force_polygon_cw(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_polygon_cw(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 : force_polygon_ccw, force_rhr

13.2.13.37. force_rhr

Forces a geometry to respect the Right-Hand-Rule, in which the area that is bounded by a polygon is to the right of the boundary. In particular, the exterior ring is oriented in a clockwise direction and the interior rings in a counter-clockwise direction. Due to the inconsistency in the definition of the Right-Hand-Rule in some contexts it is recommended to use the explicit force_polygon_cw function instead.

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, force_polygon_ccw, force_polygon_cw

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

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

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

13.2.13.41. geom_to_wkb

Retourne la représentation binaire bien connue (WKB) d’une géométrie

Syntaxe

geom_to_wkb(geometry)

Arguments

  • geometry - une géométrie

Exemples

  • geom_to_wkb( @geometry ) → blob binaire contenant un objet géométrique

13.2.13.42. 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 géométrie

  • 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)”

13.2.13.43. $geometry

Renvoie la géométrie de l’entité en cours. Peut être utilisée en combinaison avec d’autres fonctions. ATTENTION : Cette fonction est obsolète. Il est recommandé de plutôt utiliser la variable de remplacement @geometry.

Syntaxe

$geometry

Exemples

  • geom_to_wkt( $geometry ) → “POINT(6 50)”

13.2.13.44. geometry

Retourne la géométrie d’un élément.

Syntaxe

geometry(feature)

Arguments

  • feature - un objet entité

Exemples

  • geometry( @feature ) → La géométrie de l’entité en cours. Privilégier l’utilisation de @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 (vrai) si l’entité en cours intersecte spatialement l’entité nommée “Main St.” de la couche « streets »

13.2.13.45. geometry_n

Returns a specific geometry from a geometry collection, or NULL if the input geometry is not a collection. Also returns a part from a multipart geometry.

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)”

13.2.13.46. geometry_type

Returns a string value describing the type of a geometry (Point, Line or Polygon)

Syntaxe

geometry_type(geometry)

Arguments

  • geometry - une géométrie

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”

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

  • geometry1 - 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

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

13.2.13.49. 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))”

13.2.13.50. intersection

Retourne une géométrie qui représente la partie commune de deux géométries.

Syntaxe

intersection(geometry1, geometry2)

Arguments

  • geometry1 - 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

13.2.13.51. intersects

Teste si une géométrie en croise une autre. Retourne vrai (TRUE) si les géométries se croisent dans l’espace (partagent une partie de l’espace) et faux (FALSE) si elles ne se croisent pas.

Syntaxe

intersects(geometry1, geometry2)

Arguments

  • geometry1 - 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

13.2.13.52. intersects_bbox

Tests whether a geometry’s bounding box overlaps another geometry’s bounding box. Returns TRUE if the geometries spatially intersect the bounding box defined and false if they do not.

Syntaxe

intersects_bbox(geometry1, geometry2)

Arguments

  • geometry1 - 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

13.2.13.53. is_closed

Returns TRUE if a line string is closed (start and end points are coincident), or false if a line string is not closed. If the geometry is not a line string then the result will be 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

13.2.13.54. is_empty

Returns TRUE if a geometry is empty (without coordinates), false if the geometry is not empty and NULL if there is no geometry. See also is_empty_or_null.

Syntaxe

is_empty(geometry)

Arguments

  • geometry - une géométrie

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

Plus de détails : is_empty_or_null

13.2.13.55. is_empty_or_null

Retourne TRUE (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 géométrie

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

Plus de détails : is_empty, NULL

13.2.13.56. is_multipart

Returns TRUE if the geometry is of Multi type.

Syntaxe

is_multipart(geometry)

Arguments

  • geometry - une géométrie

Exemples

  • is_multipart(geom_from_wkt('MULTIPOINT ((0 0),(1 1),(2 2))')) → TRUE

  • is_multipart(geom_from_wkt('POINT (0 0)')) → FALSE

13.2.13.57. is_valid

Returns TRUE if a geometry is valid; if it is well-formed in 2D according to the OGC rules.

Syntaxe

is_valid(geometry)

Arguments

  • geometry - une géométrie

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

Plus de détails : make_valid, l’algorithme Vérifier la validité

13.2.13.58. $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

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

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

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

13.2.13.62. 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, 8 0)'), distance:=5)) → “Point (5 0)”

  • geom_to_wkt(line_interpolate_point(geometry:=geom_from_wkt('LineString(0 0, 1 1, 2 0)'), distance:=2.1)) → “Point (1.48492424 0.51507576)”

  • geom_to_wkt(line_interpolate_point(geometry:=geom_from_wkt('LineString(0 0, 1 0)'), distance:=2)) → NULL

../../../_images/interpolated_point.png

Point interpolé à 500 m du début de la ligne

Plus de détails : l’algorithme Interpoler le point sur la ligne

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

13.2.13.64. line_merge

Retourne une géométrie (multi)ligne où toutes les lignes connectées de la géométrie en entrée ont été fusionnées en une seule. Cette fonction retournera NULL si on lui passe une géométrie qui n’est pas une LineString ou MultiLineString.

Syntaxe

line_merge(geometry)

Arguments

  • geometry - une géométrie (multi)ligne

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)”

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

  • geometry - une géométrie linéaire, droite ou 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)”

../../../_images/substring.png

Portion de Ligne avec une distance de départ fixée à 0 mètre et la distance de fin à 250 mètres.

Plus de détails : l’algorithme Portion de ligne

13.2.13.66. m

Renvoie la valeur m (mesure) 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

13.2.13.67. m_at

Récupère la coordonnée m d’une géométrie, ou NULL si la géométrie n’a pas de valeur m.

Syntaxe

m_at(geometry, vertex)

Arguments

  • geometry - objet géométrique

  • vertex - index du sommet de la géométrie (les indices commencent à 0; les valeurs négatives s’appliquent depuis le dernier sommet, à -1)

Exemples

  • m_at(geom_from_wkt('LineStringZM(0 0 0 0, 10 10 0 5, 10 10 0 0)'), 1) → 5

13.2.13.68. m_max

Renvoie la valeur maximale m (mesure) d’une géométrie.

Syntaxe

m_max(geometry)

Arguments

  • geometry - 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

13.2.13.69. m_min

Renvoie la valeur minimale m (mesure) d’une géométrie.

Syntaxe

m_min(geometry)

Arguments

  • geometry - 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

13.2.13.70. 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 géométrie

Exemples

  • main_angle(geom_from_wkt('Polygon ((321577 129614, 321581 129618, 321585 129615, 321581 129610, 321577 129614))')) → 38.66

13.2.13.71. 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))”

13.2.13.72. 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))”

13.2.13.73. 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)”

13.2.13.74. 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)”

13.2.13.75. 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)”

13.2.13.76. 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))”

13.2.13.77. 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))”

13.2.13.78. 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))”

13.2.13.79. 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))”

13.2.13.80. 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)”

13.2.13.81. make_valid

Renvoie une géométrie valide ou une géométrie vide si la géométrie n’a pas pu être rendue valide.

Syntaxe

make_valid(geometry, [method=structure], [keep_collapsed=false])

[] indique des éléments optionnels

Arguments

  • geometry - une géométrie

  • method - repair algorithm. May be either “structure” or “linework”. The “linework” option combines all rings into a set of noded lines and then extracts valid polygons from that linework. The “structure” method first makes all rings valid and then merges shells and subtracts holes from shells to generate valid result. Assumes that holes and shells are correctly categorized.

  • keep_collapsed - if set to true, then components that have collapsed into a lower dimensionality will be kept. For example, a ring collapsing to a line, or a line collapsing to a point.

Exemples

  • geom_to_wkt(make_valid(geom_from_wkt('POLYGON((3 2, 4 1, 5 8, 3 2, 4 2))'))) → “Polygon ((3 2, 5 8, 4 1, 3 2))”

  • geom_to_wkt(make_valid(geom_from_wkt('POLYGON((3 2, 4 1, 5 8, 3 2, 4 2))'), 'linework')) → “GeometryCollection (Polygon ((5 8, 4 1, 3 2, 5 8)),LineString (3 2, 4 2))”

  • geom_to_wkt(make_valid(geom_from_wkt('POLYGON((3 2, 4 1, 5 8))'), method:='linework')) → “Polygon ((3 2, 4 1, 5 8, 3 2))”

  • make_valid(geom_from_wkt('LINESTRING(0 0)')) → Une géométrie vide

Plus de détails : is_valid, l’algorithme Correction des géométries

13.2.13.82. 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 géométrie

  • 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))”

../../../_images/minimum_enclosing_circles.png

Minimal enclosing circle of each feature

Plus de détails : l’algorithme Cercles englobants minimum

13.2.13.83. 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))”

../../../_images/extract_nodes.png

Multi-point feature extracted from vertices

Plus de détails : l’algorithme Extraire les vertex

13.2.13.84. num_geometries

Returns the number of geometries in a geometry collection, or the number of parts in a multi-part geometry. The function returns NULL if the input geometry is not a collection.

Syntaxe

num_geometries(geometry)

Arguments

  • geometry - geometry collection or multi-part geometry

Exemples

  • num_geometries(geom_from_wkt('GEOMETRYCOLLECTION(POINT(0 1), POINT(0 0), POINT(1 0), POINT(1 1))')) → 4

  • num_geometries(geom_from_wkt('MULTIPOINT((0 1), (0 0), (1 0))')) → 3

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

13.2.13.86. num_points

Renvoie le nombre de sommets d’une géométrie.

Syntaxe

num_points(geometry)

Arguments

  • geometry - une géométrie

Exemples

  • num_points(@geometry) → nombre de sommets dans la géométrie de l’entité en cours

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

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

../../../_images/offset_lines.png

En bleu la couche source, en rouge celui décalé

Plus de détails : l’algorithme Lignes décalées

13.2.13.89. 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)”

13.2.13.90. 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 géométrie

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))”

../../../_images/oriented_minimum_bounding_box.png

Boîte de délimitation minimale orientée

Plus de détails : l’algorithme Boîte de délimitation minimale orientée

13.2.13.91. overlaps

Tests whether a geometry overlaps another. Returns TRUE if the geometries share space, are of the same dimension, but are not completely contained by each other.

Syntaxe

overlaps(geometry1, geometry2)

Arguments

  • geometry1 - 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

13.2.13.92. overlay_contains

Indique si l’entité actuelle contient spatialement au moins une entité d’une couche cible, ou renvoie un tableau de valeurs, résultat d’une expression portant sur les entités de la couche cible qui sont 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('régions') → vrai (TRUE) si l’entité actuelle contient spatialement une entité de la couche « régions »

  • overlay_contains('regions', filter:= population > 10000) → TRUE if the current feature spatially contains a region with a population greater than 10000

  • 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 (au format 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

13.2.13.93. overlay_crosses

Indique si l’entité actuelle croise spatialement au moins une entité d’une couche cible, ou renvoie un tableau de valeurs, résultat d’une expression portant sur les entités de la couche cible croisées 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 if the current feature spatially crosses a region

  • overlay_crosses('regions', filter:= population > 10000) → TRUE if the current feature spatially crosses a region with a population greater than 10000

  • 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 (au format 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

13.2.13.94. overlay_disjoint

Indique si l’entité actuelle est spatialement disjointe de toute entité d’une couche cible, ou renvoie un tableau de valeurs, résultat d’une expression portant sur les entités de 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 if the current feature is spatially disjoint from all the regions

  • overlay_disjoint('regions', filter:= population > 10000) → TRUE if the current feature is spatially disjoint from all the regions with a population greater than 10000

  • 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 (au format 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

13.2.13.95. overlay_equals

Indique si l’entité actuelle est spatialement égale à au moins une entité d’une couche cible, ou renvoie un tableau de valeurs, résultat d’une expression portant sur 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') → TRUE if the current feature is spatially equal to a region

  • overlay_equals('regions', filter:= population > 10000) → TRUE if the current feature is spatially equal to a region with a population greater than 10000

  • 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 (au format 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

13.2.13.96. overlay_intersects

Indique si l’entité actuelle intersecte spatialement au moins une entité d’une couche cible, ou renvoie un tableau de valeurs, résultat d’une expression portant sur les entités de la couche cible intersectées 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], [min_overlap], [min_inscribed_circle_radius], [return_details], [sort_by_intersection_size])

[] 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)

  • min_overlap - defines an optional exclusion filter:

    • for polygons, a minimum area in current feature squared units for the intersection. If the intersection results in multiple polygons the intersection will be returned if at least one of the polygons has an area greater or equal to the value

    • for lines, a minimum length in current feature units. If the intersection results in multiple lines the intersection will be returned if at least one of the lines has a length greater or equal to the value.

  • min_inscribed_circle_radius - defines an optional exclusion filter (for polygons only): minimum radius in current feature units for the maximum inscribed circle of the intersection. If the intersection results in multiple polygons the intersection will be returned if at least one of the polygons has a radius for the maximum inscribed circle greater or equal to the value.

    Read more on the underlying GEOS predicate, as described in PostGIS ST_MaximumInscribedCircle function.

    Cet argument requiert GEOS >=3.9.

  • return_details - Set this to true to return a list of maps containing (key names in quotes) the feature “id”, the expression “result” and the “overlap” value. The “radius” of the maximum inscribed circle is also returned when the target layer is a polygon. Only valid when used with the expression parameter

  • sort_by_intersection_size - only valid when used with an expression, set this to “des” to return the results ordered by the overlap value in descending order or set this to “asc” for ascending order.

Exemples

  • overlay_intersects('regions') → TRUE if the current feature spatially intersects a region

  • overlay_intersects('regions', filter:= population > 10000) → TRUE if the current feature spatially intersects a region with a population greater than 10000

  • 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 (au format WKT), pour un maximum de deux régions superposées à l’entité courante

  • overlay_intersects(layer:='regions', min_overlap:=0.54) → TRUE if the current feature spatially intersects a region and the intersection area (of at least one of the parts in case of multipolygons) is greater or equal to 0.54

  • overlay_intersects(layer:='regions', min_inscribed_circle_radius:=0.54) → TRUE if the current feature spatially intersects a region and the intersection area maximum inscribed circle’s radius (of at least one of the parts in case of multipart) is greater or equal to 0.54

  • overlay_intersects(layer:='regions', expression:= geom_to_wkt(@geometry), return_details:=true) → an array of maps containing “id”, “result”, “overlap” and “radius”

  • overlay_intersects(layer:= 'regions', expression:= geom_to_wkt($geometry), sort_by_intersection_size:='des')) → un tableau de géométries (au format WKT) triées selon la surface de superposition, en ordre décroissant

Plus de détails : intersects, array manipulation, l’algorithme Sélection par localisation

13.2.13.97. 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 if the « airports » layer has at least one feature

  • overlay_nearest('airports', max_distance:= 5000) → TRUE if there is an airport within a distance of 5000 map units from the current feature

  • 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

13.2.13.98. overlay_touches

Indique si l’entité actuelle touche spatialement au moins une entité d’une couche cible, ou renvoie un tableau de valeurs, résultat d’une expression portant sur les entités de la couche cible touchées 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 if the current feature spatially touches a region

  • overlay_touches('regions', filter:= population > 10000) → TRUE if the current feature spatially touches a region with a population greater than 10000

  • 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 (au format 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

13.2.13.99. overlay_within

Indique si l’entité actuelle est spatialement contenue dans au moins une entité de la couche cible, ou renvoie un tableau de valeurs, résultat d’une expression portant sur les entités de la couche cible qui contiennent spatialement 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 if the current feature is spatially within a region

  • overlay_within('regions', filter:= population > 10000) → TRUE if the current feature is spatially within a region with a population greater than 10000

  • 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 (au format 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

13.2.13.100. $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

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

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

13.2.13.103. point_on_surface

Retourne un point garanti sur la surface d’une géométrie.

Syntaxe

point_on_surface(geometry)

Arguments

  • geometry - une géométrie

Exemples

  • point_on_surface(@geometry) → une géométrie de point

Plus de détails : l’algorithme Point sur la surface

13.2.13.104. 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 géométrie

  • 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)”

../../../_images/pole_inaccessibility.png

Pôle d’inaccessibilité

Plus de détails : l’algorithme Pôle d’inaccessibilité

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

  • elevation - 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)

13.2.13.106. 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 géométrie

  • geometry - une géométrie

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 géométrie

  • geometry - une géométrie

  • 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

13.2.13.107. reverse

Inverse le sens d’une chaîne de lignes en inversant l’ordre de ses sommets.

Syntaxe

reverse(geometry)

Arguments

  • geometry - une géométrie

Exemples

  • geom_to_wkt(reverse(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)'))) → “LINESTRING(2 2, 1 1, 0 0)”

../../../_images/reverse_line.png

Reversing line direction

Plus de détails : l’algorithme Inverser la direction de la ligne

13.2.13.108. 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=NULL], [per_part=false])

[] indique des éléments optionnels

Arguments

  • geometry - une géométrie

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

  • per_part - apply rotation per part. If true, then rotation will apply around the center of each part’s bounding box when the input geometry is multipart and an explicit rotation center point is not specified.

Exemples

  • rotate(@geometry, 45, make_point(4, 5)) → géométrie pivotée de 45 degrés dans le sens des aiguilles d’une montre autour du point (4, 5)

  • rotate(@geometry, 45) → géométrie pivotée de 45 degrés dans le sens des aiguilles d’une montre autour du centre de sa boîte englobante

../../../_images/rotate.gif

Pivoter des entités

13.2.13.109. roundness

Calculates how close a polygon shape is to a circle. The function Returns TRUE when the polygon shape is a perfect circle and 0 when it is completely flat.

Syntaxe

roundness(geometry)

Arguments

  • geometry - un polygone

Exemples

  • round(roundness(geom_from_wkt('POLYGON(( 0 0, 0 1, 1 1, 1 0, 0 0))')), 3) → 0.785

  • round(roundness(geom_from_wkt('POLYGON(( 0 0, 0 0.1, 1 0.1, 1 0, 0 0))')), 3) → 0.260

Plus de détails : l’algorithme Roundness

13.2.13.110. scale

Returns a scaled version of a geometry. Calculations are in the Spatial Reference System of this geometry.

Syntaxe

scale(geometry, x_scale, y_scale, [center])

[] indique des éléments optionnels

Arguments

  • geometry - une géométrie

  • x_scale - x-axis scaling factor

  • y_scale - y-axis scaling factor

  • center - scaling center point. If not specified, the center of the geometry’s bounding box is used.

Exemples

  • scale(@geometry, 2, 0.5, make_point(4, 5)) → geometry scaled twice horizontally and halved vertically, around the (4, 5) point

  • scale(@geometry, 2, 0.5) → geometry twice horizontally and halved vertically, around the center of its bounding box

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

13.2.13.112. shared_paths

Returns a collection containing paths shared by the two input geometries. Those going in the same direction are in the first element of the collection, those going in the opposite direction are in the second element. The paths themselves are given in the direction of the first geometry.

Syntaxe

shared_paths(geometry1, geometry2)

Arguments

  • geometry1 - une géométrie (multi)linéaire

  • geometry2 - une géométrie (multi)linéaire

Exemples

  • geom_to_wkt(shared_paths(geom_from_wkt('MULTILINESTRING((26 125,26 200,126 200,126 125,26 125),(51 150,101 150,76 175,51 150)))'),geom_from_wkt('LINESTRING(151 100,126 156.25,126 125,90 161, 76 175)'))) → “GeometryCollection (MultiLineString ((126 156.25, 126 125),(101 150, 90 161),(90 161, 76 175)),MultiLineString EMPTY)”

  • geom_to_wkt(shared_paths(geom_from_wkt('LINESTRING(76 175,90 161,126 125,126 156.25,151 100)'),geom_from_wkt('MULTILINESTRING((26 125,26 200,126 200,126 125,26 125),(51 150,101 150,76 175,51 150))'))) → “GeometryCollection (MultiLineString EMPTY,MultiLineString ((76 175, 90 161),(90 161, 101 150),(126 125, 126 156.25)))”

13.2.13.113. 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)”

13.2.13.114. 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 géométrie

  • 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)”

../../../_images/simplify_geometries.png

From left to right, source layer and increasing simplification tolerances

Plus de détails : l’algorithme Simplifier

13.2.13.115. 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 géométrie

  • 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

13.2.13.116. 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) → line buffered to the left by 10.5 units

  • single_sided_buffer(@geometry, -10.5) → line buffered to the right by 10.5 units

  • 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

../../../_images/single_side_buffer.png

Tampon gauche ou droit sur la même couche de lignes vectorielles

Plus de détails : l’algorithme Zone tampon simple face

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

13.2.13.118. 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 géométrie

  • 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)”

../../../_images/smooth_geometry_1.png

L’augmentation du nombre d’itérations entraîne des géométries plus lisses

Plus de détails : l’algorithme Lisser

13.2.13.119. square_wave

Constructs square/rectangular waves along the boundary of a geometry.

Syntaxe

square_wave(geometry, wavelength, amplitude, [strict=False])

[] indique des éléments optionnels

Arguments

  • geometry - une géométrie

  • wavelength - wavelength of square waveform

  • amplitude - amplitude of square waveform

  • strict - By default the wavelength argument is treated as a « maximum wavelength », where the actual wavelength will be dynamically adjusted so that an exact number of square waves are created along the boundaries of the geometry. If the strict argument is set to true then the wavelength will be used exactly and an incomplete pattern may be used for the final waveform.

Exemples

  • square_wave(geom_from_wkt('LineString(0 0, 10 0)'), 3, 1) → Square waves with wavelength 3 and amplitude 1 along the linestring

../../../_images/square_wave.png

Symbolizing features with square waves

13.2.13.120. square_wave_randomized

Constructs randomized square/rectangular waves along the boundary of a geometry.

Syntaxe

square_wave_randomized(geometry, min_wavelength, max_wavelength, min_amplitude, max_amplitude, [seed=0])

[] indique des éléments optionnels

Arguments

  • geometry - une géométrie

  • min_wavelength - minimum wavelength of waves

  • max_wavelength - maximum wavelength of waves

  • min_amplitude - minimum amplitude of waves

  • max_amplitude - maximum amplitude of waves

  • seed - specifies a random seed for generating waves. If the seed is 0, then a completely random set of waves will be generated.

Exemples

  • square_wave_randomized(geom_from_wkt('LineString(0 0, 10 0)'), 2, 3, 0.1, 0.2) → Randomly sized square waves with wavelengths between 2 and 3 and amplitudes between 0.1 and 0.2 along the linestring

../../../_images/square_wave_randomized.png

Symbolizing features with square randomized waves

13.2.13.121. 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)”

../../../_images/start_point.png

Starting point of a line feature

Plus de détails : end_point, l’algorithme Extraire des vertex spécifiques

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

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

  • geometry1 - 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

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

Tapered buffer on line features

Plus de détails : l’algorithme Tampons coniques

13.2.13.125. touches

Tests whether a geometry touches another. Returns TRUE if the geometries have at least one point in common, but their interiors do not intersect.

Syntaxe

touches(geometry1, geometry2)

Arguments

  • geometry1 - 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

13.2.13.126. 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 géométrie

  • 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

13.2.13.127. 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 géométrie

  • dx - delta x

  • dy - delta y

Exemples

  • translate(@geometry, 5, 10) → une géométrie du même type que l’original, décalée de 5 en x et 10 en y

../../../_images/translate_geometry.png

Translater des entités

Plus de détails : l’algorithme Translater

13.2.13.128. triangular_wave

Constructs triangular waves along the boundary of a geometry.

Syntaxe

triangular_wave(geometry, wavelength, amplitude, [strict=False])

[] indique des éléments optionnels

Arguments

  • geometry - une géométrie

  • wavelength - wavelength of triangular waveform

  • amplitude - amplitude of triangular waveform

  • strict - By default the wavelength argument is treated as a « maximum wavelength », where the actual wavelength will be dynamically adjusted so that an exact number of triangular waves are created along the boundaries of the geometry. If the strict argument is set to true then the wavelength will be used exactly and an incomplete pattern may be used for the final waveform.

Exemples

  • triangular_wave(geom_from_wkt('LineString(0 0, 10 0)'), 3, 1) → Triangular waves with wavelength 3 and amplitude 1 along the linestring

../../../_images/triangular_wave.png

Symbolizing features with triangular waves

13.2.13.129. triangular_wave_randomized

Constructs randomized triangular waves along the boundary of a geometry.

Syntaxe

triangular_wave_randomized(geometry, min_wavelength, max_wavelength, min_amplitude, max_amplitude, [seed=0])

[] indique des éléments optionnels

Arguments

  • geometry - une géométrie

  • min_wavelength - minimum wavelength of waves

  • max_wavelength - maximum wavelength of waves

  • min_amplitude - minimum amplitude of waves

  • max_amplitude - maximum amplitude of waves

  • seed - specifies a random seed for generating waves. If the seed is 0, then a completely random set of waves will be generated.

Exemples

  • triangular_wave_randomized(geom_from_wkt('LineString(0 0, 10 0)'), 2, 3, 0.1, 0.2) → Randomly sized triangular waves with wavelengths between 2 and 3 and amplitudes between 0.1 and 0.2 along the linestring

../../../_images/triangular_wave_randomized.png

Symbolizing features with triangular randomized waves

13.2.13.130. union

Retourne une géométrie qui représente l’union ponctuelle des géométries.

Syntaxe

union(geometry1, geometry2)

Arguments

  • geometry1 - 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)”

13.2.13.131. wave

Constructs rounded (sine-like) waves along the boundary of a geometry.

Syntaxe

wave(geometry, wavelength, amplitude, [strict=False])

[] indique des éléments optionnels

Arguments

  • geometry - une géométrie

  • wavelength - wavelength of sine-like waveform

  • amplitude - amplitude of sine-like waveform

  • strict - By default the wavelength argument is treated as a « maximum wavelength », where the actual wavelength will be dynamically adjusted so that an exact number of waves are created along the boundaries of the geometry. If the strict argument is set to true then the wavelength will be used exactly and an incomplete pattern may be used for the final waveform.

Exemples

  • wave(geom_from_wkt('LineString(0 0, 10 0)'), 3, 1) → Sine-like waves with wavelength 3 and amplitude 1 along the linestring

../../../_images/wave.png

Symbolizing features with waves

13.2.13.132. wave_randomized

Constructs randomized curved (sine-like) waves along the boundary of a geometry.

Syntaxe

wave_randomized(geometry, min_wavelength, max_wavelength, min_amplitude, max_amplitude, [seed=0])

[] indique des éléments optionnels

Arguments

  • geometry - une géométrie

  • min_wavelength - minimum wavelength of waves

  • max_wavelength - maximum wavelength of waves

  • min_amplitude - minimum amplitude of waves

  • max_amplitude - maximum amplitude of waves

  • seed - specifies a random seed for generating waves. If the seed is 0, then a completely random set of waves will be generated.

Exemples

  • wave_randomized(geom_from_wkt('LineString(0 0, 10 0)'), 2, 3, 0.1, 0.2) → Randomly sized curved waves with wavelengths between 2 and 3 and amplitudes between 0.1 and 0.2 along the linestring

../../../_images/wave_randomized.png

Symbolizing features with randomized waves

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

../../../_images/wedge_buffers.png

Wedge buffering features

Plus de détails : l’algorithme Créer des buffer compensés

13.2.13.134. within

Tests whether a geometry is within another. Returns TRUE if the geometry1 is completely within geometry2.

Syntaxe

within(geometry1, geometry2)

Arguments

  • geometry1 - 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

13.2.13.135. $x

Renvoie la coordonnée x de l’entité point en cours. Si l’entité est de type multipoint, alors la coordonnée x du premier point est renvoyée. ATTENTION : Cette fonction est obsolète. Il est recommandé de plutôt utiliser la fonction de remplacement x(), avec la variable @geometry.

Syntaxe

$x

Exemples

  • $x → 42

Plus de détails : x

13.2.13.136. 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 géométrie

Exemples

  • x( geom_from_wkt( 'POINT(2 5)' ) ) → 2

  • x( @geometry ) → coordonnée x du centroïde de l’entité actuelle

13.2.13.137. $x_at

Récupère une coordonnée x de la géométrie de l’entité en cours. ATTENTION : Cette fonction est obsolète. Il est recommandé de plutôt utiliser la fonction de remplacement x_at, avec la variable @geometry.

Syntaxe

$x_at(vertex)

Arguments

  • vertex - index of the vertex of the current geometry (indices start at 0; negative values apply from the last index, starting at -1)

Exemples

  • $x_at(1) → 5

Plus de détails : x_at

13.2.13.138. x_at

Retrieves a x coordinate of the geometry.

Syntaxe

x_at(geometry, vertex)

Arguments

  • geometry - objet géométrique

  • vertex - index du sommet de la géométrie (les indices commencent à 0; les valeurs négatives s’appliquent depuis le dernier sommet, à -1)

Exemples

  • x_at( geom_from_wkt( 'POINT(4 5)' ), 0 ) → 4

13.2.13.139. 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 géométrie

Exemples

  • x_max( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 4

13.2.13.140. 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 géométrie

Exemples

  • x_min( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 2

13.2.13.141. $y

Renvoie la coordonnée y de l’entité point en cours. Si l’entité est de type multipoint, alors la coordonnée y du premier point est renvoyée. ATTENTION : Cette fonction est obsolète. Il est recommandé de plutôt utiliser la fonction de remplacement y(), avec la variable @geometry.

Syntaxe

$y

Exemples

  • $y → 42

Plus de détails : y

13.2.13.142. 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 géométrie

Exemples

  • y( geom_from_wkt( 'POINT(2 5)' ) ) → 5

  • y( @geometry ) → coordonnée y du centroïde de l’entité actuelle

13.2.13.143. $y_at

Récupère une coordonnée y de la géométrie de l’entité en cours. ATTENTION : Cette fonction est obsolète. Il est recommandé de plutôt utiliser la fonction de remplacement y_at, avec la variable @geometry.

Syntaxe

$y_at(vertex)

Arguments

  • vertex - index of the vertex of the current geometry (indices start at 0; negative values apply from the last index, starting at -1)

Exemples

  • $y_at(1) → 2

Plus de détails : y_at

13.2.13.144. y_at

Retrieves a y coordinate of the geometry.

Syntaxe

y_at(geometry, vertex)

Arguments

  • geometry - objet géométrique

  • vertex - index du sommet de la géométrie (les indices commencent à 0; les valeurs négatives s’appliquent depuis le dernier sommet, à -1)

Exemples

  • y_at( geom_from_wkt( 'POINT(4 5)' ), 0 ) → 5

13.2.13.145. 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 géométrie

Exemples

  • y_max( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 8

13.2.13.146. 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 géométrie

Exemples

  • y_min( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 5

13.2.13.147. $z

Renvoie la valeur z de l’entité point 3D en cours. Si l’entité est de type multipoint, alors la valeur z du premier point est renvoyée. ATTENTION : Cette fonction est obsolète. Il est recommandé de plutôt utiliser la fonction de remplacement z(), avec la variable @geometry.

Syntaxe

$z

Exemples

  • $z → 123

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

13.2.13.149. z_at

Retrieves a z coordinate of the geometry, or NULL if the geometry has no z value.

Syntaxe

z_at(geometry, vertex)

Arguments

  • geometry - objet géométrique

  • vertex - index du sommet de la géométrie (les indices commencent à 0; les valeurs négatives s’appliquent depuis le dernier sommet, à -1)

Exemples

  • z_at(geom_from_wkt('LineStringZ(0 0 0, 10 10 5, 10 10 0)'), 1) → 5

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

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

13.2.14. Fonctions de Mise en Page

Ce groupe contient des fonctions pour manipuler les propriétés des objets des mises en pages.

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

13.2.14.2. map_credits

Returns a list of credit (usage rights) strings for the layers shown in a layout, or specific layout map item.

Syntaxe

map_credits([id], [include_layer_names=false], [layer_name_separator=”: “])

[] indique des éléments optionnels

Arguments

  • id - Map item ID. If not specified, the layers from all maps in the layout will be used.

  • 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() ) → comma separated list of layer credits for all layers shown in all map items in the layout, e.g “CC-BY-NC, CC-BY-SA”

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

13.2.15. Couches

This group contains a list of the available layers in the current project and, for each layer, their fields (stored in the dataset, virtual or auxiliary ones as well as from joins). The fields can be interacted the same way as mentioned in Champs et Valeurs, except that a double-click will add the name as a string (single quoted) to the expression instead of as a field reference given that they do not belong to the active layer. This offers a convenient way to write expressions referring to different layers, such as when performing aggregates, attribute or spatial queries.

Il fournit également des fonctions pratiques pour manipuler les calques.

13.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, un tableau avec toutes les parties de l’uri sera retourné.

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”

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

    • crs_ellipsoid: acronym of the layer CRS ellipsoid

    • 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

13.2.15.3. load_layer

Loads a layer by source URI and provider name.

Syntaxe

load_layer(uri, provider)

Arguments

  • uri - layer source URI string

  • provider - layer data provider name

Exemples

  • layer_property(load_layer('c:/data/roads.shp', 'ogr'), 'feature_count') → count of features from the c:/data/roads.shp vector layer

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

13.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]

13.2.16.2. hstore_to_map

Crée un tableau à 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” }

13.2.16.3. map

Retourne un tableau 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”

13.2.16.4. map_akeys

Retourne toutes les clés d’un tableau sous forme de liste.

Syntaxe

map_akeys(map)

Arguments

  • map - un tableau

Exemples

  • map_akeys(map('1','one','2','two')) → [ “1”, “2” ]

13.2.16.5. map_avals

Retourne toutes les valeurs d’un tableau sous forme de liste.

Syntaxe

map_avals(map)

Arguments

  • map - un tableau

Exemples

  • map_avals(map('1','one','2','two')) → [ “one”, “two” ]

13.2.16.6. map_concat

Renvoie un tableau contenant toutes les entrées des tableaux donnés. Si deux tableaux contiennent la même clé, la valeur du deuxième tableau est prise.

Syntaxe

map_concat(map1, map2, …)

Arguments

  • map - un tableau

Exemples

  • map_concat(map('1','un', '2','en plus'),map('2','deux', '3','trois')) → { “1”: “un”, “2”: “deux”, “3”: “trois” }

13.2.16.7. map_delete

Retourne un tableau dont sont supprimées la clé donnée et sa valeur correspondante.

Syntaxe

map_delete(map, key)

Arguments

  • map - un tableau

  • key - la clé pour supprimer

Exemples

  • map_delete(map('1','one','2','two'),'2') → { “1”: “one” }

13.2.16.8. map_exist

Returns TRUE if the given key exists in the map.

Syntaxe

map_exist(map, key)

Arguments

  • map - un tableau

  • key - la clé de la recherche

Exemples

  • map_exist(map('1','one','2','two'),'3') → FALSE

13.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 - un tableau

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

13.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 - un tableau

  • 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” }

13.2.16.11. map_prefix_keys

Renvoie un tableau avec toutes les clés précédées du texte indiqué.

Syntaxe

map_prefix_keys(map, prefix)

Arguments

  • map - un tableau

  • prefix - un texte

Exemples

  • map_prefix_keys(map('1','one','2','two'), 'prefix-') → { “prefix-1”: “one”, “prefix-2”: “two” }

13.2.16.12. map_to_hstore

Fusionner les éléments d’un tableau en une chaîne de caractères au format hstore.

Syntaxe

map_to_hstore(map)

Arguments

  • map - le tableau en entrée

Exemples

  • map_to_hstore(map('qgis','déchire')) → “« qgis »=> »déchire »”

13.2.16.13. map_to_html_dl

Merge map elements into a HTML definition list string.

Syntaxe

map_to_html_dl(map)

Arguments

  • map - le tableau en entrée

Exemples

  • map_to_html_dl(map('QGIS','déchire')) → <dl><dt>QGIS</dt><dd>déchire</dd></dl>

13.2.16.14. map_to_html_table

Merge map elements into a HTML table string.

Syntaxe

map_to_html_table(map)

Arguments

  • map - le tableau en entrée

Exemples

  • map_to_html_table(map('QGIS','déchire')) → <table><thead><th>QGIS</th></thead><tbody><tr><td>déchire</td></tr></tbody></table>

13.2.16.15. to_json

Créer une chaîne formatée en JSON à partir d’un tableau, d’une liste 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]

13.2.16.16. url_encode

Returns an URL encoded string from a map. Transforms all characters in their properly-encoded form producing a fully-compliant query string.

A noter que le signe plus “+” n’est pas converti.

Syntaxe

url_encode(map)

Arguments

  • map - un tableau.

Exemples

  • url_encode(map('a&+b', 'a and plus b', 'a=b', 'a equals b')) → “a%26+b=a%20and%20plus%20b&a%3Db=a%20equals%20b”

13.2.17. Fonctions mathématiques

Ce groupe contient des fonctions mathématiques (par ex. racine carré, sin et cos).

13.2.17.1. abs

Renvoie la valeur absolue d’un nombre.

Syntaxe

abs(value)

Arguments

  • value - un nombre

Exemples

  • abs(-2) → 2

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

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

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

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

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

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

13.2.17.8. cos

Renvoie le cosinus d’un angle.

Syntaxe

cos(angle)

Arguments

  • angle - angle en radians

Exemples

  • cos(1.571) → 0.000796326710733263

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

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

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

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

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

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

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

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

13.2.17.17. pi

Renvoie la valeur de Pi pour utilisation dans d’autres calculs.

Syntaxe

pi()

Exemples

  • pi() → 3.14159265358979

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

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

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

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

13.2.17.22. scale_exponential

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_exponential(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

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

13.2.17.24. scale_polynomial

Transforms a given value from an input domain to an output range using a polynomial curve. This function can be used to ease values in or out of the specified output range.

Syntaxe

scale_polynomial(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_polynomial(5,0,10,0,100,2) → 25

    easing in, using an exponent of 2

  • scale_polynomial(3,0,10,0,100,0.5) → 54.772

    l’assouplissement, en utilisant un exposant de 0,5

13.2.17.25. sin

Renvoie le sinus d’un angle.

Syntaxe

sin(angle)

Arguments

  • angle - angle en radians

Exemples

  • sin(1.571) → 0.999999682931835

13.2.17.26. sqrt

Renvoie la racine carrée d’une valeur.

Syntaxe

sqrt(value)

Arguments

  • value - un nombre

Exemples

  • sqrt(9) → 3

13.2.17.27. tan

Renvoie la tangente d’un angle.

Syntaxe

tan(angle)

Arguments

  • angle - angle en radians

Exemples

  • tan(1.0) → 1.5574077246549

13.2.18. Fonctions de maillage

This group contains functions which calculate or return mesh related values.

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

13.2.18.2. $face_index

Returns the index of the current mesh face.

Syntaxe

$face_index

Exemples

  • $face_index → 4581

13.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)”

13.2.18.4. $vertex_index

Returns the index of the current mesh vertex.

Syntaxe

$vertex_index

Exemples

  • $vertex_index → 9874

13.2.18.5. $vertex_x

Returns the X coordinate of the current mesh vertex.

Syntaxe

$vertex_x

Exemples

  • $vertex_x → 42.12

13.2.18.6. $vertex_y

Returns the Y coordinate of the current mesh vertex.

Syntaxe

$vertex_y

Exemples

  • $vertex_y → 12.24

13.2.18.7. $vertex_z

Renvoie la valeur Z du sommet actuel du maillage.

Syntaxe

$vertex_z

Exemples

  • $vertex_z → 42

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

13.2.19.1. %

Remainder of division. Takes the sign of the dividend.

Syntaxe

a % b

Arguments

  • a - valeur

  • b - valeur

Exemples

  • 9 % 2 → 1

  • 9 % -2 → 1

  • -9 % 2 → -1

  • 5 % NULL → NULL

13.2.19.2. *

Multiplication de deux valeurs

Syntaxe

a * b

Arguments

  • a - valeur

  • b - valeur

Exemples

  • 5 * 4 → 20

  • 5 * NULL → NULL

13.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, ||

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

13.2.19.5. /

Division de deux valeurs

Syntaxe

a / b

Arguments

  • a - valeur

  • b - valeur

Exemples

  • 5 / 4 → 1.25

  • 5 / NULL → NULL

13.2.19.6. //

Floor division of two values

Syntaxe

a // b

Arguments

  • a - valeur

  • b - valeur

Exemples

  • 9 // 2 → 4

13.2.19.7. <

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 → FALSE

  • 5 < 5 → FALSE

  • 4 < 5 → TRUE

13.2.19.8. <=

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 → FALSE

  • 5 <= 5 → TRUE

  • 4 <= 5 → TRUE

13.2.19.9. <>

Compare deux valeurs et renvoie 1 si elles ne sont pas égales.

Syntaxe

a <> b

Arguments

  • a - valeur

  • b - valeur

Exemples

  • 5 <> 4 → TRUE

  • 4 <> 4 → FALSE

  • 5 <> NULL → NULL

  • NULL <> NULL → NULL

13.2.19.10. =

Compare deux valeurs et renvoie 1 si elles sont égales.

Syntaxe

a = b

Arguments

  • a - valeur

  • b - valeur

Exemples

  • 5 = 4 → FALSE

  • 4 = 4 → TRUE

  • 5 = NULL → NULL

  • NULL = NULL → NULL

13.2.19.11. >

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 → TRUE

  • 5 > 5 → FALSE

  • 4 > 5 → FALSE

13.2.19.12. >=

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 → TRUE

  • 5 >= 5 → TRUE

  • 4 >= 5 → FALSE

13.2.19.13. AND

Returns TRUE when conditions a and b are true.

Syntaxe

a AND b

Arguments

  • a - condition

  • b - condition

Exemples

  • TRUE AND TRUE → TRUE

  • TRUE AND FALSE → FALSE

  • 4 = 2+2 AND 1 = 1 → TRUE

  • 4 = 2+2 AND 1 = 2 → FALSE

13.2.19.14. BETWEEN

Returns TRUE if value is within the specified range. The range is considered inclusive of the bounds. To test for exclusion NOT BETWEEN can be used.

Syntaxe

value BETWEEN lower_bound AND higher_bound

Arguments

  • value - the value to compare with a range. It can be a string, a number or a date.

  • lower_bound AND higher_bound - les limites de la plage

Exemples

  • 'B' BETWEEN 'A' AND 'C' → TRUE

  • 2 BETWEEN 1 AND 3 → TRUE

  • 2 BETWEEN 2 AND 3 → TRUE

  • 'B' BETWEEN 'a' AND 'c' → FALSE

  • lower('B') BETWEEN 'a' AND 'b' → TRUE

Note

value BETWEEN lower_bound AND higher_bound is the same as « value >= lower_bound AND value <= higher_bound ».

Plus de détails : NOT BETWEEN

13.2.19.15. ILIKE

Returns TRUE 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 - le texte à rechercher

  • pattern - pattern to find, you can use “%” as a wildcard, “_” as a single char and “\\” to escape these special characters.

Exemples

  • 'A' ILIKE 'A' → TRUE

  • 'A' ILIKE 'a' → TRUE

  • 'A' ILIKE 'B' → FALSE

  • 'ABC' ILIKE 'b' → FALSE

  • 'ABC' ILIKE 'B' → FALSE

  • 'ABC' ILIKE '_b_' → TRUE

  • 'ABC' ILIKE '_B_' → TRUE

  • 'ABCD' ILIKE '_b_' → FALSE

  • 'ABCD' ILIKE '_B_' → FALSE

  • 'ABCD' ILIKE '_b%' → TRUE

  • 'ABCD' ILIKE '_B%' → TRUE

  • 'ABCD' ILIKE '%b%' → TRUE

  • 'ABCD' ILIKE '%B%' → TRUE

  • 'ABCD%' ILIKE 'abcd\\%' → TRUE

  • 'ABCD' ILIKE '%B\\%' → FALSE

13.2.19.16. IN

Renvoie TRUE (vrai) si une valeur donnée se trouve dans une liste de valeurs.

Syntaxe

a IN b

Arguments

  • a - valeur

  • b - liste de valeurs

Exemples

  • 'A' IN ('A','B') → TRUE

  • 'A' IN ('C','B') → FALSE

13.2.19.17. IS

Renvoie TRUE (vrai) si a est identique à b.

Syntaxe

a IS b

Arguments

  • a - n’importe quelle valeur

  • b - n’importe quelle valeur

Exemples

  • 'A' IS 'A' → TRUE

  • 'A' IS 'a' → FALSE

  • 4 IS 4 → TRUE

  • 4 IS 2+2 → TRUE

  • 4 IS 2 → FALSE

  • @geometry IS NULL → 0, si la géométrie n’est pas NULL

13.2.19.18. IS NOT

Renvoie TRUE (vrai) si a est différent de b.

Syntaxe

a IS NOT b

Arguments

  • a - valeur

  • b - valeur

Exemples

  • 'a' IS NOT 'b' → TRUE

  • 'a' IS NOT 'a' → FALSE

  • 4 IS NOT 2+2 → FALSE

13.2.19.19. LIKE

Returns TRUE if the first parameter matches the supplied pattern. Works with numbers also.

Syntaxe

string/number LIKE pattern

Arguments

  • string/number - une valeur

  • 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' → TRUE

  • 'A' LIKE 'a' → FALSE

  • 'A' LIKE 'B' → FALSE

  • 'ABC' LIKE 'B' → FALSE

  • 'ABC' LIKE '_B_' → TRUE

  • 'ABCD' LIKE '_B_' → FALSE

  • 'ABCD' LIKE '_B%' → TRUE

  • 'ABCD' LIKE '%B%' → TRUE

  • '1%' LIKE '1\\%' → TRUE

  • '1_' LIKE '1\\%' → FALSE

13.2.19.20. NOT

Inverse une condition.

Syntaxe

NOT a

Arguments

  • a - condition

Exemples

  • NOT 1 → FALSE

  • NOT 0 → TRUE

13.2.19.21. NOT BETWEEN

Returns TRUE if value is not within the specified range. The range is considered inclusive of the bounds.

Syntaxe

value NOT BETWEEN lower_bound AND higher_bound

Arguments

  • value - the value to compare with a range. It can be a string, a number or a date.

  • lower_bound AND higher_bound - les limites de la plage

Exemples

  • 'B' NOT BETWEEN 'A' AND 'C' → FALSE

  • 1.0 NOT BETWEEN 1.1 AND 1.2 → TRUE

  • 2 NOT BETWEEN 2 AND 3 → FALSE

  • 'B' NOT BETWEEN 'a' AND 'c' → TRUE

  • lower('B') NOT BETWEEN 'a' AND 'b' → FALSE

Note

value NOT BETWEEN lower_bound AND higher_bound is the same as « value < lower_bound OR value > higher_bound ».

Plus de détails : BETWEEN

13.2.19.22. OR

Returns TRUE when condition a or b is true.

Syntaxe

a OR b

Arguments

  • a - condition

  • b - condition

Exemples

  • 4 = 2+2 OR 1 = 1 → TRUE

  • 4 = 2+2 OR 1 = 2 → TRUE

  • 4 = 2   OR 1 = 2 → FALSE

13.2.19.23. []

Index operator. Returns an element from an array or map value.

Syntaxe

[index]

Arguments

  • index - index de liste ou clé d’un tableau

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

13.2.19.24. ^

Puissance de deux valeurs.

Syntaxe

a ^ b

Arguments

  • a - valeur

  • b - valeur

Exemples

  • 5 ^ 4 → 625

  • 5 ^ NULL → NULL

13.2.19.25. ||

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, +

13.2.19.26. ~

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' → TRUE

  • 'hello' ~ '^ll' → FALSE

  • 'hello' ~ 'llo$' → TRUE

  • 'abc123' ~ '\\d+' → TRUE

Plus de détails : regexp_match

13.2.20. Fonctions de Processing

Ce groupe contient des fonctions qui opèrent sur des algorithmes de traitement.

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

13.2.21. Fonctions Raster

Ce groupe contient des fonctions à implémenter sur une couche raster

13.2.21.1. raster_attributes

Returns a map with the fields names as keys and the raster attribute table values as values from the attribute table entry that matches the given raster value.

Syntaxe

raster_attributes(layer, band, value)

Arguments

  • layer - le nom ou l’identifiant de la couche raster

  • band - the band number for the associated attribute table lookup.

  • value - raster value

Exemples

  • raster_attributes('vegetation', 1, raster_value('vegetation', 1, make_point(1,1))) → {“class”: “Vegetated”, “subclass”: “Trees”}

13.2.21.2. 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”

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

13.2.22. Fonction d’enregistrement et d’attributs

Ce groupe contient des fonctions qui permettent d’accéder aux identifiants des enregistrements.

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

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

13.2.22.3. $currentfeature

Returns the current feature being evaluated. This can be used with the “attribute” function to evaluate attribute values from the current feature. WARNING: This function is deprecated. It is recommended to use the replacement @feature variable instead.

Syntaxe

$currentfeature

Exemples

  • attribute( $currentfeature, 'name' ) → valeur stockée dans l’attribut “name” pour l’entité actuelle

13.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', @feature, 'False') → The display expression of the given feature not evaluated.

13.2.22.5. feature_id

Returns a feature’s unique ID, or NULL if the feature is not valid.

Syntaxe

feature_id(feature)

Arguments

  • feature - un objet entité

Exemples

  • feature_id( @feature ) → the ID of the current feature

Plus de détails : get_feature_by_id

13.2.22.6. get_feature

Retourne la première entité d’une couche correspondant à une valeur d’attribut donnée.

Single value variant

Along with the layer ID, a single column and value are specified.

Syntaxe

get_feature(layer, attribute, value)

Arguments

  • layer - nom de la couche ou ID

  • attribute - attribute name to use for the match

  • 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 »

Variante table de correspondance

Along with the layer ID, a map containing the columns (key) and their respective value to be used.

Syntaxe

get_feature(layer, attribute)

Arguments

  • layer - nom de la couche ou ID

  • attribute - Map containing the column and value pairs to use

Exemples

  • get_feature('streets',map('name','main st','lane_num','4')) → first feature found in « streets » layer with « main st » value in the « name » field and « 4 » value in the « lane_num » field

13.2.22.7. 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 : feature_id

13.2.22.8. $id

Returns the feature id of the current row. WARNING: This function is deprecated. It is recommended to use the replacement @id variable instead.

Syntaxe

$id

Exemples

  • $id → 42

Plus de détails : feature_id, get_feature_by_id

13.2.22.9. is_attribute_valid

Returns TRUE if a specific feature attribute meets all constraints.

Syntaxe

is_attribute_valid(attribute, [feature], [layer], [strength])

[] indique des éléments optionnels

Arguments

  • attribute - an attribute name

  • feature - A feature. If not set, the current feature will be used.

  • layer - A vector layer. If not set, the current layer will be used.

  • strength - Set to “hard” or “soft” to narrow down to a specific constraint type. If not set, the function will return FALSE if either a hard or a soft constraint fails.

Exemples

  • is_attribute_valid('HECTARES') → TRUE if the current feature’s value in the « HECTARES » field meets all constraints.

  • is_attribute_valid('HOUSES',get_feature('my_layer', 'FID', 10), 'my_layer') → FALSE if the value in the « HOUSES » field from the feature with « FID »=10 in “my_layer” fails to meet all constraints.

Plus de détails : Contraintes

13.2.22.10. is_feature_valid

Returns TRUE if a feature meets all field constraints.

Syntaxe

is_feature_valid([feature], [layer], [strength])

[] indique des éléments optionnels

Arguments

  • feature - A feature. If not set, the current feature will be used.

  • layer - A vector layer. If not set, the current layer will be used.

  • strength - Set to “hard” or “soft” to narrow down to a specific constraint type. If not set, the function will return FALSE if either a hard or a soft constraint fails.

Exemples

  • is_feature_valid(strength:='hard') → TRUE if all fields from the current feature meet their hard constraints.

  • is_feature_valid(get_feature('my_layer', 'FID', 10), 'my_layer') → FALSE if all fields from feature with « FID »=10 in “my_layer” fails to meet all constraints.

Plus de détails : Contraintes

13.2.22.11. is_selected

Returns TRUE if a feature is selected. Can be used with zero, one or two arguments, see below for details.

Pas de paramètres

If called with no parameters, the function will return TRUE if the current feature in the current layer is selected.

Syntaxe

is_selected()

Exemples

  • is_selected() → TRUE if the current feature in the current layer is selected.

Une “entité” en paramètre

If called with a “feature” parameter only, the function returns TRUE if the specified feature from the current layer is selected.

Syntaxe

is_selected(feature)

Arguments

  • feature - l’entité qui doit être vérifiée pour la sélection.

Exemples

  • is_selected(@atlas_feature) → TRUE if the current atlas feature is selected.

  • 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

If the function is called with both a layer and a feature, it will return TRUE if the specified feature from the specified layer is selected.

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")) → TRUE if the current building’s street is selected (assuming the building layer has a field named “street_name” and the “streets” layer has a field called “name” with unique values).

  • is_selected( 'streets', get_feature_by_id('streets', 1)) → TRUE if the feature with the id 1 on the « streets » layer is selected.

13.2.22.12. 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’infobulle de l’entité actuelle de la couche courante.

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', @feature, 'False') → The maptip of the given feature not evaluated.

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

13.2.22.14. represent_attributes

Returns a map with the attribute names as keys and the configured representation values as values. The representation value for the attributes depends on the configured widget type for each attribute. Can be used with zero, one or more arguments, see below for details.

Pas de paramètres

If called with no parameters, the function will return the representation of the attributes of the current feature in the current layer.

Syntaxe

represent_attributes()

Exemples

  • represent_attributes() → The representation of the attributes for the current feature.

Une “entité” en paramètre

If called with a “feature” parameter only, the function will return the representation of the attributes of the specified feature from the current layer.

Syntaxe

represent_attributes(feature)

Arguments

  • feature - L’entité qui doit être évaluée.

Exemples

  • represent_attributes(@atlas_feature) → The representation of the attributes for the specified feature from the current layer.

Paramètres des couches et des entités

If called with a “layer” and a “feature” parameter, the function will return the representation of the attributes of the specified feature from the specified layer.

Syntaxe

represent_attributes(layer, feature)

Arguments

  • layer - La couche (ou son ID ou son nom).

  • feature - L’entité qui doit être évaluée.

Exemples

  • represent_attributes('atlas_layer', @atlas_feature) → The representation of the attributes for the specified feature from the specified layer.

Plus de détails : represent_value

13.2.22.15. 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 « Liste de valeurs ».

Syntaxe

represent_value(value, [fieldName])

[] indique des éléments optionnels

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.

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 widget, represent_attributes

13.2.22.16. 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, le tableau de données default_values peut être utilisé à 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, Définir des relations entre plusieurs couches

13.2.22.17. 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”

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

13.2.24. Sensors Functions

This group contains functions to interact with sensors.

13.2.24.1. sensor_data

Returns the last captured value (or values as a map for sensors which report multiple values) from a registered sensor.

Syntaxe

sensor_data(name, [expiration])

[] indique des éléments optionnels

Arguments

  • name - the sensor name

  • expiration - maximum millisecond since last captured value allowed

Exemples

  • sensor_data('geiger_1') → “2000”

13.2.25. Fonctions de Chaîne

Ce groupe contient des fonctions qui opèrent sur des chaînes (par ex. qui remplace, convertit en majuscule).

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

13.2.25.2. char

Renvoie le caractère associé à un code Unicode.

Syntaxe

char(code)

Arguments

  • code - un code Unicode

Exemples

  • char(81) → “Q”

13.2.25.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 : ||, +

13.2.25.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”

13.2.25.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 ou A

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

    ap ou a

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

  • language - langue (minuscule, deux ou trois lettres, code de langue ISO 639) utilisée pour convertir la date en chaîne de caractères. Par défaut, QGIS utilise les paramètres de langue définis par l’utilisateur.

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') → “Mardi”, si la langue paramétrée est dérivée du Français

  • 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”

13.2.25.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], [omit_group_separators=false], [trim_trailing_zeroes=false])

[] 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.

  • omit_group_separators - if set to true then group separators will not be included in the string

  • trim_trailing_zeroes - if set to true then trailing zeros following the decimal point will be trimmed from the string

Exemples

  • format_number(10000000.332,2) → “10 000 000.33” si la langue actuelle est paramétrée sur une variante du Français

  • format_number(10000000.332,2,'fr') → “10 000 000,33”

13.2.25.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”

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

13.2.25.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”

13.2.25.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”

13.2.25.11. ltrim

Removes the longest string containing only the specified characters (a space by default) from the start of string.

Syntaxe

ltrim(string, [characters=” “])

[] indique des éléments optionnels

Arguments

  • string - la chaîne de caractères à nettoyer

  • characters - characters to trim

Exemples

  • ltrim('   hello world  ') → “hello world “

  • ltrim('zzzytest', 'xyz') → “test”

Plus de détails : rtrim, trim

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

13.2.25.13. 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”

13.2.25.14. 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”

13.2.25.15. 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”

13.2.25.17. 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”

13.2.25.18. rtrim

Removes the longest string containing only the specified characters (a space by default) from the end of string.

Syntaxe

rtrim(string, [characters=” “])

[] indique des éléments optionnels

Arguments

  • string - la chaîne de caractères à nettoyer

  • characters - characters to trim

Exemples

  • rtrim('   hello world  ') → “ hello world”

  • rtrim('testxxzx', 'xyz') → “test”

Plus de détails : ltrim, trim

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

13.2.25.20. 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”

13.2.25.21. 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”

13.2.25.22. 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”

13.2.25.23. 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('   bonjour monde  ') → “bonjour monde”

Plus de détails : ltrim, rtrim

13.2.25.24. 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”

13.2.25.25. 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”

13.2.26. Expressions de l’utilisateur

Ce groupe contient les expressions enregistrées sous le nom de user expressions

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

feature

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.

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

La géométrie de l’entité actuellement en cours d’évaluation

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

id

L’ID de l’entité actuellement en cours d’évaluation

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

L’ID de l’autorité du Système de Coordonnées de Référence de la couche actuelle

layer_crs_ellipsoid

The ellipsoid Authority ID of the current layer CRS

layer_cursor_point

Point geometry under the mouse position in map canvas, in active layer’s CRS

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

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_frame

The frame number (for animated symbols only)

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'
      )
    )
    

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