14.3. Lista delle funzioni

Sono elencate di seguito le funzioni, gli operatori e le variabili disponibili in QGIS , raggruppate per categorie.

14.3.1. Funzioni di Aggregazione

Questo gruppo contiene funzioni che aggregano valori su layer e campi

14.3.1.1. aggregate

Restituisce un valore aggregato calcolato utilizzando elementi da un altro layer.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • layer - una stringa, che rappresenta o il nome di un layer o l’ID di un layer

  • aggregate - una stringa corrispondente al complesso da calcolare. Le opzioni valide sono:

    • count

    • count_distinct

    • count_missing

    • min

    • max

    • sum

    • mean

    • median

    • stdev

    • stdevsample

    • range

    • minority

    • majority

    • q1: primo quartile

    • q3: terzo quartile

    • iqr: intervallo interquartile

    • min_length: lunghezza minima stringa

    • max_length: lunghezza massima stringa

    • concatenate: unisce stringhe tramite un concatenamento

    • concatenate_unique: unisce stringhe univoche tramite un concatenamento

    • collect: crea una geometria multi parte aggregata

    • array_agg: crea un array di valori aggregati

  • expression - sub espressione o nome del campo da aggregare

  • filter - un filtro opzionale per limitare gli elementi utilizzati per il calcolo dell’aggregato. I campi e la geometria provengono dagli elementi del layer unito. Si può accedere all’elemento di origine con la variabile @parent.

  • concatenator - stringa opzionale da usare per unire i valori per “concatenare” in modo aggregato

  • order_by - filtro opzionale per ordinare gli elementi utilizzati per il calcolo dell’aggregato. I campi e la geometria provengono dagli elementi del layer unito. Per impostazione predefinita, gli elementi saranno restituiti in un ordine non specificato.

Esempi

  • aggregate(layer:='rail_stations',aggregate:='sum',expression:="passengers") → somma di tutti i valori del campo passengers nel layer rail_stations

  • aggregate('rail_stations','sum', "passengers"/7) → calcola una media giornaliera di «passengers» dividendo il campo «passengers» per 7 prima di sommare i valori

  • aggregate(layer:='rail_stations',aggregate:='sum',expression:="passengers",filter:="class">3) → somma tutti i valori del campo «passeggeri» dagli elementi in cui l’attributo «classe» è maggiore di 3

  • aggregate(layer:='rail_stations',aggregate:='concatenate', expression:="name", concatenator:=',') → elenco separato da virgole del campo nome per tutti gli elementi nel layer rail_stations

  • aggregate(layer:='countries', aggregate:='max', expression:="code", filter:=intersects( $geometry, geometry(@parent) ) → Il codice paese di un paese in intersezione sul layer “countries”

  • aggregate(layer:='rail_stations',aggregate:='sum',expression:="passengers",filter:=contains( @atlas_geometry, $geometry ) → somma di tutti i valori del campo passengers in rail_stations all’interno dell’elemento corrente dell’atlante

  • aggregate(layer:='rail_stations', aggregate:='collect', expression:=centroid($geometry), filter:="region_name" = attribute(@parent,'name') ) → aggrega i centroidi delle geometrie delle rail_stations della stessa regione dell’elemento corrente

14.3.1.2. array_agg

Restituisce un array di valori aggregati da un campo o un’espressione.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

  • group_by - espressione opzionale da usare per raggruppare i risultati dei calcoli

  • filtro - espressione opzionale da usare per filtrare gli elementi da selezionare per calcolare l’aggregato

  • order_by - espressione opzionale da usare per ordinare gli elementi da usare per calcolare l’aggregato. Per impostazione predefinita, gli elementi saranno restituiti in un ordine non specificato.

Esempi

  • array_agg("name",group_by:="state") → lista di nome, raggruppati per condizione campo

14.3.1.3. collect

Restituisce la geometria a parti multiple di geometrie aggregate da una espressione

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • espression - espressione geometrica di aggregazione

  • group_by - espressione opzionale da usare per raggruppare i risultati dei calcoli

  • filtro - espressione opzionale da usare per filtrare gli elementi da selezionare per calcolare l’aggregato

Esempi

  • collect( $geometry ) → geometria multiparte di geometrie aggregate

  • collect( centroid($geometry), group_by:="region", filter:= "use" = 'civilian' ) → centroidi aggregati degli elementi civili in base al loro valore regionale

14.3.1.4. concatenate

Restituisce tutte le stringhe aggregate da un campo o un’espressione unite da un separatore.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

  • group_by - espressione opzionale da usare per raggruppare i risultati dei calcoli

  • filtro - espressione opzionale da usare per filtrare gli elementi da selezionare per calcolare l’aggregato

  • concatenator - stringa opzionale da usare per unire i valori. Vuoto per impostazione predefinita.

  • order_by - espressione opzionale da usare per ordinare gli elementi da usare per calcolare l’aggregato. Per impostazione predefinita, gli elementi saranno restituiti in un ordine non specificato.

Esempi

  • concatenate("town_name",group_by:="state",concatenator:=',') → lista separata da virgole di town_names, raggruppati per campo state

14.3.1.5. concatenate_unique

Restituisce tutte le stringhe univoche di un campo o di un’espressione unite da un delimitatore.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

  • group_by - espressione opzionale da usare per raggruppare i risultati dei calcoli

  • filtro - espressione opzionale da usare per filtrare gli elementi da selezionare per calcolare l’aggregato

  • concatenator - stringa opzionale da usare per unire i valori. Vuoto per impostazione predefinita.

  • order_by - espressione opzionale da usare per ordinare gli elementi da usare per calcolare l’aggregato. Per impostazione predefinita, gli elementi saranno restituiti in un ordine non specificato.

Esempi

  • concatenate_unique("town_name",group_by:="state",concatenator:=',') → lista separata da virgole di town_name distinti, raggruppati per campo state

14.3.1.6. count

Restituisce il conteggio gli elementi che coincidono.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

  • group_by - espressione opzionale da usare per raggruppare i risultati dei calcoli

  • filtro - espressione opzionale da usare per filtrare gli elementi da selezionare per calcolare l’aggregato

Esempi

  • count("stazions",group_by:="state") → conteggio delle stazions, raggruppate per campo state

14.3.1.7. count_distinct

Restituisce il numero di valori distinti.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

  • group_by - espressione opzionale da usare per raggruppare i risultati dei calcoli

  • filtro - espressione opzionale da usare per filtrare gli elementi da selezionare per calcolare l’aggregato

Esempi

  • count_distinct("stations",group_by:="state") → conteggio dei valori distinti delle stations, raggruppati per campo state

14.3.1.8. count_missing

Restituisce il numero di valori nulli (NULL).

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

  • group_by - espressione opzionale da usare per raggruppare i risultati dei calcoli

  • filtro - espressione opzionale da usare per filtrare gli elementi da selezionare per calcolare l’aggregato

Esempi

  • count_missing("stations",group_by:="state") → conteggio dei valori mancanti (NULL) delle stations, raggruppati per campo state

14.3.1.9. iqr

Restituisce l’intervallo inter quartile calcolato da un campo o un’espressione.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

  • group_by - espressione opzionale da usare per raggruppare i risultati dei calcoli

  • filtro - espressione opzionale da usare per filtrare gli elementi da selezionare per calcolare l’aggregato

Esempi

  • iqr("population",group_by:="state") → intervallo inter quartile del valore population, raggruppato per campo state

14.3.1.10. majority

Restituisce la maggioranza aggregata dei valori (il valore più comunemente presente) di un campo o di un’espressione.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

  • group_by - espressione opzionale da usare per raggruppare i risultati dei calcoli

  • filtro - espressione opzionale da usare per filtrare gli elementi da selezionare per calcolare l’aggregato

Esempi

  • majority("class",group_by:="state") → valore di class più frequente, raggruppato per campo state

14.3.1.11. max_length

Restituisce la lunghezza massima delle stringhe di un campo o di un’espressione.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

  • group_by - espressione opzionale da usare per raggruppare i risultati dei calcoli

  • filtro - espressione opzionale da usare per filtrare gli elementi da selezionare per calcolare l’aggregato

Esempi

  • max_length("town_name",group_by:="state") → lunghezza massima del town_name, raggruppato per il campo state

14.3.1.12. maximum

Restituisce il valore massimo aggregato di un campo o di un’espressione.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

  • group_by - espressione opzionale da usare per raggruppare i risultati dei calcoli

  • filtro - espressione opzionale da usare per filtrare gli elementi da selezionare per calcolare l’aggregato

Esempi

  • maximum("population",group_by:="state") → valore massimo di population, raggruppato per campo state

14.3.1.13. mean

Restituisce il valore medio aggregato di un campo o di un’espressione.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

  • group_by - espressione opzionale da usare per raggruppare i risultati dei calcoli

  • filtro - espressione opzionale da usare per filtrare gli elementi da selezionare per calcolare l’aggregato

Esempi

  • mean("population",group_by:="state") → valore medio di population, raggruppato per campo state

14.3.1.14. median

Restituisce il valore della mediana aggregata di un campo o di un’espressione.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

  • group_by - espressione opzionale da usare per raggruppare i risultati dei calcoli

  • filtro - espressione opzionale da usare per filtrare gli elementi da selezionare per calcolare l’aggregato

Esempi

  • median("population",group_by:="state") → valore della mediana di population, raggruppato per campo state

14.3.1.15. min_length

Restituisce la lunghezza minima delle stringhe di un campo o di un’espressione.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

  • group_by - espressione opzionale da usare per raggruppare i risultati dei calcoli

  • filtro - espressione opzionale da usare per filtrare gli elementi da selezionare per calcolare l’aggregato

Esempi

  • min_length("town_name",group_by:="state") → lunghezza minima del town_name, raggruppato per il campo state

14.3.1.16. minimum

Restituisce il valore minimo aggregato di un campo o di un’espressione.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

  • group_by - espressione opzionale da usare per raggruppare i risultati dei calcoli

  • filtro - espressione opzionale da usare per filtrare gli elementi da selezionare per calcolare l’aggregato

Esempi

  • minimum("population",group_by:="state") → valore minimo della population, raggruppato per il campo state

14.3.1.17. minority

Restituisce la minoranza complessiva dei valori (il valore meno frequente) di un campo o di un’espressione.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

  • group_by - espressione opzionale da usare per raggruppare i risultati dei calcoli

  • filtro - espressione opzionale da usare per filtrare gli elementi da selezionare per calcolare l’aggregato

Esempi

  • minority("class",group_by:="state") → valore di class meno frequente, raggruppato per campo state

14.3.1.18. q1

Restituisce il primo quartile calcolato da un campo o un’espressione.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

  • group_by - espressione opzionale da usare per raggruppare i risultati dei calcoli

  • filtro - espressione opzionale da usare per filtrare gli elementi da selezionare per calcolare l’aggregato

Esempi

  • q1("population",group_by:="state") → primo quartile del valore della popolazione, raggruppato per il campo stato

14.3.1.19. q3

Restituisce il terzo quartile calcolato rispetto a un campo o a un’espressione.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

  • group_by - espressione opzionale da usare per raggruppare i risultati dei calcoli

  • filtro - espressione opzionale da usare per filtrare gli elementi da selezionare per calcolare l’aggregato

Esempi

  • q3("popolazione",group_by:="stato") → terzo quartile del valore della popolazione, raggruppato per il campo stato

14.3.1.20. range

Restituisce l’intervallo aggregato di valori (massimo - minimo) di un campo o di un’espressione.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

  • group_by - espressione opzionale da usare per raggruppare i risultati dei calcoli

  • filtro - espressione opzionale da usare per filtrare gli elementi da selezionare per calcolare l’aggregato

Esempi

  • range("population",group_by:="state") → gamma di valori di population, raggruppati per campo state

14.3.1.21. relation_aggregate

Restituisce un valore aggregato calcolato usando tutte gli elementi figli corrispondenti da una relazione di layer.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • relation - una stringa, che rappresenta un ID di relazione

  • aggregate - una stringa corrispondente al complesso da calcolare. Le opzioni valide sono:

    • count

    • count_distinct

    • count_missing

    • min

    • max

    • sum

    • mean

    • median

    • stdev

    • stdevsample

    • range

    • minority

    • majority

    • q1: primo quartile

    • q3: terzo quartile

    • iqr: intervallo interquartile

    • min_length: lunghezza minima stringa

    • max_length: lunghezza massima stringa

    • concatenate: unisce stringhe tramite un concatenamento

    • concatenate_unique: unisce stringhe univoche tramite un concatenamento

    • collect: crea una geometria multi parte aggregata

    • array_agg: crea un array di valori aggregati

  • expression - sub espressione o nome del campo da aggregare

  • concatenator - stringa opzionale da usare per unire i valori per “concatenare” in modo aggregato

  • order_by - espressione opzionale per ordinare gli elementi utilizzati per il calcolo dell’aggregato. I campi e la geometria provengono dagli elementi sul layer unito. Per impostazione predefinita, gli elementi saranno restituiti in un ordine non specificato.

Esempi

  • relation_aggregate(relation:='my_relation',aggregate:='mean',expression:="passengers") → valore medio di tutti gli elementi figlio corrispondenti usando la relazione “my_relation”

  • relation_aggregate('my_relation','sum', "passengers"/7) → somma del campo passengers diviso per 7 per tutti gli elementi figlio corrispondenti utilizzando la relazione “my_relation”

  • relation_aggregate('my_relation','concatenate', "towns", concatenator:=',') → elenco separato da virgole del campo towns per tutti gli elementi figli corrispondenti utilizzando la relazione “my_relation”

  • relation_aggregate('my_relation','array_agg', "id") → array del campo id di tutte gli elementi figli corrispondenti utilizzando la relazione “my_relation”

Ulteriori informazioni: Creare una relazione uno a molti o molti a molti

14.3.1.22. stdev

Restituisce il valore della deviazione standard aggregata di un campo o di un’espressione.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

  • group_by - espressione opzionale da usare per raggruppare i risultati dei calcoli

  • filtro - espressione opzionale da usare per filtrare gli elementi da selezionare per calcolare l’aggregato

Esempi

  • stdev("population",group_by:="state") → deviazione standard del valore della population, raggruppata per campo state

14.3.1.23. sum

Restituisce il valore sommato aggregato di un campo o di un’espressione.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

  • group_by - espressione opzionale da usare per raggruppare i risultati dei calcoli

  • filtro - espressione opzionale da usare per filtrare gli elementi da selezionare per calcolare l’aggregato

Esempi

  • sum("population",group_by:="state") → valore somma della population, raggruppato per il campo state

14.3.2. Funzioni Array

Questo gruppo contiene funzioni per la creazione e la manipolazione di array (noti anche come strutture dati ad elenco). L’ordine dei valori all’interno dell’array è importante, al contrario della “map” data structure, in cui l’ordine delle coppie chiave-valore è irrilevante e i valori vengono identificati dalle loro chiavi.

14.3.2.1. array

Restituisce un array contenente tutti i valori passati come parametro.

Sintassi

array(value1, value2, …)

Argomenti

  • value - un valore

Esempi

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

14.3.2.2. array_all

Restituisce vero se un array contiene tutti i valori di un dato array.

Sintassi

array_all(array_a, array_b)

Argomenti

  • array_a - un array

  • array_b - l’array di valori da cercare

Esempi

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

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

14.3.2.3. array_append

Restituisce un array con il valore dato aggiunto alla fine.

Sintassi

array_append(array, value)

Argomenti

  • array - un array

  • value - il valore da aggiungere

Esempi

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

14.3.2.4. array_cat

Restituisce un array contenente tutti gli array dati concatenati.

Sintassi

array_cat(array1, array2, …)

Argomenti

  • array - un array

Esempi

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

14.3.2.5. array_contains

Restituisce vero se un array contiene il valore dato.

Sintassi

array_contains(array, value)

Argomenti

  • array - un array

  • value - il valore da cercare

Esempi

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

14.3.2.6. array_distinct

Restituisce un array contenente valori distinti dell’array dato.

Sintassi

array_distinct(array)

Argomenti

  • array - un array

Esempi

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

14.3.2.7. array_filter

Restituisce un array con solo gli elementi per i quali l’espressione valuta true.

Sintassi

array_filter(array, expression)

Argomenti

  • array - un array

  • espression - un’espressione che deve essere applicata ad ogni elemento. La variabile @element sarà sostituita dal valore corrente.

Esempi

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

14.3.2.8. array_find

Restituisce l’indice (0 per il primo elemento) di un valore all’interno di un array. Restiuisce -1 se il valore non viene trovato

Sintassi

array_find(array, value)

Argomenti

  • array - un array

  • value - il valore da cercare

Esempi

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

14.3.2.9. array_first

Restituisce il primo valore di un array.

Sintassi

array_first(array)

Argomenti

  • array - un array

Esempi

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

14.3.2.10. array_foreach

Restituisce un array con l’espressione data valutata su ogni elemento.

Sintassi

array_foreach(array, expression)

Argomenti

  • array - un array

  • espression - un’espressione che deve essere applicata ad ogni elemento. La variabile @element sarà sostituita dal valore corrente.

Esempi

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

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

14.3.2.11. array_get

Restituisce l’ennesimo valore (partendo da 0 per il primo) di una matrice.

Sintassi

array_get(array, index)

Argomenti

  • array - un array

  • index - l’indice da ottenere ( in base 0)

Esempi

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

14.3.2.12. array_insert

Restituisce un array con il valore dato aggiunto nella posizione data.

Sintassi

array_insert(array, pos, value)

Argomenti

  • array - un array

  • pos - la posizione dove aggiungere (in base 0)

  • value - il valore da aggiungere

Esempi

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

14.3.2.13. array_intersect

Restituisce true se almeno un elemento di array1 esiste in array2.

Sintassi

array_intersect(array1, array2)

Argomenti

  • array1 - un array

  • array2 - un altro array

Esempi

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

14.3.2.14. array_last

Restituisce l’ultimo valore di un array.

Sintassi

array_last(array)

Argomenti

  • array - un array

Esempi

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

14.3.2.15. array_length

Restituisce il numero di elementi di un array.

Sintassi

array_length(array)

Argomenti

  • array - un array

Esempi

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

14.3.2.16. array_prepend

Restituisce un array con il valore dato aggiunto all’inizio.

Sintassi

array_prepend(array, value)

Argomenti

  • array - un array

  • value - il valore da aggiungere

Esempi

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

14.3.2.17. array_remove_all

Restituisce un array con tutte le voci del valore dato rimosse.

Sintassi

array_remove_all(array, value)

Argomenti

  • array - un array

  • value - i valori da rimuovere

Esempi

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

14.3.2.18. array_remove_at

Restituisce un array con l’indice dato rimosso.

Sintassi

array_remove_at(array, pos)

Argomenti

  • array - un array

  • pos - la posizione da rimuovere ( in base 0)

Esempi

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

14.3.2.19. array_reverse

Restituisce l’array dato con i valori dell’array in ordine inverso.

Sintassi

array_reverse(array)

Argomenti

  • array - un array

Esempi

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

14.3.2.20. array_slice

Restituisce una porzione dell’array. La parte viene definita dagli argomenti start_pos e end_pos.

Sintassi

array_slice(array, start_pos, end_pos)

Argomenti

  • array - un array

  • start_pos - l’indice della posizione iniziale della stringa (basato su 0). L’indice start_pos è incluso nella stringa. Se usi uno start_pos negativo, l’indice viene contato dalla fine della lista (su base -1).

  • end_pos - l’indice della posizione finale della stringa (in base 0). L’indice end_pos è incluso nella stringa. Se usi un end_pos negativo, l’indice viene contato dalla fine della lista (su base -1).

Esempi

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

14.3.2.21. array_sort

Restituisce l’array dato con i suoi elementi ordinati.

Sintassi

array_sort(array, [ascending=true])

[] indica argomenti facoltativi

Argomenti

  • array - un array

  • ascending - impostare questo parametro su false per ordinare l’array in ordine decrescente

Esempi

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

14.3.2.22. array_to_string

Concatena gli elementi dell’array in una stringa separata da un delimitatore e usando una stringa opzionale per i valori vuoti.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • array - l’array in ingresso

  • delimiter - il delimitatore di stringa usato per separare gli elementi concatenati dell’array

  • empty_value - la stringa opzionale da usare come sostituzione per le voci vuote (lunghezza zero)

Esempi

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

14.3.2.23. generate_series

Crea un array contenente una sequenza di numeri.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • start - primo valore della sequenza

  • stop - valore che chiude la sequenza una volta completata

  • step - valore usato come incremento tra i valori

Esempi

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

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

14.3.2.24. regexp_matches

Restituisce un array di tutte le stringhe intercettate dai gruppi di intercettazione, nell’ordine in cui i gruppi stessi appaiono nell’espressione regolare fornita rispetto ad una stringa.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • string - la stringa da cui acquisire i gruppi in base all’espressione regolare

  • regex - l’espressione regolare usata per acquisire i gruppi

  • empty_value - la stringa opzionale da usare come sostituzione per le voci vuote (lunghezza zero)

Esempi

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

  • regexp_matches('key=>','(.*)=>(.*)','empty value') → [ “key”, “empty value” ]

14.3.2.25. string_to_array

Divide la stringa in un array usando il delimitatore fornito e una stringa opzionale per i valori vuoti.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • string - la stringa in ingresso

  • delimiter - il carattere usato per dividere la stringa in ingresso

  • empty_value - la stringa opzionale da usare come sostituzione per le voci vuote (lunghezza zero)

Esempi

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

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

14.3.3. Funzioni colore

Questo gruppo contiene funzioni per la manipolazione dei colori.

14.3.3.1. color_cmyk

Restituisce una rappresentazione in formato stringa di un colore in base alle componenti ciano, magenta, giallo e nero

Sintassi

color_cmyk(cyan, magenta, yellow, black)

Argomenti

  • cyan - componente ciano del colore, come valore percentuale intero da 0 a 100

  • magenta - componente magenta del colore, come valore percentuale intero da 0 a 100

  • yellow - componente giallo del colore, come valore percentuale intero da 0 a 100

  • black - componente nero del colore, come valore percentuale intero da 0 a 100

Esempi

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

14.3.3.2. color_cmyka

Restituisce una rappresentazione in formato stringa di un colore in base ai componenti ciano, magenta, giallo, nero e alfa (trasparenza)

Sintassi

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

Argomenti

  • cyan - componente ciano del colore, come valore percentuale intero da 0 a 100

  • magenta - componente magenta del colore, come valore percentuale intero da 0 a 100

  • yellow - componente giallo del colore, come valore percentuale intero da 0 a 100

  • black - componente nero del colore, come valore percentuale intero da 0 a 100

  • alpha - componente alfa come valore intero da 0 (completamente trasparente) a 255 (opaco).

Esempi

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

14.3.3.3. color_grayscale_average

Applica un filtro in scala di grigi e restituisce una rappresentazione in formato stringa da un dato colore.

Sintassi

color_grayscale_average(color)

Argomenti

  • color - un colore in formato stringa

Esempi

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

14.3.3.4. color_hsl

Restituisce una rappresentazione in formato stringa di un colore basata sui suoi attributi di tonalità, saturazione e luminosità.

Sintassi

color_hsl(hue, saturation, lightness)

Argomenti

  • hue - tinta del colore, come valore intero da 0 a 360

  • saturation - percentuale di saturazione del colore come valore intero da 0 a 100

  • lightness - percentuale di luminosità del colore come valore intero da 0 a 100

Esempi

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

14.3.3.5. color_hsla

Restituisce una rappresentazione in formato stringa di un colore in base agli attributi di tonalità, saturazione, luminosità e alfa (trasparenza)

Sintassi

color_hsla(hue, saturation, lightness, alpha)

Argomenti

  • hue - tinta del colore, come valore intero da 0 a 360

  • saturation - percentuale di saturazione del colore come valore intero da 0 a 100

  • lightness - percentuale di luminosità del colore come valore intero da 0 a 100

  • alpha - componente alfa come valore intero da 0 (completamente trasparente) a 255 (opaco).

Esempi

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

14.3.3.6. color_hsv

Restituisce una rappresentazione stringa di un colore basato sui suoi attributi di tinta, saturazione e valore.

Sintassi

color_hsv(hue, saturation, value)

Argomenti

  • hue - tinta del colore, come valore intero da 0 a 360

  • saturation - percentuale di saturazione del colore come valore intero da 0 a 100

  • value - valore percentuale del colore come un intero da 0 a 100

Esempi

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

14.3.3.7. color_hsva

Restituisce una rappresentazione stringa di un colore basato sui suoi attributi di tonalità, saturazione, valore e alfa (trasparenza).

Sintassi

color_hsva(hue, saturation, value, alpha)

Argomenti

  • hue - tinta del colore, come valore intero da 0 a 360

  • saturation - percentuale di saturazione del colore come valore intero da 0 a 100

  • value - valore percentuale del colore come un intero da 0 a 100

  • alpha - componente alfa come valore intero da 0 (completamente trasparente) a 255 (opaco)

Esempi

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

14.3.3.8. color_mix_rgb

Restituisce una stringa che rappresenta un colore che mescola i valori di rosso, verde, blu e alfa di due colori forniti sulla base di un dato rapporto.

Sintassi

color_mix_rgb(color1, color2, ratio)

Argomenti

  • color1 - un colore in formato stringa

  • color2 - un colore in formato stringa

  • ratio - un rapporto

Esempi

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

14.3.3.9. color_part

Restituisce un componente specifico da una stringa colore, ad esempio il componente rosso o il componente alfa.

Sintassi

color_part(color, component)

Argomenti

  • color - un colore in formato stringa

  • component - una stringa corrispondente al componente di colore da restituire. Le opzioni valide sono:

    • red: componente RGB rosso (0-255)

    • green: componente RGB verde (0-255)

    • blue: componente RGB blu (0-255)

    • alpha: alpha (transpareza) valore (0-255)

    • hue: HSV tonalità (0-360)

    • saturation: saturazione HSV (0-100)

    • value: valore HSV (0-100)

    • hsl_hue: HSL HUE (0-360)

    • hsl_saturation: saturazione HSL (0-100)

    • lightness: HSL lluminosità (0-100)

    • cyan: componente ciano CMYK (0-100)

    • magenta: componente magenta CMYK (0-100)

    • yellow: componente giallo CMYK (0-100)

    • black: componente nero CMYK (0-100)

Esempi

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

14.3.3.10. color_rgb

Restituisce una rappresentazione stringa di un colore basata sui suoi componenti rosso, verde e blu.

Sintassi

color_rgb(red, green, blue)

Argomenti

  • red - componente rosso come valore intero da 0 a 255

  • green - componente verde come valore intero da 0 a 255

  • blue - componente blu come valore intero da 0 a 255

Esempi

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

14.3.3.11. color_rgba

Restituisce una rappresentazione stringa di un colore basata sui suoi componenti rosso, verde, blu e alfa (trasparenza).

Sintassi

color_rgba(red, green, blue, alpha)

Argomenti

  • red - componente rosso come valore intero da 0 a 255

  • green - componente verde come valore intero da 0 a 255

  • blue - componente blu come valore intero da 0 a 255

  • alpha - componente alfa come valore intero da 0 (completamente trasparente) a 255 (opaco).

Esempi

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

14.3.3.12. create_ramp

Restituisce una scala a gradiente da una mappa di stringhe di colori e gradini.

Sintassi

create_ramp(map, [discrete=false])

[] indica argomenti facoltativi

Argomenti

  • map - una mappa di stringhe di colori e gradini.

  • discrete - imposta questo parametro su true per creare una scala di colore di tipo discontinuo

Esempi

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

14.3.3.13. darker

Restituisce una stringa di colore più scuro (o più chiaro)

Sintassi

darker(color, factor)

Argomenti

  • color - un colore in formato stringa

  • factor - un numero intero corrispondente al fattore di oscuramento:

    • se il fattore è maggiore di 100, questa funzione restituisce un colore più scuro (ad esempio, impostando il fattore a 200 si ottiene un colore che ha una luminosità pari alla metà);

    • se il fattore è inferiore a 100, il colore risultante è più chiaro, ma si raccomanda di utilizzare la funzione lighter() per questo scopo;

    • se il fattore è 0 o negativo, il valore riultante non è prevedibile.

Esempi

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

Ulteriori informazioni: lighter

14.3.3.14. lighter

Restituisce una stringa di colore più chiara (o più scura)

Sintassi

lighter(color, factor)

Argomenti

  • color - un colore in formato stringa

  • factor - un intero corrispondente al fattore di schiarimento:

    • se il fattore è maggiore di 100, questa funzione restituisce un colore più chiaro (ad esempio, impostando il fattore a 150 si ottiene un colore più chiaro del 50%);

    • se il fattore è inferiore a 100, il colore risultante è più chiaro, ma si raccomanda di utilizzare la funzione lighter() per questo scopo;

    • se il fattore è 0 o negativo, il valore riultante non è prevedibile.

Esempi

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

Ulteriori informazioni: darker

14.3.3.15. project_color

Restituisce un colore dallo schema di colori del progetto.

Sintassi

project_color(name)

Argomenti

  • name - il nome di un colore

Esempi

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

Ulteriori informazioni: setting project colors

14.3.3.16. ramp_color

Restituisce una stringa che rappresenta un colore da una scala di colori.

Variabile rampa salvata

Restituisce una stringa che rappresenta un colore da una scala salvata

Sintassi

ramp_color(ramp_name, value)

Argomenti

  • ramp_name - the name of the color ramp as a string, for example “Spectral”

  • value - the position on the ramp to select the color from as a real number between 0 and 1

Esempi

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

Nota

Le scale di colori disponibili variano tra le installazioni di QGIS. Questa funzione potrebbe non dare i risultati attesi se si sposta il progetto QGIS tra le installazioni.

Expression-created ramp variant

Returns a string representing a color from an expression-created ramp

Sintassi

ramp_color(ramp, value)

Argomenti

  • ramp - La scala di colori

  • value - the position on the ramp to select the color from as a real number between 0 and 1

Esempi

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

Ulteriori informazioni: Impostazione di una Scala di Colori, Il menu di scelta rapida scala di colori

14.3.3.17. set_color_part

Sets a specific color component for a color string, e.g., the red component or alpha component.

Sintassi

set_color_part(color, component, value)

Argomenti

  • color - un colore in formato stringa

  • component - a string corresponding to the color component to set. Valid options are:

    • red: componente RGB rosso (0-255)

    • green: componente RGB verde (0-255)

    • blue: componente RGB blu (0-255)

    • alpha: alpha (transpareza) valore (0-255)

    • hue: HSV tonalità (0-360)

    • saturation: saturazione HSV (0-100)

    • value: valore HSV (0-100)

    • hsl_hue: HSL HUE (0-360)

    • hsl_saturation: saturazione HSL (0-100)

    • lightness: HSL lluminosità (0-100)

    • cyan: componente ciano CMYK (0-100)

    • magenta: componente magenta CMYK (0-100)

    • yellow: componente giallo CMYK (0-100)

    • black: componente nero CMYK (0-100)

  • value - new value for color component, respecting the ranges listed above

Esempi

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

14.3.4. Funzioni Condizionali

Questo gruppo contiene funzioni per eseguire controlli condizionali nelle espressioni.

14.3.4.1. CASE

CASE is used to evaluate a series of conditions and return a result for the first condition met. The conditions are evaluated sequentially, and if a condition is true, the evaluation stops, and the corresponding result is returned. If none of the conditions are true, the value in the ELSE clause is returned. Furthermore, if no ELSE clause is set and none of the conditions are met, NULL is returned.

CASE

WHEN condition THEN result

[ …n ]

[ ELSE result ]

END

[ ] indica componenti opzionali

Argomenti

  • WHEN condition - A condition expression to evaluate

  • THEN result - If condition evaluates to True then result is evaluated and returned.

  • ELSE result - If none of the above conditions evaluated to True then result is evaluated and returned.

Esempi

  • CASE WHEN "name" IS NULL THEN 'None' END → Returns the string “None” if the «name» field is NULL

  • CASE WHEN $area > 10000 THEN 'Big property' WHEN $area > 5000 THEN 'Medium property' ELSE 'Small property' END → Returns the string “Big property” if the area is bigger than 10000, “Medium property” if the area is between 5000 and 10000, and “Small property” for others

14.3.4.2. coalesce

Returns the first non-NULL value from the expression list.

This function can take any number of arguments.

Sintassi

coalesce(expression1, expression2, …)

Argomenti

  • expression - any valid expression or value, regardless of type.

Esempi

  • coalesce(NULL, 2) → 2

  • coalesce(NULL, 2, 3) → 2

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

  • coalesce("fieldA", "fallbackField", 'ERROR') → value of fieldA if it is non-NULL else the value of «fallbackField» or the string “ERROR” if both are NULL

14.3.4.3. if

Tests a condition and returns a different result depending on the conditional check.

Sintassi

if(condition, result_when_true, result_when_false)

Argomenti

  • condition - the condition which should be checked

  • result_when_true - the result which will be returned when the condition is true or another value that does not convert to false.

  • result_when_false - the result which will be returned when the condition is false or another value that converts to false like 0 or “”. NULL will also be converted to false.

Esempi

  • if( 1+1=2, 'Yes', 'No' ) → “Yes”

  • if( 1+1=3, 'Yes', 'No' ) → “No”

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

  • if( '', 'It is true (not empty)', 'It is false (empty)' ) → “It is false (empty)”

  • if( ' ', 'It is true (not empty)', 'It is false (empty)' ) → “It is true (not empty)”

  • if( 0, 'One', 'Zero' ) → “Zero”

  • if( 10, 'One', 'Zero' ) → “One”

14.3.4.4. nullif

Returns a NULL value if value1 equals value2; otherwise it returns value1. This can be used to conditionally substitute values with NULL.

Sintassi

nullif(value1, value2)

Argomenti

  • value1 - The value that should either be used or substituted with NULL.

  • value2 - The control value that will trigger the NULL substitution.

Esempi

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

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

  • nullif("name", '') → NULL, if name is an empty string (or already NULL), the name in any other case.

14.3.4.5. regexp_match

Return the first matching position matching a regular expression within an unicode string, or 0 if the substring is not found.

Sintassi

regexp_match(input_string, regex)

Argomenti

  • input_string - the string to test against the regular expression

  • regex - The regular expression to test against. Backslash characters must be double escaped (e.g., «\\s» to match a white space character or «\\b» to match a word boundary).

Esempi

  • regexp_match('QGIS ROCKS','\\sROCKS') → 5

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

14.3.4.6. try

Tries an expression and returns its value if error-free. If the expression returns an error, an alternative value will be returned when provided otherwise the function will return NULL.

Sintassi

try(expression, [alternative])

[] indica argomenti facoltativi

Argomenti

  • expression - the expression which should be run

  • alternative - the result which will be returned if the expression returns an error.

Esempi

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

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

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

14.3.5. Funzioni di conversione

This group contains functions to convert one data type to another (e.g., string from/to integer, binary from/to string, string to date, …).

14.3.5.1. from_base64

Decodes a string in the Base64 encoding into a binary value.

Sintassi

from_base64(string)

Argomenti

  • string - the string to decode

Esempi

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

14.3.5.2. hash

Creates a hash from a string with a given method. One byte (8 bits) is represented with two hex “”digits””, so “md4” (16 bytes) produces a 16 * 2 = 32 character long hex string and “keccak_512” (64 bytes) produces a 64 * 2 = 128 character long hex string.

Sintassi

hash(string, method)

Argomenti

  • string - the string to hash

  • method - The hash method among “md4”, “md5”, “sha1”, “sha224”, “sha384”, “sha512”, “sha3_224”, “sha3_256”, “sha3_384”, “sha3_512”, “keccak_224”, “keccak_256”, “keccak_384”, “keccak_512”

Esempi

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

14.3.5.3. md5

Creates a md5 hash from a string.

Sintassi

md5(string)

Argomenti

  • string - the string to hash

Esempi

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

14.3.5.4. sha256

Creates a sha256 hash from a string.

Sintassi

sha256(string)

Argomenti

  • string - the string to hash

Esempi

  • sha256('QGIS') → “eb045cba7a797aaa06ac58830846e40c8e8c780bc0676d3393605fae50c05309”

14.3.5.5. to_base64

Encodes a binary value into a string, using the Base64 encoding.

Sintassi

to_base64(value)

Argomenti

  • value - the binary value to encode

Esempi

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

14.3.5.6. to_date

Converts a string into a date object. An optional format string can be provided to parse the string; see QDate::fromString for additional documentation on the format.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • string - string representing a date value

  • format - format used to convert the string into a date

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to convert the string into a date

Esempi

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

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

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

14.3.5.7. to_datetime

Converts a string into a datetime object. An optional format string can be provided to parse the string; see QDate::fromString and QTime::fromString for additional documentation on the format.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • string - string representing a datetime value

  • format - format used to convert the string into a datetime

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to convert the string into a datetime

Esempi

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

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

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

14.3.5.8. to_decimal

Converts a degree, minute, second coordinate to its decimal equivalent.

Sintassi

to_decimal(value)

Argomenti

  • value - A degree, minute, second string.

Esempi

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

14.3.5.9. to_dm

Converts a coordinate to degree, minute.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • coordinate - A latitude or longitude value.

  • axis - The axis of the coordinate. Either “x” or “y”.

  • precision - Numero di decimali.

  • formatting - Designates the formatting type. Acceptable values are NULL (default), “aligned” or “suffix”.

Esempi

  • 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

14.3.5.10. to_dms

Converts a coordinate to degree, minute, second.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • coordinate - A latitude or longitude value.

  • axis - The axis of the coordinate. Either “x” or “y”.

  • precision - Numero di decimali.

  • formatting - Designates the formatting type. Acceptable values are NULL (default), “aligned” or “suffix”.

Esempi

  • 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

14.3.5.11. to_int

Converts a string to integer number. Nothing is returned if a value cannot be converted to integer (e.g “123asd” is invalid).

Sintassi

to_int(string)

Argomenti

  • string - stringa da convertire a numero intero

Esempi

  • to_int('123') → 123

14.3.5.12. to_interval

Converts a string to an interval type. Can be used to take days, hours, month, etc of a date.

Sintassi

to_interval(string)

Argomenti

  • string - a string representing an interval. Allowable formats include {n} days {n} hours {n} months.

Esempi

  • to_interval('1 day 2 hours') → intervallo: 1,08333 giorni

  • to_interval( '0.5 hours' ) → intervallo: 30 minuti

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

14.3.5.13. to_real

Converts a string to a real number. Nothing is returned if a value cannot be converted to real (e.g “123.56asd” is invalid). Numbers are rounded after saving changes if the precision is smaller than the result of the conversion.

Sintassi

to_real(string)

Argomenti

  • string - stringa da convertire a numero reale

Esempi

  • to_real('123.45') → 123.45

14.3.5.14. to_string

Converte un numero in stringa.

Sintassi

to_string(number)

Argomenti

  • number - Numero intero o numero reale. Il numero da convertire a stringa.

Esempi

  • to_string(123) → “123”

14.3.5.15. to_time

Converts a string into a time object. An optional format string can be provided to parse the string; see QTime::fromString for additional documentation on the format.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • string - string representing a time value

  • format - format used to convert the string into a time

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to convert the string into a time

Esempi

  • 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

14.3.6. Funzioni personalizzate

Questo gruppo contiene funzioni create dall’utente. Vedi Editor delle Funzioni per maggiori dettagli.

14.3.7. Funzioni di data e ora

This group contains functions for handling date and time data. This group shares several functions with the Funzioni di conversione (to_date, to_time, to_datetime, to_interval) and Funzioni Stringa (format_date) groups.

Nota

Storing date, datetime and intervals on fields

The ability to store date, time and datetime values directly on fields depends on the data source’s provider (e.g., Shapefile accepts date format, but not datetime or time format). The following are some suggestions to overcome this limitation:

  • date, datetime and time can be converted and stored in text type fields using the format_date() function.

  • Intervals can be stored in integer or decimal type fields after using one of the date extraction functions (e.g., day() to get the interval expressed in days)

14.3.7.1. age

Returns the difference between two dates or datetimes.

The difference is returned as an Interval and needs to be used with one of the following functions in order to extract useful information:

  • year

  • month

  • week

  • day

  • hour

  • minute

  • second

Sintassi

age(datetime1, datetime2)

Argomenti

  • datetime1 - a string, date or datetime representing the later date

  • datetime2 - a string, date or datetime representing the earlier date

Esempi

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

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

14.3.7.2. datetime_from_epoch

Returns a datetime whose date and time are the number of milliseconds, msecs, that have passed since 1970-01-01T00:00:00.000, Coordinated Universal Time (Qt.UTC), and converted to Qt.LocalTime.

Sintassi

datetime_from_epoch(int)

Argomenti

  • int - numero (millisecondi)

Esempi

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

14.3.7.3. day

Extracts the day from a date, or the number of days from an interval.

Date variant

Extracts the day from a date or datetime.

Sintassi

day(date)

Argomenti

  • date - a date or datetime value

Esempi

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

Interval variant

Calculates the length in days of an interval.

Sintassi

day(interval)

Argomenti

  • interval - interval value to return number of days from

Esempi

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

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

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

14.3.7.4. day_of_week

Returns the day of the week for a specified date or datetime. The returned value ranges from 0 to 6, where 0 corresponds to a Sunday and 6 to a Saturday.

Sintassi

day_of_week(date)

Argomenti

  • date - date or datetime value

Esempi

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

14.3.7.5. epoch

Returns the interval in milliseconds between the unix epoch and a given date value.

Sintassi

epoch(date)

Argomenti

  • date - a date or datetime value

Esempi

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

14.3.7.6. format_date

Formats a date type or string into a custom string format. Uses Qt date/time format strings. See QDateTime::toString.

Sintassi

format_date(datetime, format, [language])

[] indica argomenti facoltativi

Argomenti

  • datetime - date, time or datetime value

  • format - String template used to format the string.

    Expression

    Output

    d

    il giorno come numero senza zero iniziale (da 1 a 31)

    dd

    il giorno come numero con uno zero iniziale (da 01 a 31)

    ddd

    il nome abbreviato del giorno nella lingua locale (ad esempio, da “Mon” a “Sun”)

    dddd

    il nome non abbreviato del giorno nella lingua locale (ad esempio, da “lunedì” a “domenica”)

    M

    il mese come numero non preceduto da zero (1-12)

    MM

    il mese come numero preceduto da zero (01-12)

    MMM

    the abbreviated localized month name (e.g. “Jan” to “Dec”)

    MMMM

    il nome completo del mese (ad esempio, da “gennaio” a “dicembre”)

    yy

    l’anno come numero a due cifre (00-99)

    yyyy

    l’anno come numero a quattro cifre

    These expressions may be used for the time part of the format string:

    Expression

    Output

    h

    the hour without a leading zero (0 to 23 or 1 to 12 if AM/PM display)

    hh

    the hour with a leading zero (00 to 23 or 01 to 12 if AM/PM display)

    H

    the hour without a leading zero (0 to 23, even with AM/PM display)

    HH

    the hour with a leading zero (00 to 23, even with AM/PM display)

    m

    the minute without a leading zero (0 to 59)

    mm

    the minute with a leading zero (00 to 59)

    s

    the second without a leading zero (0 to 59)

    ss

    the second with a leading zero (00 to 59)

    z

    the milliseconds without trailing zeroes (0 to 999)

    zzz

    the milliseconds with trailing zeroes (000 to 999)

    AP or A

    interpret as an AM/PM time. AP must be either “AM” or “PM”.

    ap or a

    Interpret as an AM/PM time. ap must be either “am” or “pm”.

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to format the date into a custom string

Esempi

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

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

  • format_date('2012-05-15','dddd') → “Tuesday”

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

14.3.7.7. hour

Extracts the hour part from a datetime or time, or the number of hours from an interval.

Time variant

Extracts the hour part from a time or datetime.

Sintassi

hour(datetime)

Argomenti

  • datetime - a time or datetime value

Esempi

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

Interval variant

Calcola la lunghezza in ore di un intervallo.

Sintassi

hour(interval)

Argomenti

  • interval - valore in numero di ore dell’intervallo

Esempi

  • 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

14.3.7.8. make_date

Creates a date value from year, month and day numbers.

Sintassi

make_date(year, month, day)

Argomenti

  • year - Year number. Years 1 to 99 are interpreted as is. Year 0 is invalid.

  • month - Month number, where 1=January

  • day - Day number, beginning with 1 for the first day in the month

Esempi

  • make_date(2020,5,4) → valore data 2020-05-04

14.3.7.9. make_datetime

Creates a datetime value from year, month, day, hour, minute and second numbers.

Sintassi

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

Argomenti

  • year - Year number. Years 1 to 99 are interpreted as is. Year 0 is invalid.

  • month - Month number, where 1=January

  • day - Day number, beginning with 1 for the first day in the month

  • hour - Ora

  • minute - Minuti

  • second - Secondi (i valori frazionari includono i millisecondi)

Esempi

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

14.3.7.10. make_interval

Crea un valore di intervallo dai valori di anno, mese, settimane, giorni, ore, minuti e secondi.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • years - Numero di anni (presuppone un anno di 365,25 giorni).

  • months - Numero di mesi (presuppone un mese di 30 giorni)

  • weeks - Numero di settimane

  • days - Numero di giorni

  • hours - Numero di ore

  • minutes - Numero di minuti

  • seconds - Numero di secondi

Esempi

  • make_interval(hours:=3) → intervallo: 3 ore

  • make_interval(days:=2, hours:=3) → intervallo: 2,125 giorni

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

14.3.7.11. make_time

Crea un valore temporale dai numeri di ore, minuti e secondi.

Sintassi

make_time(hour, minute, second)

Argomenti

  • hour - Ora

  • minute - Minuti

  • second - Secondi (i valori frazionari includono i millisecondi)

Esempi

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

14.3.7.12. minute

Estrae la parte dei minuti da un datetime o da un orario, o il numero di minuti da un intervallo.

Time variant

Estrae la parte dei minuti da un tempo o da una data.

Sintassi

minute(datetime)

Argomenti

  • datetime - a time or datetime value

Esempi

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

Interval variant

Calcola la lunghezza in minuti di un intervallo.

Sintassi

minute(interval)

Argomenti

  • interval - valore di intervallo calcolato in minuti

Esempi

  • 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

14.3.7.13. month

Estrae la parte di mese da una data, o il numero di mesi da un intervallo.

Date variant

Estrae la parte del mese da una data o datetime.

Sintassi

month(date)

Argomenti

  • date - a date or datetime value

Esempi

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

Interval variant

Calcola la lunghezza in mesi di un intervallo.

Sintassi

month(interval)

Argomenti

  • interval - valore dell’intervallo per restituire il numero di mesi

Esempi

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

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

14.3.7.14. now

Returns the current date and time. The function is static and will return consistent results while evaluating. The time returned is the time when the expression is prepared.

Sintassi

now()

Esempi

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

14.3.7.15. second

Extracts the seconds part from a datetime or time, or the number of seconds from an interval.

Time variant

Extracts the seconds part from a time or datetime.

Sintassi

second(datetime)

Argomenti

  • datetime - a time or datetime value

Esempi

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

Interval variant

Calculates the length in seconds of an interval.

Sintassi

second(interval)

Argomenti

  • interval - interval value to return number of seconds from

Esempi

  • 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

14.3.7.16. to_date

Converts a string into a date object. An optional format string can be provided to parse the string; see QDate::fromString for additional documentation on the format.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • string - string representing a date value

  • format - format used to convert the string into a date

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to convert the string into a date

Esempi

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

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

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

14.3.7.17. to_datetime

Converts a string into a datetime object. An optional format string can be provided to parse the string; see QDate::fromString and QTime::fromString for additional documentation on the format.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • string - string representing a datetime value

  • format - format used to convert the string into a datetime

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to convert the string into a datetime

Esempi

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

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

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

14.3.7.18. to_interval

Converts a string to an interval type. Can be used to take days, hours, month, etc of a date.

Sintassi

to_interval(string)

Argomenti

  • string - a string representing an interval. Allowable formats include {n} days {n} hours {n} months.

Esempi

  • to_interval('1 day 2 hours') → intervallo: 1,08333 giorni

  • to_interval( '0.5 hours' ) → intervallo: 30 minuti

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

14.3.7.19. to_time

Converts a string into a time object. An optional format string can be provided to parse the string; see QTime::fromString for additional documentation on the format.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • string - string representing a time value

  • format - format used to convert the string into a time

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to convert the string into a time

Esempi

  • 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

14.3.7.20. week

Extracts the week number from a date, or the number of weeks from an interval.

Date variant

Extracts the week number from a date or datetime.

Sintassi

week(date)

Argomenti

  • date - a date or datetime value

Esempi

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

Interval variant

Calcola la lunghezza in settimane di un intervallo.

Sintassi

week(interval)

Argomenti

  • interval - valore dell’intervallo per restituire il numero di mesi

Esempi

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

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

14.3.7.21. year

Extracts the year part from a date, or the number of years from an interval.

Date variant

Extracts the year part from a date or datetime.

Sintassi

year(date)

Argomenti

  • date - a date or datetime value

Esempi

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

Interval variant

Calcola la lunghezza in anni di un intervallo.

Sintassi

year(interval)

Argomenti

  • interval - interval value to return number of years from

Esempi

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

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

Alcuni esempi:

Oltre a queste funzioni, le differenze di data, i tempi o le ore che usano l’operatore `` -`` (meno) restituiscono un intervallo.

Aggiungendo o sottraendo un intervallo a date, datetime o tempi, usando gli operatori + (più) e - (meno), restituisce un datetime.

  • Fino alla versione di QGIS 3.0 dà il numero di giorni:

    to_date('2017-09-29') - to_date(now())
    -- Returns <interval: 203 days>
    
  • Lo stesso con time:

    to_datetime('2017-09-29 12:00:00') - now()
    -- Returns <interval: 202.49 days>
    
  • Ottieni il tempo di 100 giorni a partire da adesso:

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

14.3.8. Campi e Valori

Contiene la lista dei campi di un layer.

Fai doppio clic sul nome di un campo per aggiungerlo all’espressione. Puoi anche digitare il nome del campo (preferibilmente all’interno di virgolette doppie) o il suo alias.

Per recuperare i valori dei campi da utilizzare in un’espressione, seleziona il campo appropriato e, nel widget mostrato, scegli tra 10 Samples e All Unique. I valori richiesti vengono quindi visualizzati e puoi utilizzare la casella Search nella parte superiore dell’elenco per filtrare il risultato. I valori dei campioni sono accessibili anche facendo clic con il tasto destro del mouse su un campo.

Per aggiungere un valore all’espressione che stai scrivendo, fai doppio clic su di essa nell’elenco. Se il valore è di tipo stringa, dovrebbe essere tra virgolette semplici, altrimenti non è necessaria alcuna virgoletta.

14.3.9. Funzioni per i File e i Percorsi

Questo gruppo contiene funzioni che manipolano i nomi dei file e dei percorsi.

14.3.9.1. base_file_name

Returns the base name of the file without the directory or file suffix.

Sintassi

base_file_name(path)

Argomenti

  • path - un persorso di un file

Esempi

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

14.3.9.2. file_exists

Restituisce true se un percorso di file esiste.

Sintassi

file_exists(path)

Argomenti

  • path - un persorso di un file

Esempi

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

14.3.9.3. file_name

Restituisce il nome di un file (compresa l’estensione del file), escludendo la cartella.

Sintassi

file_name(path)

Argomenti

  • path - un persorso di un file

Esempi

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

14.3.9.4. file_path

Restituisce il componente cartella di un percorso di file. Non include il nome del file.

Sintassi

file_path(path)

Argomenti

  • path - un persorso di un file

Esempi

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

14.3.9.5. file_size

Restituisce la dimensione (in byte) di un file.

Sintassi

file_size(path)

Argomenti

  • path - un persorso di un file

Esempi

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

14.3.9.6. file_suffix

Restituisce il suffisso del file (estensione) da un percorso di file.

Sintassi

file_suffix(path)

Argomenti

  • path - un persorso di un file

Esempi

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

14.3.9.7. is_directory

Restituisce true se un percorso corrisponde a una cartella.

Sintassi

is_directory(path)

Argomenti

  • path - un persorso di un file

Esempi

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

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

14.3.9.8. is_file

Restituisce true se un percorso corrisponde a un file.

Sintassi

is_file(path)

Argomenti

  • path - un persorso di un file

Esempi

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

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

14.3.10. Form Functions

This group contains functions that operate exclusively under the attribute form context. For example, in field’s widgets settings.

14.3.10.1. current_parent_value

Only usable in an embedded form context, this function returns the current, unsaved value of a field in the parent form currently being edited. This will differ from the parent feature’s actual attribute values for features which are currently being edited or have not yet been added to a parent layer. When used in a value-relation widget filter expression, this function should be wrapped into a “coalesce()” that can retrieve the actual parent feature from the layer when the form is not used in an embedded context.

Sintassi

current_parent_value(field_name)

Argomenti

  • field_name - a field name in the current parent form

Esempi

  • current_parent_value( 'FIELD_NAME' ) → The current value of a field “FIELD_NAME” in the parent form.

14.3.10.2. current_value

Returns the current, unsaved value of a field in the form or table row currently being edited. This will differ from the feature’s actual attribute values for features which are currently being edited or have not yet been added to a layer.

Sintassi

current_value(field_name)

Argomenti

  • field_name - un nome di campo nel modulo o nella riga della tabella attuale

Esempi

  • current_value( 'FIELD_NAME' ) → Il valore attuale del campo “FIELD_NAME”.

14.3.11. Funzioni varie di confronto

Questo gruppo contiene funzioni per confronti vari tra valori.

14.3.11.1. hamming_distance

Returns the Hamming distance between two strings. This equates to the number of characters at corresponding positions within the input strings where the characters are different. The input strings must be the same length, and the comparison is case-sensitive.

Sintassi

hamming_distance(string1, string2)

Argomenti

  • string1 - una stringa

  • string2 - una stringa

Esempi

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

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

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

14.3.11.2. levenshtein

Returns the Levenshtein edit distance between two strings. This equates to the minimum number of character edits (insertions, deletions or substitutions) required to change one string to another.

The Levenshtein distance is a measure of the similarity between two strings. Smaller distances mean the strings are more similar, and larger distances indicate more different strings. The distance is case sensitive.

Sintassi

levenshtein(string1, string2)

Argomenti

  • string1 - una stringa

  • string2 - una stringa

Esempi

  • levenshtein('kittens','mitten') → 2

  • levenshtein('Kitten','kitten') → 1

  • levenshtein(upper('Kitten'),upper('kitten')) → 0

14.3.11.3. longest_common_substring

Returns the longest common substring between two strings. This substring is the longest string that is a substring of the two input strings. For example, the longest common substring of «ABABC» and «BABCA» is «BABC». The substring is case sensitive.

Sintassi

longest_common_substring(string1, string2)

Argomenti

  • string1 - una stringa

  • string2 - una stringa

Esempi

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

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

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

14.3.11.4. soundex

Returns the Soundex representation of a string. Soundex is a phonetic matching algorithm, so strings with similar sounds should be represented by the same Soundex code.

Sintassi

soundex(string)

Argomenti

  • string - una stringa

Esempi

  • soundex('robert') → “R163”

  • soundex('rupert') → “R163”

  • soundex('rubin') → “R150”

14.3.12. Funzioni Generali

Questo gruppo contiene funzioni generali assortite.

14.3.12.1. env

Gets an environment variable and returns its content as a string. If the variable is not found, NULL will be returned. This is handy to inject system specific configuration like drive letters or path prefixes. Definition of environment variables depends on the operating system, please check with your system administrator or the operating system documentation how this can be set.

Sintassi

env(name)

Argomenti

  • name - Il nome della variabile d’ambiente che deve essere recuperata.

Esempi

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

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

  • env( 'I_DO_NOT_EXIST' ) → NULL

14.3.12.2. eval

Evaluates an expression which is passed in a string. Useful to expand dynamic parameters passed as context variables or fields.

Sintassi

eval(expression)

Argomenti

  • expression - un’espressione stringa

Esempi

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

  • eval(@expression_var) → [whatever the result of evaluating @expression_var might be…]

14.3.12.3. eval_template

Evaluates a template which is passed in a string. Useful to expand dynamic parameters passed as context variables or fields.

Sintassi

eval_template(template)

Argomenti

  • template - un modello stringa

Esempi

  • eval_template('QGIS [% upper(\'rocks\') %]') → QGIS ROCKS

14.3.12.4. is_layer_visible

Restituisce true se il layer specificato è visibile.

Sintassi

is_layer_visible(layer)

Argomenti

  • layer - una stringa, che rappresenta o il nome di un layer o l’ID di un layer

Esempi

  • is_layer_visible('baseraster') → True

14.3.12.5. layer_property

Returns a matching layer property or metadata value.

Sintassi

layer_property(layer, property)

Argomenti

  • layer - una stringa, che rappresenta o il nome di un layer o l’ID di un layer

  • property - a string corresponding to the property to return. Valid options are:

    • name: nome layer

    • id: layer ID

    • title: metadata title string

    • abstract: metadata abstract string

    • keywords: metadata keywords

    • data_url: metadata URL

    • attribution: metadata attribution string

    • attribution_url: metadata attribution URL

    • source: layer source

    • min_scale: scala minima di visualizzazione per il layer

    • max_scale: scala massima di visualizzazione per il layer

    • is_editable: if layer is in edit mode

    • crs: SR del layer

    • crs_definition: definizione completa del SR del layer

    • crs_description: layer CRS description

    • extent: layer extent (as a geometry object)

    • distance_units: layer distance units

    • type: layer type, e.g., Vector or Raster

    • storage_type: storage format (vector layers only)

    • geometry_type: geometry type, e.g., Point (vector layers only)

    • feature_count: approximate feature count for layer (vector layers only)

    • path: File path to the layer data source. Only available for file based layers.

Esempi

  • layer_property('streets','title') → “Basemap Streets”

  • layer_property('airports','feature_count') → 120

  • layer_property('landsat','crs') → “EPSG:4326”

Ulteriori informazioni: vector, raster e mesh proprietà layer

14.3.12.6. var

Returns the value stored within a specified variable.

Sintassi

var(name)

Argomenti

  • name - a variable name

Esempi

  • var('qgis_version') → “2.12”

Ulteriori informazioni: List of default variables

14.3.12.7. with_variable

This function sets a variable for any expression code that will be provided as 3rd argument. This is only useful for complicated expressions, where the same calculated value needs to be used in different places.

Sintassi

with_variable(name, value, expression)

Argomenti

  • name - the name of the variable to set

  • value - the value to set

  • expression - the expression for which the variable will be available

Esempi

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

14.3.13. Funzioni Geometria

This group contains functions that operate on geometry objects (e.g. buffer, transform, $area).

14.3.13.1. angle_at_vertex

Returns the bisector angle (average angle) to the geometry for a specified vertex on a linestring geometry. Angles are in degrees clockwise from north.

Sintassi

angle_at_vertex(geometry, vertex)

Argomenti

  • geometry - a linestring geometry

  • vertex - vertex index, starting from 0; if the value is negative, the selected vertex index will be its total count minus the absolute value

Esempi

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

14.3.13.2. $area

Returns the area of the current feature. 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.

Sintassi

$area

Esempi

  • $area → 42

14.3.13.3. area

Returns the area of a geometry polygon object. Calculations are always planimetric in the Spatial Reference System (SRS) of this geometry, and the units of the returned area will match the units for the SRS. This differs from the calculations performed by the $area function, which will perform ellipsoidal calculations based on the project’s ellipsoid and area unit settings.

Sintassi

area(geometry)

Argomenti

  • geometry - polygon geometry object

Esempi

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

14.3.13.4. azimuth

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

Sintassi

azimuth(point_a, point_b)

Argomenti

  • point_a - point geometry

  • point_b - point geometry

Esempi

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

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

14.3.13.5. boundary

Returns the closure of the combinatorial boundary of the geometry (ie the topological boundary of the geometry). For instance, a polygon geometry will have a boundary consisting of the linestrings for each ring in the polygon. Some geometry types do not have a defined boundary, e.g., points or geometry collections, and will return NULL.

Sintassi

boundary(geometry)

Argomenti

  • geometry - una geometria

Esempi

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

Ulteriori informazioni: Confine algoritmo

14.3.13.6. bounds

Returns a geometry which represents the bounding box of an input geometry. Calculations are in the Spatial Reference System of this geometry.

Sintassi

bounds(geometry)

Argomenti

  • geometry - una geometria

Esempi

  • bounds($geometry) → bounding box of the current feature’s geometry

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

Ulteriori informazioni: Perimetri di delimitazione algoritmo

14.3.13.7. bounds_height

Returns the height of the bounding box of a geometry. Calculations are in the Spatial Reference System of this geometry.

Sintassi

bounds_height(geometry)

Argomenti

  • geometry - una geometria

Esempi

  • bounds_height($geometry) → height of bounding box of the current feature’s geometry

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

14.3.13.8. bounds_width

Returns the width of the bounding box of a geometry. Calculations are in the Spatial Reference System of this geometry.

Sintassi

bounds_width(geometry)

Argomenti

  • geometry - una geometria

Esempi

  • bounds_width($geometry) → width of bounding box of the current feature’s geometry

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

14.3.13.9. buffer

Returns a geometry that represents all points whose distance from this geometry is less than or equal to distance. Calculations are in the Spatial Reference System of this geometry.

Sintassi

buffer(geometry, distance, [segments=8])

[] indica argomenti facoltativi

Argomenti

  • geometry - una geometria

  • distance - buffer distance in layer units

  • segments - number of segments to use to represent a quarter circle when a round join style is used. A larger number results in a smoother buffer with more nodes.

Esempi

  • buffer($geometry, 10.5) → polygon of the current feature’s geometry buffered by 10.5 units

Ulteriori informazioni: Buffer algoritmo

14.3.13.10. buffer_by_m

Creates a buffer along a line geometry where the buffer diameter varies according to the m-values at the line vertices.

Sintassi

buffer_by_m(geometry, [segments=8])

[] indica argomenti facoltativi

Argomenti

  • geometry - input geometry. Must be a (multi)line geometry with m values.

  • segments - number of segments to approximate quarter-circle curves in the buffer.

Esempi

  • buffer_by_m(geometry:=geom_from_wkt('LINESTRINGM(1 2 0.5, 4 2 0.2)'),segments:=8) → A variable width buffer starting with a diameter of 0.5 and ending with a diameter of 0.2 along the linestring geometry.

Ulteriori informazioni: Larghezza buffer variabile (per valore di M) algoritmo

14.3.13.11. centroid

Restituisce il centro geometrico di una geometria.

Sintassi

centroid(geometry)

Argomenti

  • geometry - una geometria

Esempi

  • centroid($geometry) → a point geometry

Ulteriori informazioni: Centroidi algoritmo

14.3.13.12. close_line

Returns a closed line string of the input line string by appending the first point to the end of the line, if it is not already closed. If the geometry is not a line string or multi line string then the result will be NULL.

Sintassi

close_line(geometry)

Argomenti

  • geometry - a line string geometry

Esempi

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

14.3.13.13. closest_point

Restituisce il punto della geometria1 che è più vicino alla geometria2.

Sintassi

closest_point(geometry1, geometry2)

Argomenti

  • geometry1 - la geometria sulla quale trovare il punto più vicino

  • geometry2 - la geometria per la quale trovare il punto più vicino a

Esempi

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

14.3.13.14. collect_geometries

Collects a set of geometries into a multi-part geometry object.

List of arguments variant

Geometry parts are specified as separate arguments to the function.

Sintassi

collect_geometries(geometry1, geometry2, …)

Argomenti

  • geometry - una geometria

Esempi

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

Le parti della geometria sono specificate come un array di parti della geometria.

Sintassi

collect_geometries(array)

Argomenti

  • array - array di elementi geometrici

Esempi

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

Ulteriori informazioni: Collect geometries algoritmo

14.3.13.15. combine

Restituisce la combinazione di due geometrie.

Sintassi

combine(geometry1, geometry2)

Argomenti

  • geometry1 - una geometria

  • geometry2 - una geometria

Esempi

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

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

Sintassi

contains(geometry1, geometry2)

Argomenti

  • geometry1 - una geometria

  • geometry2 - una geometria

Esempi

  • 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

Ulteriori informazioni: overlay_contains

14.3.13.17. convex_hull

Returns the convex hull of a geometry. It represents the minimum convex geometry that encloses all geometries within the set.

Sintassi

convex_hull(geometry)

Argomenti

  • geometry - una geometria

Esempi

  • geom_to_wkt( convex_hull( geom_from_wkt( 'LINESTRING(3 3, 4 4, 4 10)' ) ) ) → “POLYGON((3 3, 4 10, 4 4, 3 3))”

Ulteriori informazioni: Convex hull algoritmo

14.3.13.18. crosses

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

Sintassi

crosses(geometry1, geometry2)

Argomenti

  • geometry1 - una geometria

  • geometry2 - una geometria

Esempi

  • 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

Ulteriore lettura: overlay_crosses

14.3.13.19. difference

Restituisce una geometria che rappresenta la parte di geometria1 che non si interseca con geometria2.

Sintassi

difference(geometry1, geometry2)

Argomenti

  • geometry1 - una geometria

  • geometry2 - una geometria

Esempi

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

Ulteriori informazioni: Differenza algoritmo

14.3.13.20. disjoint

Tests whether geometries do not spatially intersect. Returns true if the geometries do not share any space together.

Sintassi

disjoint(geometry1, geometry2)

Argomenti

  • geometry1 - una geometria

  • geometry2 - una geometria

Esempi

  • 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

Ulteriori informazioni: overlay_disjoint

14.3.13.21. distance

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

Sintassi

distance(geometry1, geometry2)

Argomenti

  • geometry1 - una geometria

  • geometry2 - una geometria

Esempi

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

14.3.13.22. distance_to_vertex

Returns the distance along the geometry to a specified vertex.

Sintassi

distance_to_vertex(geometry, vertex)

Argomenti

  • geometry - a linestring geometry

  • vertex - vertex index, starting from 0; if the value is negative, the selected vertex index will be its total count minus the absolute value

Esempi

  • distance_to_vertex(geometry:=geom_from_wkt('LineString(0 0, 10 0, 10 10)'),vertex:=1) → 10.0

14.3.13.23. end_point

Returns the last node from a geometry.

Sintassi

end_point(geometry)

Argomenti

  • geometry - elemento geometria

Esempi

  • geom_to_wkt(end_point(geom_from_wkt('LINESTRING(4 0, 4 2, 0 2)'))) → “Point (0 2)”

Ulteriori informazioni: Extract specific vertices algoritmo

14.3.13.24. extend

Extends the start and end of a linestring geometry by a specified amount. Lines are extended using the bearing of the first and last segment in the line. For a multilinestring, all the parts are extended. Distances are in the Spatial Reference System of this geometry.

Sintassi

extend(geometry, start_distance, end_distance)

Argomenti

  • geometry - a (multi)linestring geometry

  • start_distance - distance to extend the start of the line

  • end_distance - distance to extend the end of the line.

Esempi

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

Ulteriori informazioni: Extend lines algoritmo

14.3.13.25. exterior_ring

Returns a line string representing the exterior ring of a polygon geometry. If the geometry is not a polygon then the result will be NULL.

Sintassi

exterior_ring(geometry)

Argomenti

  • geometry - una geometria poligonale

Esempi

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

14.3.13.26. extrude

Returns an extruded version of the input (Multi-)Curve or (Multi-)Linestring geometry with an extension specified by x and y.

Sintassi

extrude(geometry, x, y)

Argomenti

  • geometry - una geometria poligonale

  • x - estensione x, valore numerico

  • y - estensione y, valore numerico

Esempi

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

14.3.13.27. flip_coordinates

Returns a copy of the geometry with the x and y coordinates swapped. Useful for repairing geometries which have had their latitude and longitude values reversed.

Sintassi

flip_coordinates(geometry)

Argomenti

  • geometry - una geometria

Esempi

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

Ulteriori informazioni: Swap X and Y coordinates algoritmo

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

Sintassi

force_rhr(geometry)

Argomenti

  • geometry - a geometry. Any non-polygon geometries are returned unchanged.

Esempi

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

Ulteriori informazioni: Force right-hand-rule algoritmo

14.3.13.29. geom_from_gml

Returns a geometry from a GML representation of geometry.

Sintassi

geom_from_gml(gml)

Argomenti

  • gml - GML representation of a geometry as a string

Esempi

  • geom_from_gml('<gml:LineString srsName="EPSG:4326"><gml:coordinates>4,4 5,5 6,6</gml:coordinates></gml:LineString>') → a line geometry object

14.3.13.30. geom_from_wkb

Returns a geometry created from a Well-Known Binary (WKB) representation.

Sintassi

geom_from_wkb(binary)

Argomenti

  • binary - Well-Known Binary (WKB) representation of a geometry (as a binary blob)

Esempi

  • geom_from_wkb( geom_to_wkb( make_point(4,5) ) ) → a point geometry object

14.3.13.31. geom_from_wkt

Returns a geometry created from a Well-Known Text (WKT) representation.

Sintassi

geom_from_wkt(text)

Argomenti

  • text - Well-Known Text (WKT) representation of a geometry

Esempi

  • geom_from_wkt( 'POINT(4 5)' ) → a geometry object

14.3.13.32. geom_to_wkb

Returns the Well-Known Binary (WKB) representation of a geometry

Sintassi

geom_to_wkb(geometry)

Argomenti

  • geometry - una geometria

Esempi

  • geom_to_wkb( $geometry ) → binary blob containing a geometry object

14.3.13.33. geom_to_wkt

Returns the Well-Known Text (WKT) representation of the geometry without SRID metadata.

Sintassi

geom_to_wkt(geometry, [precision=8])

[] indica argomenti facoltativi

Argomenti

  • geometry - una geometria

  • precision - precisione numerica

Esempi

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

14.3.13.34. $geometry

Returns the geometry of the current feature. Can be used for processing with other functions.

Sintassi

$geometry

Esempi

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

14.3.13.35. geometry

Returns a feature’s geometry.

Sintassi

geometry(feature)

Argomenti

  • feature - a feature object

Esempi

  • geom_to_wkt( geometry( get_feature( layer, attributeField, value ) ) ) → “POINT(6 50)”

  • intersects( $geometry, geometry( get_feature( layer, attributeField, value ) ) ) → true

14.3.13.36. geometry_n

Returns a specific geometry from a geometry collection, or NULL if the input geometry is not a collection.

Sintassi

geometry_n(geometry, index)

Argomenti

  • geometry - geometry collection

  • index - index of geometry to return, where 1 is the first geometry in the collection

Esempi

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

14.3.13.37. hausdorff_distance

Returns the Hausdorff distance between two geometries. This is basically a measure of how similar or dissimilar 2 geometries are, with a lower distance indicating more similar geometries.

The function can be executed with an optional densify fraction argument. If not specified, an approximation to the standard Hausdorff distance is used. This approximation is exact or close enough for a large subset of useful cases. Examples of these are:

  • computing distance between Linestrings that are roughly parallel to each other, and roughly equal in length. This occurs in matching linear networks.

  • Testing similarity of geometries.

If the default approximate provided by this method is insufficient, specify the optional densify fraction argument. Specifying this argument performs a segment densification before computing the discrete Hausdorff distance. The parameter sets the fraction by which to densify each segment. Each segment will be split into a number of equal-length subsegments, whose fraction of the total length is closest to the given fraction. Decreasing the densify fraction parameter will make the distance returned approach the true Hausdorff distance for the geometries.

Sintassi

hausdorff_distance(geometry1, geometry2, [densify_fraction])

[] indica argomenti facoltativi

Argomenti

  • geometry1 - una geometria

  • geometry2 - una geometria

  • densify_fraction - densify fraction amount

Esempi

  • 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

14.3.13.38. inclination

Restituisce l’inclinazione misurata dallo zenit (0) al nadir (180) del punto_a al punto_b.

Sintassi

inclination(point_a, point_b)

Argomenti

  • point_a - point geometry

  • point_b - point geometry

Esempi

  • 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

14.3.13.39. interior_ring_n

Returns a specific interior ring from a polygon geometry, or NULL if the geometry is not a polygon.

Sintassi

interior_ring_n(geometry, index)

Argomenti

  • geometry - polygon geometry

  • index - index of interior to return, where 1 is the first interior ring

Esempi

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

14.3.13.40. intersection

Restituisce una geometria che rappresenta la porzione condivisa di due geometrie.

Sintassi

intersection(geometry1, geometry2)

Argomenti

  • geometry1 - una geometria

  • geometry2 - una geometria

Esempi

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

Ulteriori informazioni: Intersection algoritmo

14.3.13.41. intersects

Tests whether a geometry intersects another. Returns true if the geometries spatially intersect (share any portion of space) and false if they do not.

Sintassi

intersects(geometry1, geometry2)

Argomenti

  • geometry1 - una geometria

  • geometry2 - una geometria

Esempi

  • 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

Ulteriori informazioni: overlay_intersects

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

Sintassi

intersects_bbox(geometry1, geometry2)

Argomenti

  • geometry1 - una geometria

  • geometry2 - una geometria

Esempi

  • 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

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

Sintassi

is_closed(geometry)

Argomenti

  • geometry - a line string geometry

Esempi

  • 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

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

Sintassi

is_empty(geometry)

Argomenti

  • geometry - una geometria

Esempi

  • 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

14.3.13.45. is_empty_or_null

Restituisce true se una geometria è NULLA o vuota (senza coordinate) o false in caso contrario. Questa funzione è come l’espressione “$geometry IS NULL o is_empty($geometry)”.

Sintassi

is_empty_or_null(geometry)

Argomenti

  • geometry - una geometria

Esempi

  • 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

14.3.13.46. is_multipart

Restituisce true se la geometria è di tipo Parti multiple.

Sintassi

is_multipart(geometry)

Argomenti

  • geometry - una geometria

Esempi

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

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

14.3.13.47. is_valid

Restituisce true se una geometria è valida; se è ben formata in 2D secondo le regole dell’OGC.

Sintassi

is_valid(geometry)

Argomenti

  • geometry - una geometria

Esempi

  • is_valid(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2, 0 0)')) → true

  • is_valid(geom_from_wkt('LINESTRING(0 0)')) → false

14.3.13.48. $length

Returns the length of a linestring. If you need the length of a border of a polygon, use $perimeter instead. The length calculated by this function respects both the current project’s ellipsoid setting and distance unit settings. For example, if an ellipsoid has been set for the project then the calculated length will be ellipsoidal, and if no ellipsoid is set then the calculated length will be planimetric.

Sintassi

$length

Esempi

  • $length → 42.4711

14.3.13.49. length

Returns the number of characters in a string or the length of a geometry linestring.

Operatori stringa

Restituisce il numero di caratteri in una stringa.

Sintassi

length(string)

Argomenti

  • string - la stringa sulla quale calcolare la lunghezza

Esempi

  • length('hello') → 5

Geometry variant

Calculate the length of a geometry line object. 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.

Sintassi

length(geometry)

Argomenti

  • geometry - line geometry object

Esempi

  • length(geom_from_wkt('LINESTRING(0 0, 4 0)')) → 4.0

14.3.13.50. line_interpolate_angle

Restituisce l’angolo parallelo alla geometria ad una distanza specificata lungo una geometria di tipo linestring. Gli angoli sono in gradi in senso orario da nord.

Sintassi

line_interpolate_angle(geometry, distance)

Argomenti

  • geometry - a linestring geometry

  • distance - distance along line to interpolate angle at

Esempi

  • line_interpolate_angle(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),distance:=5) → 90.0

14.3.13.51. line_interpolate_point

Returns the point interpolated by a specified distance along a linestring geometry.

Sintassi

line_interpolate_point(geometry, distance)

Argomenti

  • geometry - a linestring geometry

  • distance - distance along line to interpolate

Esempi

  • geom_to_wkt(line_interpolate_point(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),distance:=5)) → “Point (5 0)”

Ulteriori informazioni: Interpolate point on line algoritmo

14.3.13.52. line_locate_point

Restituisce la distanza lungo una linestring corrispondente alla posizione più vicina alla linestring di una geometria puntuale specificata

Sintassi

line_locate_point(geometry, point)

Argomenti

  • geometry - a linestring geometry

  • point - point geometry to locate closest position on linestring to

Esempi

  • line_locate_point(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),point:=geom_from_wkt('Point(5 0)')) → 5.0

14.3.13.53. line_merge

Returns a LineString or MultiLineString geometry, where any connected LineStrings from the input geometry have been merged into a single linestring. This function will return NULL if passed a geometry which is not a LineString/MultiLineString.

Sintassi

line_merge(geometry)

Argomenti

  • geometry - a LineString/MultiLineString geometry

Esempi

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

14.3.13.54. line_substring

Returns the portion of a line (or curve) geometry which falls between the specified start and end distances (measured from the beginning of the line). Z and M values are linearly interpolated from existing values.

Sintassi

line_substring(geometry, start_distance, end_distance)

Argomenti

  • geometry - a linestring or curve geometry

  • start_distance - distance to start of substring

  • end_distance - distance to end of substring

Esempi

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

Ulteriori informazioni: Line substring algoritmo

14.3.13.55. m

Restituisce il valore m di una geometria di punti.

Sintassi

m(geometry)

Argomenti

  • geometry - una geometria di punti

Esempi

  • m( geom_from_wkt( 'POINTM(2 5 4)' ) ) → 4

14.3.13.56. m_max

Restituisce il valore massimo m (misura) di una geometria.

Sintassi

m_max(geometry)

Argomenti

  • geometry - una geometria contenente m valori

Esempi

  • 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

14.3.13.57. m_min

Restituisce il valore minimo m (misura) di una geometria.

Sintassi

m_min(geometry)

Argomenti

  • geometry - una geometria contenente m valori

Esempi

  • 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

14.3.13.58. main_angle

Returns the main angle of a geometry (clockwise, in degrees from North), which represents the angle of the oriented minimal bounding rectangle which completely covers the geometry.

Sintassi

main_angle(geometry)

Argomenti

  • geometry - una geometria

Esempi

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

14.3.13.59. make_circle

Crea un poligono circolare.

Sintassi

make_circle(center, radius, [segments=36])

[] indica argomenti facoltativi

Argomenti

  • center - punto centrale del cerchio

  • radius - raggio del cerchio

  • segments - parametro opzionale per la segmentazione del poligono. Per impostazione predefinita questo valore è 36

Esempi

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

14.3.13.60. make_ellipse

Crea un poligono ellittico.

Sintassi

make_ellipse(center, semi_major_axis, semi_minor_axis, azimuth, [segments=36])

[] indica argomenti facoltativi

Argomenti

  • center - center point of the ellipse

  • semi_major_axis - semi-major axis of the ellipse

  • semi_minor_axis - semi-minor axis of the ellipse

  • azimuth - orientation of the ellipse

  • segments - parametro opzionale per la segmentazione del poligono. Per impostazione predefinita questo valore è 36

Esempi

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

14.3.13.61. make_line

Crea una geometria lineare da una serie di geometrie punto.

List of arguments variant

Line vertices are specified as separate arguments to the function.

Sintassi

make_line(point1, point2, …)

Argomenti

  • point - a point geometry (or array of points)

Esempi

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

Line vertices are specified as an array of points.

Sintassi

make_line(array)

Argomenti

  • array - array di punti

Esempi

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

14.3.13.62. make_point

Creates a point geometry from an x and y (and optional z and m) value.

Sintassi

make_point(x, y, [z], [m])

[] indica argomenti facoltativi

Argomenti

  • x - coordinata x di un punto

  • y - coordinata y di un punto

  • z - coordinata opzionale z di un punto

  • m - valore opzionale m di un punto

Esempi

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

14.3.13.63. make_point_m

Creates a point geometry from an x, y coordinate and m value.

Sintassi

make_point_m(x, y, m)

Argomenti

  • x - coordinata x di un punto

  • y - coordinata y di un punto

  • m - m value of point

Esempi

  • geom_to_wkt(make_point_m(2,4,6)) → “PointM (2 4 6)”

14.3.13.64. make_polygon

Creates a polygon geometry from an outer ring and optional series of inner ring geometries.

Sintassi

make_polygon(outerRing, [innerRing1], [innerRing2], …)

[] indica argomenti facoltativi

Argomenti

  • outerRing - closed line geometry for polygon’s outer ring

  • innerRing - optional closed line geometry for inner ring

Esempi

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

14.3.13.65. make_rectangle_3points

Crea un rettangolo da 3 punti.

Sintassi

make_rectangle_3points(point1, point2, point3, [option=0])

[] indica argomenti facoltativi

Argomenti

  • point1 - Primo punto.

  • point2 - Secondo punto.

  • point3 - Terzo punto.

  • option - An optional argument to construct the rectangle. By default this value is 0. Value can be 0 (distance) or 1 (projected). Option distance: Second distance is equal to the distance between 2nd and 3rd point. Option projected: Second distance is equal to the distance of the perpendicular projection of the 3rd point on the segment or its extension.

Esempi

  • geom_to_wkt(make_rectangle(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(make_point(0, 0), make_point(0,5), make_point(5, 3), 1))) → “Polygon ((0 0, 0 5, 5 5, 5 0, 0 0))”

14.3.13.66. make_regular_polygon

Crea un poligono regolare.

Sintassi

make_regular_polygon(center, radius, number_sides, [circle=0])

[] indica argomenti facoltativi

Argomenti

  • center - centro del poligono regolare

  • radius - second point. The first if the regular polygon is inscribed. The midpoint of the first side if the regular polygon is circumscribed.

  • number_sides - Number of sides/edges of the regular polygon

  • circle - Optional argument to construct the regular polygon. By default this value is 0. Value can be 0 (inscribed) or 1 (circumscribed)

Esempi

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

14.3.13.67. make_square

Crea un quadrato da una diagonale.

Sintassi

make_square(point1, point2)

Argomenti

  • point1 - Punto iniziale della diagonale

  • point2 - Punto finale della diagonale

Esempi

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

14.3.13.68. make_triangle

Crea un poligono triangolare.

Sintassi

make_triangle(point1, point2, point3)

Argomenti

  • point1 - primo punto del triangolo

  • point2 - secondo punto del triangolo

  • point3 - terzo punto del triangolo

Esempi

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

14.3.13.69. minimal_circle

Returns the minimal enclosing circle of a geometry. It represents the minimum circle that encloses all geometries within the set.

Sintassi

minimal_circle(geometry, [segments=36])

[] indica argomenti facoltativi

Argomenti

  • geometry - una geometria

  • segments - parametro opzionale per la segmentazione del poligono. Per impostazione predefinita questo valore è 36

Esempi

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

Ulteriori informazioni: Minimum enclosing circles algoritmo

14.3.13.70. nodes_to_points

Returns a multipoint geometry consisting of every node in the input geometry.

Sintassi

nodes_to_points(geometry, [ignore_closing_nodes=false])

[] indica argomenti facoltativi

Argomenti

  • geometry - elemento geometria

  • ignore_closing_nodes - optional argument specifying whether to include duplicate nodes which close lines or polygons rings. Defaults to false, set to true to avoid including these duplicate nodes in the output collection.

Esempi

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

Ulteriori informazioni: Extract vertices algoritmo

14.3.13.71. num_geometries

Returns the number of geometries in a geometry collection, or NULL if the input geometry is not a collection.

Sintassi

num_geometries(geometry)

Argomenti

  • geometry - geometry collection

Esempi

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

14.3.13.72. num_interior_rings

Returns the number of interior rings in a polygon or geometry collection, or NULL if the input geometry is not a polygon or collection.

Sintassi

num_interior_rings(geometry)

Argomenti

  • geometry - geometria in ingresso

Esempi

  • 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

14.3.13.73. num_points

Restituisce il numero di vertici di una geometria.

Sintassi

num_points(geometry)

Argomenti

  • geometry - una geometria

Esempi

  • num_points($geometry) → number of vertices in the current feature’s geometry

14.3.13.74. num_rings

Returns the number of rings (including exterior rings) in a polygon or geometry collection, or NULL if the input geometry is not a polygon or collection.

Sintassi

num_rings(geometry)

Argomenti

  • geometry - geometria in ingresso

Esempi

  • 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

14.3.13.75. offset_curve

Returns a geometry formed by offsetting a linestring geometry to the side. Distances are in the Spatial Reference System of this geometry.

Sintassi

offset_curve(geometry, distance, [segments=8], [join=1], [miter_limit=2.0])

[] indica argomenti facoltativi

Argomenti

  • geometry - a (multi)linestring geometry

  • distance - offset distance. Positive values will be buffered to the left of lines, negative values to the right

  • segments - number of segments to use to represent a quarter circle when a round join style is used. A larger number results in a smoother line with more nodes.

  • join - join style for corners, where 1 = round, 2 = miter and 3 = bevel

  • miter_limit - limit on the miter ratio used for very sharp corners (when using miter joins only)

Esempi

  • offset_curve($geometry, 10.5) → line offset to the left by 10.5 units

  • offset_curve($geometry, -10.5) → line offset to the right by 10.5 units

  • 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

Ulteriori informazioni: Linee di offset algoritmo

14.3.13.76. order_parts

Ordina le parti di una MultiGeometry secondo un determinato criterio

Sintassi

order_parts(geometry, orderby, ascending)

Argomenti

  • geometry - a multi-type geometry

  • orderby - an expression string defining the order criteria

  • ascending - boolean, True for ascending, False for descending

Esempi

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

14.3.13.77. oriented_bbox

Restituisce una geometria che rappresenta il rettangolo di delimitazione orientato minimo di una geometria di input.

Sintassi

oriented_bbox(geometry)

Argomenti

  • geometry - una geometria

Esempi

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

Ulteriori informazioni: Oriented minimum bounding box algoritmo

14.3.13.78. overlaps

Verifica se una geometria si sovrappone ad un’altra. Restituisce true se le geometrie condividono lo spazio, sono della stessa dimensione, ma non sono completamente contenute l’una dall’altra.

Sintassi

overlaps(geometry1, geometry2)

Argomenti

  • geometry1 - una geometria

  • geometry2 - una geometria

Esempi

  • 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

14.3.13.79. overlay_contains

Restituisce se l’elemento corrente ha elementi di un layer di destinazione, o un array di risultati basati su espressioni per gli elementi del layer di destinazione contenuti nell’elemento corrente.

Leggi di più sul sottostante predicato «Contains» di GEOS, come descritto nella funzione PostGIS ST_Contains.

Sintassi

overlay_contains(layer, [expression], [filter], [limit], [cache=false])

[] indica argomenti facoltativi

Argomenti

  • layer - il layer per il quale viene verificata la sovrapposizione

  • expression - un’espressione opzionale che deve essere applicata agli elementi del layer di destinazione. Se non è impostata, la funzione restituisce solo un booleano che indica se c’è almeno una corrispondenza.

  • filter - un’espressione opzionale per filtrare gli elementi da controllare. Se non è impostata, tutte gli elementi saranno controllati.

  • limit - an optional integer to limit the number of matching features. If not set, all the matching features will be returned.

  • cache - set this to true to build a local spatial index (most of the time, this is unwanted, unless you are working with a particularly slow data provider)

Esempi

  • overlay_contains('regions') → true if the current feature spatially contains a region

  • 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) → an array of names, for the regions contained in the current feature

  • array_to_string(overlay_contains('regions', name)) → a string as a comma separated list of names, for the regions contained in the current feature

  • array_length(overlay_contains('regions', name)) → the number of regions contained in the current feature

  • array_sort(overlay_contains(layer:='regions', expression:="name", filter:= population > 10000)) → an ordered array of names, for the regions contained in the current feature and with a population greater than 10000

  • overlay_contains(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → an array of geometries (in WKT), for up to two regions contained in the current feature

Ulteriori informazioni: contains, array manipulation, Seleziona per posizione algoritmo

14.3.13.80. overlay_crosses

Returns whether the current feature spatially crosses at least one feature from a target layer, or an array of expression-based results for the features in the target layer crossed by the current feature.

Read more on the underlying GEOS «Crosses» predicate, as described in PostGIS ST_Crosses function.

Sintassi

overlay_crosses(layer, [expression], [filter], [limit], [cache=false])

[] indica argomenti facoltativi

Argomenti

  • layer - il layer per il quale viene verificata la sovrapposizione

  • expression - un’espressione opzionale che deve essere applicata agli elementi del layer di destinazione. Se non è impostata, la funzione restituisce solo un booleano che indica se c’è almeno una corrispondenza.

  • filter - un’espressione opzionale per filtrare gli elementi da controllare. Se non è impostata, tutte gli elementi saranno controllati.

  • limit - an optional integer to limit the number of matching features. If not set, all the matching features will be returned.

  • cache - set this to true to build a local spatial index (most of the time, this is unwanted, unless you are working with a particularly slow data provider)

Esempi

  • 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) → an array of names, for the regions crossed by the current feature

  • array_to_string(overlay_crosses('regions', name)) → a string as a comma separated list of names, for the regions crossed by the current feature

  • array_sort(overlay_crosses(layer:='regions', expression:="name", filter:= population > 10000)) → an ordered array of names, for the regions crossed by the current feature and with a population greater than 10000

  • overlay_crosses(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → an array of geometries (in WKT), for up to two regions crossed by the current feature

Ulteriori informazioni: crosses, array manipulation, Seleziona per posizione algoritmo

14.3.13.81. overlay_disjoint

Returns whether the current feature is spatially disjoint from all the features of a target layer, or an array of expression-based results for the features in the target layer that are disjoint from the current feature.

Read more on the underlying GEOS «Disjoint» predicate, as described in PostGIS ST_Disjoint function.

Sintassi

overlay_disjoint(layer, [expression], [filter], [limit], [cache=false])

[] indica argomenti facoltativi

Argomenti

  • layer - il layer per il quale viene verificata la sovrapposizione

  • expression - un’espressione opzionale che deve essere applicata agli elementi del layer di destinazione. Se non è impostata, la funzione restituisce solo un booleano che indica se c’è almeno una corrispondenza.

  • filter - un’espressione opzionale per filtrare gli elementi da controllare. Se non è impostata, tutte gli elementi saranno controllati.

  • limit - an optional integer to limit the number of matching features. If not set, all the matching features will be returned.

  • cache - set this to true to build a local spatial index (most of the time, this is unwanted, unless you are working with a particularly slow data provider)

Esempi

  • 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) → an array of names, for the regions spatially disjoint from the current feature

  • array_to_string(overlay_disjoint('regions', name)) → a string as a comma separated list of names, for the regions spatially disjoint from the current feature

  • array_sort(overlay_disjoint(layer:='regions', expression:="name", filter:= population > 10000)) → an ordered array of names, for the regions spatially disjoint from the current feature and with a population greater than 10000

  • overlay_disjoint(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → an array of geometries (in WKT), for up to two regions spatially disjoint from the current feature

Ulteriori informazioni: disjoint, array manipulation, Seleziona per posizione algoritmo

14.3.13.82. overlay_equals

Returns whether the current feature spatially equals to at least one feature from a target layer, or an array of expression-based results for the features in the target layer that are spatially equal to the current feature.

Read more on the underlying GEOS «Equals» predicate, as described in PostGIS ST_Equals function.

Sintassi

overlay_equals(layer, [expression], [filter], [limit], [cache=false])

[] indica argomenti facoltativi

Argomenti

  • layer - il layer per il quale viene verificata la sovrapposizione

  • expression - un’espressione opzionale che deve essere applicata agli elementi del layer di destinazione. Se non è impostata, la funzione restituisce solo un booleano che indica se c’è almeno una corrispondenza.

  • filter - un’espressione opzionale per filtrare gli elementi da controllare. Se non è impostata, tutte gli elementi saranno controllati.

  • limit - an optional integer to limit the number of matching features. If not set, all the matching features will be returned.

  • cache - set this to true to build a local spatial index (most of the time, this is unwanted, unless you are working with a particularly slow data provider)

Esempi

  • 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) → an array of names, for the regions spatially equal to the current feature

  • array_to_string(overlay_equals('regions', name)) → a string as a comma separated list of names, for the regions spatially equal to the current feature

  • array_sort(overlay_equals(layer:='regions', expression:="name", filter:= population > 10000)) → an ordered array of names, for the regions spatially equal to the current feature and with a population greater than 10000

  • overlay_equals(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → an array of geometries (in WKT), for up to two regions spatially equal to the current feature

Ulteriori informazioni: array manipulation, Seleziona per posizione algoritmo

14.3.13.83. overlay_intersects

Returns whether the current feature spatially intersects at least one feature from a target layer, or an array of expression-based results for the features in the target layer intersected by the current feature.

Read more on the underlying GEOS «Intersects» predicate, as described in PostGIS ST_Intersects function.

Sintassi

overlay_intersects(layer, [expression], [filter], [limit], [cache=false])

[] indica argomenti facoltativi

Argomenti

  • layer - il layer per il quale viene verificata la sovrapposizione

  • expression - un’espressione opzionale che deve essere applicata agli elementi del layer di destinazione. Se non è impostata, la funzione restituisce solo un booleano che indica se c’è almeno una corrispondenza.

  • filter - un’espressione opzionale per filtrare gli elementi da controllare. Se non è impostata, tutte gli elementi saranno controllati.

  • limit - an optional integer to limit the number of matching features. If not set, all the matching features will be returned.

  • cache - set this to true to build a local spatial index (most of the time, this is unwanted, unless you are working with a particularly slow data provider)

Esempi

  • 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) → an array of names, for the regions intersected by the current feature

  • array_to_string(overlay_intersects('regions', name)) → a string as a comma separated list of names, for the regions intersected by the current feature

  • array_sort(overlay_intersects(layer:='regions', expression:="name", filter:= population > 10000)) → an ordered array of names, for the regions intersected by the current feature and with a population greater than 10000

  • overlay_intersects(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → an array of geometries (in WKT), for up to two regions intersected by the current feature

Ulteriori informazioni: intersects, array manipulation, Seleziona per posizione algoritmo

14.3.13.84. overlay_nearest

Restituisce se l’elemento corrente ha elemento(i) di un layer di destinazione entro una data distanza, o un array di risultati basati su espressioni per gli elementi nel layer di destinazione entro una distanza dall’elemento corrente.

Nota: questa funzione può essere lenta e consumare molta memoria per i layer grandi.

Sintassi

overlay_nearest(layer, [expression], [filter], [limit=1], [max_distance], [cache=false])

[] indica argomenti facoltativi

Argomenti

  • layer - il layer di destinazione

  • expression - un’espressione opzionale che deve essere applicata agli elementi del layer di destinazione. Se non è impostata, la funzione restituisce solo un booleano che indica se c’è almeno una corrispondenza.

  • filter - un’espressione opzionale per filtrare gli elementi di destinazione da controllare. Se non è impostata, saranno usati tutti gli elementi nel layer di destinazione.

  • limit - un intero opzionale per limitare il numero di elementi corrispondenti. Se non impostato, verrà restituita solo l’elemento più vicino. Se impostato a -1, restituisce tutti gli elementi corrispondenti.

  • max_distance - una distanza opzionale per limitare la ricerca degli elementi corrispondenti. Se non è impostata, saranno usati tutti gli elementi nel layer di destinazione.

  • cache - set this to true to build a local spatial index (most of the time, this is unwanted, unless you are working with a particularly slow data provider)

Esempi

  • overlay_nearest('airports') → true se il layer «airports» ha almeno un elemento

  • overlay_nearest('airports', max_distance:= 5000) → true se c’è un aeroporto entro una distanza di 5000 unità di mappa dall” elemento corrente

  • overlay_nearest('airports', name) → il nome dell’aeroporto più vicino all’elemento corrente, nel formato di un array

  • array_to_string(overlay_nearest('airports', name)) → il nome dell’aeroporto più vicino all’elemento corrente, come stringa

  • overlay_nearest(layer:='airports', expression:= name, max_distance:= 5000) → il nome dell’aeroporto più vicino entro una distanza di 5000 unità di mappa dall””elemento corrente, nel formato di un array

  • overlay_nearest(layer:='airports', expression:="name", filter:= "Use"='Civilian', limit:=3) → un array di nomi, di un massimo di tre aeroporti civili più vicini ordinati per distanza

  • overlay_nearest(layer:='airports', expression:="name", limit:= -1, max_distance:= 5000) → un array di nomi, di tutti gli aeroporti entro una distanza di 5000 unità di mappa dall’elemento corrente, ordinato per distanza

Ulteriori informazioni: array manipulation, Join attributes by nearest algoritmo

14.3.13.85. overlay_touches

Returns whether the current feature spatially touches at least one feature from a target layer, or an array of expression-based results for the features in the target layer touched by the current feature.

Read more on the underlying GEOS «Touches» predicate, as described in PostGIS ST_Touches function.

Sintassi

overlay_touches(layer, [expression], [filter], [limit], [cache=false])

[] indica argomenti facoltativi

Argomenti

  • layer - il layer per il quale viene verificata la sovrapposizione

  • expression - un’espressione opzionale che deve essere applicata agli elementi del layer di destinazione. Se non è impostata, la funzione restituisce solo un booleano che indica se c’è almeno una corrispondenza.

  • filter - un’espressione opzionale per filtrare gli elementi da controllare. Se non è impostata, tutte gli elementi saranno controllati.

  • limit - an optional integer to limit the number of matching features. If not set, all the matching features will be returned.

  • cache - set this to true to build a local spatial index (most of the time, this is unwanted, unless you are working with a particularly slow data provider)

Esempi

  • 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) → an array of names, for the regions touched by the current feature

  • string_to_array(overlay_touches('regions', name)) → a string as a comma separated list of names, for the regions touched by the current feature

  • array_sort(overlay_touches(layer:='regions', expression:="name", filter:= population > 10000)) → an ordered array of names, for the regions touched by the current feature and with a population greater than 10000

  • overlay_touches(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → an array of geometries (in WKT), for up to two regions touched by the current feature

Ulteriori informazioni: touches, array manipulation, Seleziona per posizione algoritmo

14.3.13.86. overlay_within

Returns whether the current feature is spatially within at least one feature from a target layer, or an array of expression-based results for the features in the target layer that contain the current feature.

Read more on the underlying GEOS «Within» predicate, as described in PostGIS ST_Within function.

Sintassi

overlay_within(layer, [expression], [filter], [limit], [cache=false])

[] indica argomenti facoltativi

Argomenti

  • layer - il layer per il quale viene verificata la sovrapposizione

  • expression - un’espressione opzionale che deve essere applicata agli elementi del layer di destinazione. Se non è impostata, la funzione restituisce solo un booleano che indica se c’è almeno una corrispondenza.

  • filter - un’espressione opzionale per filtrare gli elementi da controllare. Se non è impostata, tutte gli elementi saranno controllati.

  • limit - an optional integer to limit the number of matching features. If not set, all the matching features will be returned.

  • cache - set this to true to build a local spatial index (most of the time, this is unwanted, unless you are working with a particularly slow data provider)

Esempi

  • 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) → an array of names, for the regions containing the current feature

  • array_to_string(overlay_within('regions', name)) → a string as a comma separated list of names, for the regions containing the current feature

  • array_sort(overlay_within(layer:='regions', expression:="name", filter:= population > 10000)) → an ordered array of names, for the regions containing the current feature and with a population greater than 10000

  • overlay_within(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → an array of geometries (in WKT), for up to two regions containing the current feature

Ulteriori informazioni: within, array manipulation, Seleziona per posizione algoritmo

14.3.13.87. $perimeter

Returns the perimeter length of the current feature. The perimeter calculated by this function respects both the current project’s ellipsoid setting and distance unit settings. For example, if an ellipsoid has been set for the project then the calculated perimeter will be ellipsoidal, and if no ellipsoid is set then the calculated perimeter will be planimetric.

Sintassi

$perimeter

Esempi

  • $perimeter → 42

14.3.13.88. perimeter

Returns the perimeter of a geometry polygon object. Calculations are always planimetric in the Spatial Reference System (SRS) of this geometry, and the units of the returned perimeter will match the units for the SRS. This differs from the calculations performed by the $perimeter function, which will perform ellipsoidal calculations based on the project’s ellipsoid and distance unit settings.

Sintassi

perimeter(geometry)

Argomenti

  • geometry - polygon geometry object

Esempi

  • perimeter(geom_from_wkt('POLYGON((0 0, 4 0, 4 2, 0 2, 0 0))')) → 12.0

14.3.13.89. point_n

Restituisce un nodo specifico da una geometria.

Sintassi

point_n(geometry, index)

Argomenti

  • geometry - elemento geometria

  • index - index of node to return, where 1 is the first node; if the value is negative, the selected vertex index will be its total count minus the absolute value

Esempi

  • geom_to_wkt(point_n(geom_from_wkt('POLYGON((0 0, 4 0, 4 2, 0 2, 0 0))'),2)) → “Point (4 0)”

Ulteriori informazioni: Extract specific vertices algoritmo

14.3.13.90. point_on_surface

Returns a point guaranteed to lie on the surface of a geometry.

Sintassi

point_on_surface(geometry)

Argomenti

  • geometry - una geometria

Esempi

  • point_on_surface($geometry) → a point geometry

Ulteriori informazioni: Punto su Superficie algoritmo

14.3.13.91. pole_of_inaccessibility

Calculates the approximate pole of inaccessibility for a surface, which is the most distant internal point from the boundary of the surface. This function uses the “polylabel” algorithm (Vladimir Agafonkin, 2016), which is an iterative approach guaranteed to find the true pole of inaccessibility within a specified tolerance. More precise tolerances require more iterations and will take longer to calculate.

Sintassi

pole_of_inaccessibility(geometry, tolerance)

Argomenti

  • geometry - una geometria

  • tolerance - maximum distance between the returned point and the true pole location

Esempi

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

Ulteriori informazioni: Pole of inaccessibility algoritmo

14.3.13.92. project

Returns a point projected from a start point using a distance, a bearing (azimuth) and an elevation in radians.

Sintassi

project(point, distance, azimuth, [elevation])

[] indica argomenti facoltativi

Argomenti

  • point - start point

  • distance - distance to project

  • azimuth - azimuth in radians clockwise, where 0 corresponds to north

  • elevation - angle of inclination in radians

Esempi

  • geom_to_wkt(project(make_point(1, 2), 3, radians(270))) → “Point(-2, 2)”

Ulteriori informazioni: Project points (Cartesian) algoritmo

14.3.13.93. relate

Tests the Dimensional Extended 9 Intersection Model (DE-9IM) representation of the relationship between two geometries.

Relationship variant

Returns the Dimensional Extended 9 Intersection Model (DE-9IM) representation of the relationship between two geometries.

Sintassi

relate(geometry, geometry)

Argomenti

  • geometry - una geometria

  • geometry - una geometria

Esempi

  • relate( geom_from_wkt( 'LINESTRING(40 40,120 120)' ), geom_from_wkt( 'LINESTRING(40 40,60 120)' ) ) → “FF1F00102”

Pattern match variant

Tests whether the DE-9IM relationship between two geometries matches a specified pattern.

Sintassi

relate(geometry, geometry, pattern)

Argomenti

  • geometry - una geometria

  • geometry - una geometria

  • pattern - DE-9IM pattern to match

Esempi

  • relate( geom_from_wkt( 'LINESTRING(40 40,120 120)' ), geom_from_wkt( 'LINESTRING(40 40,60 120)' ), '**1F001**' ) → True

14.3.13.94. reverse

Inverte la direzione di una linea invertendo l’ordine dei suoi vertici.

Sintassi

reverse(geometry)

Argomenti

  • geometry - una geometria

Esempi

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

Ulteriori informazioni: Reverse line direction algoritmo

14.3.13.95. rotate

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

Sintassi

rotate(geometry, rotation, [center])

[] indica argomenti facoltativi

Argomenti

  • geometry - una geometria

  • rotation - rotazione in senso orario in gradi

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

Esempi

  • rotate($geometry, 45, make_point(4, 5)) → geometry rotated 45 degrees clockwise around the (4, 5) point

  • rotate($geometry, 45) → geometry rotated 45 degrees clockwise around the center of its bounding box

14.3.13.96. segments_to_lines

Returns a multi line geometry consisting of a line for every segment in the input geometry.

Sintassi

segments_to_lines(geometry)

Argomenti

  • geometry - elemento geometria

Esempi

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

Ulteriori informazioni: Explode lines algoritmo

14.3.13.97. shortest_line

Returns the shortest line joining geometry1 to geometry2. The resultant line will start at geometry1 and end at geometry2.

Sintassi

shortest_line(geometry1, geometry2)

Argomenti

  • geometry1 - geometry to find shortest line from

  • geometry2 - geometry to find shortest line to

Esempi

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

14.3.13.98. simplify

Semplifica una geometria rimuovendo i nodi usando una soglia basata sulla distanza (per esempio l’algoritmo di Douglas Peucker). L’algoritmo preserva le grandi deviazioni nelle geometrie e riduce il numero di vertici in segmenti quasi rettilinei.

Sintassi

simplify(geometry, tolerance)

Argomenti

  • geometry - una geometria

  • tolerance - maximum deviation from straight segments for points to be removed

Esempi

  • geom_to_wkt(simplify(geometry:=geom_from_wkt('LineString(0 0, 5 0.1, 10 0)'),tolerance:=5)) → “LineString(0 0, 10 0)”

Ulteriori informazioni: Semplificazione algoritmo

14.3.13.99. simplify_vw

Simplifies a geometry by removing nodes using an area based threshold (ie, the Visvalingam-Whyatt algorithm). The algorithm removes vertices which create small areas in geometries, e.g., narrow spikes or nearly straight segments.

Sintassi

simplify_vw(geometry, tolerance)

Argomenti

  • geometry - una geometria

  • tolerance - a measure of the maximum area created by a node for the node to be removed

Esempi

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

Ulteriori informazioni: Semplificazione algoritmo

14.3.13.100. single_sided_buffer

Returns a geometry formed by buffering out just one side of a linestring geometry. Distances are in the Spatial Reference System of this geometry.

Sintassi

single_sided_buffer(geometry, distance, [segments=8], [join=1], [miter_limit=2.0])

[] indica argomenti facoltativi

Argomenti

  • geometry - a (multi)linestring geometry

  • distance - buffer distance. Positive values will be buffered to the left of lines, negative values to the right

  • segments - number of segments to use to represent a quarter circle when a round join style is used. A larger number results in a smoother buffer with more nodes.

  • join - join style for corners, where 1 = round, 2 = miter and 3 = bevel

  • miter_limit - limit on the miter ratio used for very sharp corners (when using miter joins only)

Esempi

  • 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

Ulteriori informazioni: Single sided buffer algoritmo

14.3.13.101. smooth

Smooths a geometry by adding extra nodes which round off corners in the geometry. If input geometries contain Z or M values, these will also be smoothed and the output geometry will retain the same dimensionality as the input geometry.

Sintassi

smooth(geometry, [iterations=1], [offset=0.25], [min_length=-1], [max_angle=180])

[] indica argomenti facoltativi

Argomenti

  • geometry - una geometria

  • iterations - number of smoothing iterations to apply. Larger numbers result in smoother but more complex geometries.

  • offset - value between 0 and 0.5 which controls how tightly the smoothed geometry follow the original geometry. Smaller values result in a tighter smoothing, larger values result in looser smoothing.

  • min_length - minimum length of segments to apply smoothing to. This parameter can be used to avoid placing excessive additional nodes in shorter segments of the geometry.

  • max_angle - maximum angle at node for smoothing to be applied (0-180). By lowering the maximum angle intentionally sharp corners in the geometry can be preserved. For instance, a value of 80 degrees will retain right angles in the geometry.

Esempi

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

Ulteriori informazioni: Smooth algoritmo

14.3.13.102. start_point

Restituisce il primo nodo di una geometria.

Sintassi

start_point(geometry)

Argomenti

  • geometry - elemento geometria

Esempi

  • geom_to_wkt(start_point(geom_from_wkt('LINESTRING(4 0, 4 2, 0 2)'))) → “Point (4 0)”

Ulteriori informazioni: Extract specific vertices algoritmo

14.3.13.103. sym_difference

Returns a geometry that represents the portions of two geometries that do not intersect.

Sintassi

sym_difference(geometry1, geometry2)

Argomenti

  • geometry1 - una geometria

  • geometry2 - una geometria

Esempi

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

Ulteriori informazioni: Symmetrical difference algoritmo

14.3.13.104. tapered_buffer

Creates a buffer along a line geometry where the buffer diameter varies evenly over the length of the line.

Sintassi

tapered_buffer(geometry, start_width, end_width, [segments=8])

[] indica argomenti facoltativi

Argomenti

  • geometry - input geometry. Must be a (multi)line geometry.

  • start_width - width of buffer at start of line,

  • end_width - width of buffer at end of line.

  • segments - number of segments to approximate quarter-circle curves in the buffer.

Esempi

  • tapered_buffer(geometry:=geom_from_wkt('LINESTRING(1 2, 4 2)'),start_width:=1,end_width:=2,segments:=8) → A tapered buffer starting with a diameter of 1 and ending with a diameter of 2 along the linestring geometry.

Ulteriori informazioni: Tapered buffers algoritmo

14.3.13.105. touches

Verifica se una geometria tocca un’altra. Restituisce true se le geometrie hanno almeno un punto in comune, ma i loro interni non si intersecano.

Sintassi

touches(geometry1, geometry2)

Argomenti

  • geometry1 - una geometria

  • geometry2 - una geometria

Esempi

  • 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

Ulteriori informazioni: overlay_touches

14.3.13.106. transform

Restituisce la geometria trasformata da un SR di origine a un SR di destinazione.

Sintassi

transform(geometry, source_auth_id, dest_auth_id)

Argomenti

  • geometry - una geometria

  • source_auth_id - l’ID del SR d’origine

  • dest_auth_id - l’ID del SR di destinazione

Esempi

  • geom_to_wkt( transform( make_point(488995.53240249, 7104473.38600835), 'EPSG:2154', 'EPSG:4326' ) ) → “POINT(0 51)”

Ulteriori informazioni: Reproject layer algoritmo

14.3.13.107. translate

Restituisce una versione traslata di una geometria. I calcoli sono nel sistema di riferimento spaziale di questa geometria.

Sintassi

translate(geometry, dx, dy)

Argomenti

  • geometry - una geometria

  • dx - delta x

  • dy - delta y

Esempi

  • translate($geometry, 5, 10) → una geometria dello stesso tipo di quella originale

Ulteriori informazioni: Translate algoritmo

14.3.13.108. union

Returns a geometry that represents the point set union of the geometries.

Sintassi

union(geometry1, geometry2)

Argomenti

  • geometry1 - una geometria

  • geometry2 - una geometria

Esempi

  • geom_to_wkt( union( make_point(4, 4), make_point(5, 5) ) ) → “MULTIPOINT(4 4, 5 5)”

14.3.13.109. wedge_buffer

Returns a wedge shaped buffer originating from a point geometry.

Sintassi

wedge_buffer(center, azimuth, width, outer_radius, [inner_radius=0.0])

[] indica argomenti facoltativi

Argomenti

  • center - center point (origin) of buffer. Must be a point geometry.

  • azimuth - angle (in degrees) for the middle of the wedge to point.

  • width - buffer width (in degrees). Note that the wedge will extend to half of the angular width either side of the azimuth direction.

  • outer_radius - outer radius for buffers

  • inner_radius - optional inner radius for buffers

Esempi

  • wedge_buffer(center:=geom_from_wkt('POINT(1 2)'),azimuth:=90,width:=180,outer_radius:=1) → A wedge shaped buffer centered on the point (1,2), facing to the East, with a width of 180 degrees and outer radius of 1.

Ulteriori informazioni: Create wedge buffers algoritmo

14.3.13.110. within

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

Sintassi

within(geometry1, geometry2)

Argomenti

  • geometry1 - una geometria

  • geometry2 - una geometria

Esempi

  • 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

Ulteriori informazioni: overlay_within

14.3.13.111. $x

Returns the x coordinate of the current point feature. If the feature is a multipoint feature, then the x-coordinate of the first point will be returned.

Sintassi

$x

Esempi

  • $x → 42

14.3.13.112. x

Returns the x coordinate of a point geometry, or the x coordinate of the centroid for a non-point geometry.

Sintassi

x(geometry)

Argomenti

  • geometry - una geometria

Esempi

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

  • x( $geometry ) → x coordinate of the current feature’s centroid

14.3.13.113. $x_at

Retrieves a x coordinate of the current feature’s geometry.

Sintassi

$x_at(i)

Argomenti

  • i - index of point of a line (indices start at 0; negative values apply from the last index, starting at -1)

Esempi

  • $x_at(1) → 5

14.3.13.114. x_max

Returns the maximum x coordinate of a geometry. Calculations are in the spatial reference system of this geometry.

Sintassi

x_max(geometry)

Argomenti

  • geometry - una geometria

Esempi

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

14.3.13.115. x_min

Returns the minimum x coordinate of a geometry. Calculations are in the spatial reference system of this geometry.

Sintassi

x_min(geometry)

Argomenti

  • geometry - una geometria

Esempi

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

14.3.13.116. $y

Returns the y coordinate of the current point feature. If the feature is a multipoint feature, then the y-coordinate of the first point will be returned.

Sintassi

$y

Esempi

  • $y → 42

14.3.13.117. y

Returns the y coordinate of a point geometry, or the y coordinate of the centroid for a non-point geometry.

Sintassi

y(geometry)

Argomenti

  • geometry - una geometria

Esempi

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

  • y( $geometry ) → y coordinate of the current feature’s centroid

14.3.13.118. $y_at

Retrieves a y coordinate of the current feature’s geometry.

Sintassi

$y_at(i)

Argomenti

  • i - index of point of a line (indices start at 0; negative values apply from the last index, starting at -1)

Esempi

  • $y_at(1) → 2

14.3.13.119. y_max

Returns the maximum y coordinate of a geometry. Calculations are in the spatial reference system of this geometry.

Sintassi

y_max(geometry)

Argomenti

  • geometry - una geometria

Esempi

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

14.3.13.120. y_min

Returns the minimum y coordinate of a geometry. Calculations are in the spatial reference system of this geometry.

Sintassi

y_min(geometry)

Argomenti

  • geometry - una geometria

Esempi

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

14.3.13.121. z

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

Sintassi

z(geometry)

Argomenti

  • geometry - una geometria di punti

Esempi

  • z( geom_from_wkt( 'POINTZ(2 5 7)' ) ) → 7

14.3.13.122. z_max

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

Sintassi

z_max(geometry)

Argomenti

  • geometry - a geometry with z coordinate

Esempi

  • 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

14.3.13.123. z_min

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

Sintassi

z_min(geometry)

Argomenti

  • geometry - a geometry with z coordinate

Esempi

  • 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

14.3.14. Funzioni per il Layout

Questo gruppo contiene funzioni per manipolare le proprietà degli oggetti del layout di stampa.

14.3.14.1. item_variables

Returns a map of variables from a layout item inside this print layout.

Sintassi

item_variables(id)

Argomenti

  • id - layout item ID

Esempi

  • map_get( item_variables('Map 0'), 'map_scale') → scale of the item “Map 0” in the current print layout

Ulteriori informazioni: List of default variables

14.3.15. Layer della Mappa

Questo gruppo contiene un elenco dei layer disponibili nel progetto corrente. Questo offre un modo conveniente per scrivere espressioni che si riferiscono a layer multipli, come quando si eseguono query aggrega, attributo o spaziale.

It also provides some convenient functions to manipulate layers.

14.3.15.1. decode_uri

Takes a layer and decodes the uri of the underlying data provider. It depends on the dataprovider, which data is available.

Sintassi

decode_uri(layer, [part])

[] indica argomenti facoltativi

Argomenti

  • layer - The layer for which the uri should be decoded.

  • part - The part of the uri to return. If unspecified, a map with all uri parts will be returned.

Esempi

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

14.3.16. Funzioni mappa

Questo gruppo contiene funzioni per creare o manipolare chiavi e valori di strutture di dati cartografici (noti anche come oggetti dizionario, coppie chiave-valore o array associativi). A differenza di :ref:`list data structure ` dove l’ordine dei valori è importante, l’ordine delle coppie chiave-valore nell’oggetto mappa non è rilevante e i valori sono identificati dalle loro chiavi.

14.3.16.1. from_json

Loads a JSON formatted string.

Sintassi

from_json(string)

Argomenti

  • string - JSON string

Esempi

  • from_json('{"qgis":"rocks"}') → { “qgis”: “rocks” }

  • from_json('[1,2,3]') → [1,2,3]

14.3.16.2. hstore_to_map

Creates a map from a hstore-formatted string.

Sintassi

hstore_to_map(string)

Argomenti

  • string - la stringa in ingresso

Esempi

  • hstore_to_map('qgis=>rocks') → { “qgis”: “rocks” }

14.3.16.3. json_to_map

Creates a map from a json-formatted string.

Sintassi

json_to_map(string)

Argomenti

  • string - la stringa in ingresso

Esempi

  • json_to_map('{"qgis":"rocks"}') → { “qgis”: “rocks” }

14.3.16.4. map

Returns a map containing all the keys and values passed as pair of parameters.

Sintassi

map(key1, value1, key2, value2, …)

Argomenti

  • key - a key (string)

  • value - un valore

Esempi

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

14.3.16.5. map_akeys

Returns all the keys of a map as an array.

Sintassi

map_akeys(map)

Argomenti

  • map - una mappa

Esempi

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

14.3.16.6. map_avals

Returns all the values of a map as an array.

Sintassi

map_avals(map)

Argomenti

  • map - una mappa

Esempi

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

14.3.16.7. map_concat

Restituisce una mappa con tutte le entità delle mappe fornite. Se due mappe contengono la stessa chiave, viene restituito il valore della seconda mappa.

Sintassi

map_concat(map1, map2, …)

Argomenti

  • map - una mappa

Esempi

  • map_concat(map('1','one', '2','overridden'),map('2','two', '3','three')) → { “1”: “one”, “2”: “two”, “3”: “three” }

14.3.16.8. map_delete

Returns a map with the given key and its corresponding value deleted.

Sintassi

map_delete(map, key)

Argomenti

  • map - una mappa

  • key - the key to delete

Esempi

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

14.3.16.9. map_exist

Returns true if the given key exists in the map.

Sintassi

map_exist(map, key)

Argomenti

  • map - una mappa

  • key - the key to lookup

Esempi

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

14.3.16.10. map_get

Returns the value of a map, given its key. Returns NULL if the key does not exist.

Sintassi

map_get(map, key)

Argomenti

  • map - una mappa

  • key - the key to lookup

Esempi

  • map_get(map('1','one','2','two'),'2') → “two”

  • map_get( item_variables('Map 0'), 'map_scale') → scale of the item “Map 0” (if it exists) in the current print layout

14.3.16.11. map_insert

Returns a map with an added key/value. If the key already exists, its value is overridden.

Sintassi

map_insert(map, key, value)

Argomenti

  • map - una mappa

  • key - the key to add

  • value - il valore da aggiungere

Esempi

  • map_insert(map('1','one'),'3','three') → { “1”: “one”, “3”: “three” }

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

14.3.16.12. map_to_hstore

Merge map elements into a hstore-formatted string.

Sintassi

map_to_hstore(map)

Argomenti

  • map - the input map

Esempi

  • map_to_hstore(map('qgis','rocks')) → “«qgis»=>»rocks»”

14.3.16.13. map_to_json

Merge map elements into a json-formatted string.

Sintassi

map_to_json(map)

Argomenti

  • map - the input map

Esempi

  • map_to_json(map('qgis','rocks')) → {«qgis»:»rocks»}

14.3.16.14. to_json

Create a JSON formatted string from a map, array or other value.

Sintassi

to_json(value)

Argomenti

  • value - The input value

Esempi

  • to_json(map('qgis','rocks')) → {«qgis»:»rocks»}

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

14.3.17. Funzioni Matematiche

Questo gruppo contiene funzioni matematiche (ad es. Radice quadrata, seno e coseno).

14.3.17.1. abs

Returns the absolute value of a number.

Sintassi

abs(value)

Argomenti

  • value - un numero

Esempi

  • abs(-2) → 2

14.3.17.2. acos

Returns the inverse cosine of a value in radians.

Sintassi

acos(value)

Argomenti

  • value - cosine of an angle in radians

Esempi

  • acos(0.5) → 1.0471975511966

14.3.17.3. asin

Returns the inverse sine of a value in radians.

Sintassi

asin(value)

Argomenti

  • value - sine of an angle in radians

Esempi

  • asin(1.0) → 1.5707963267949

14.3.17.4. atan

Returns the inverse tangent of a value in radians.

Sintassi

atan(value)

Argomenti

  • value - tan of an angle in radians

Esempi

  • atan(0.5) → 0.463647609000806

14.3.17.5. atan2

Returns the inverse tangent of dy/dx by using the signs of the two arguments to determine the quadrant of the result.

Sintassi

atan2(dy, dx)

Argomenti

  • dy - y coordinate difference

  • dx - x coordinate difference

Esempi

  • atan2(1.0, 1.732) → 0.523611477769969

14.3.17.6. azimuth

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

Sintassi

azimuth(point_a, point_b)

Argomenti

  • point_a - point geometry

  • point_b - point geometry

Esempi

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

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

14.3.17.7. ceil

Rounds a number upwards.

Sintassi

ceil(value)

Argomenti

  • value - un numero

Esempi

  • ceil(4.9) → 5

  • ceil(-4.9) → -4

14.3.17.8. clamp

Restricts an input value to a specified range.

Sintassi

clamp(minimum, input, maximum)

Argomenti

  • minimum - the smallest value input is allowed to take.

  • input - a value which will be restricted to the range specified by minimum and maximum

  • maximum - the largest value input is allowed to take

Esempi

  • clamp(1,5,10) → 5

    input is between 1 and 10 so is returned unchanged

  • clamp(1,0,10) → 1

    input is less than minimum value of 1, so function returns 1

  • clamp(1,11,10) → 10

    input is greater than maximum value of 10, so function returns 10

14.3.17.9. cos

Returns cosine of an angle.

Sintassi

cos(angle)

Argomenti

  • angle - angolo in radianti

Esempi

  • cos(1.571) → 0.000796326710733263

14.3.17.10. degrees

Converte da radianti a gradi.

Sintassi

degrees(radians)

Argomenti

  • radians - valore numerico

Esempi

  • degrees(3.14159) → 180

  • degrees(1) → 57.2958

14.3.17.11. exp

Returns exponential of an value.

Sintassi

exp(value)

Argomenti

  • value - number to return exponent of

Esempi

  • exp(1.0) → 2.71828182845905

14.3.17.12. floor

Rounds a number downwards.

Sintassi

floor(value)

Argomenti

  • value - un numero

Esempi

  • floor(4.9) → 4

  • floor(-4.9) → -5

14.3.17.13. inclination

Restituisce l’inclinazione misurata dallo zenit (0) al nadir (180) del punto_a al punto_b.

Sintassi

inclination(point_a, point_b)

Argomenti

  • point_a - point geometry

  • point_b - point geometry

Esempi

  • 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

14.3.17.14. ln

Returns the natural logarithm of a value.

Sintassi

ln(value)

Argomenti

  • value - numeric value

Esempi

  • ln(1) → 0

  • ln(2.7182818284590452354) → 1

14.3.17.15. log

Returns the value of the logarithm of the passed value and base.

Sintassi

log(base, value)

Argomenti

  • base - any positive number

  • value - any positive number

Esempi

  • log(2, 32) → 5

  • log(0.5, 32) → -5

14.3.17.16. log10

Returns the value of the base 10 logarithm of the passed expression.

Sintassi

log10(value)

Argomenti

  • value - any positive number

Esempi

  • log10(1) → 0

  • log10(100) → 2

14.3.17.17. max

Returns the largest value in a set of values.

Sintassi

max(value1, value2, …)

Argomenti

  • value - un numero

Esempi

  • max(2,10.2,5.5) → 10.2

  • max(20.5,NULL,6.2) → 20.5

14.3.17.18. min

Returns the smallest value in a set of values.

Sintassi

min(value1, value2, …)

Argomenti

  • value - un numero

Esempi

  • min(20.5,10,6.2) → 6.2

  • min(2,-10.3,NULL) → -10.3

14.3.17.19. pi

Restituisce il valore di pi greco per i calcoli.

Sintassi

pi()

Esempi

  • pi() → 3.14159265358979

14.3.17.20. radians

Converte da gradi a radianti

Sintassi

radians(degrees)

Argomenti

  • degrees - valore numerico

Esempi

  • radians(180) → 3.14159

  • radians(57.2958) → 1

14.3.17.21. rand

Returns a random integer within the range specified by the minimum and maximum argument (inclusive). If a seed is provided, the returned will always be the same, depending on the seed.

Sintassi

rand(min, max, [seed=NULL])

[] indica argomenti facoltativi

Argomenti

  • min - an integer representing the smallest possible random number desired

  • max - an integer representing the largest possible random number desired

  • seed - any value to use as seed

Esempi

  • rand(1, 10) → 8

14.3.17.22. randf

Returns a random float within the range specified by the minimum and maximum argument (inclusive). If a seed is provided, the returned will always be the same, depending on the seed.

Sintassi

randf([min=0.0], [max=1.0], [seed=NULL])

[] indica argomenti facoltativi

Argomenti

  • min - an float representing the smallest possible random number desired

  • max - an float representing the largest possible random number desired

  • seed - any value to use as seed

Esempi

  • randf(1, 10) → 4.59258286403147

14.3.17.23. round

Rounds a number to number of decimal places.

Sintassi

round(value, [places=0])

[] indica argomenti facoltativi

Argomenti

  • value - decimal number to be rounded

  • places - Optional integer representing number of places to round decimals to. Can be negative.

Esempi

  • round(1234.567, 2) → 1234.57

  • round(1234.567) → 1235

14.3.17.24. scale_exp

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

Sintassi

scale_exp(value, domain_min, domain_max, range_min, range_max, exponent)

Argomenti

  • value - A value in the input domain. The function will return a corresponding scaled value in the output range.

  • domain_min - Specifies the minimum value in the input domain, the smallest value the input value should take.

  • domain_max - Specifies the maximum value in the input domain, the largest value the input value should take.

  • range_min - Specifies the minimum value in the output range, the smallest value which should be output by the function.

  • range_max - Specifies the maximum value in the output range, the largest value which should be output by the function.

  • exponent - A positive value (greater than 0), which dictates the way input values are mapped to the output range. Large exponents will cause the output values to “ease in”, starting slowly before accelerating as the input values approach the domain maximum. Smaller exponents (less than 1) will cause output values to “ease out”, where the mapping starts quickly but slows as it approaches the domain maximum.

Esempi

  • 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

    easing out, using an exponent of 0.5

14.3.17.25. scale_linear

Transforms a given value from an input domain to an output range using linear interpolation.

Sintassi

scale_linear(value, domain_min, domain_max, range_min, range_max)

Argomenti

  • value - A value in the input domain. The function will return a corresponding scaled value in the output range.

  • domain_min - Specifies the minimum value in the input domain, the smallest value the input value should take.

  • domain_max - Specifies the maximum value in the input domain, the largest value the input value should take.

  • range_min - Specifies the minimum value in the output range, the smallest value which should be output by the function.

  • range_max - Specifies the maximum value in the output range, the largest value which should be output by the function.

Esempi

  • scale_linear(5,0,10,0,100) → 50

  • scale_linear(0.2,0,1,0,360) → 72

    scaling a value between 0 and 1 to an angle between 0 and 360

  • scale_linear(1500,1000,10000,9,20) → 9.6111111

    scaling a population which varies between 1000 and 10000 to a font size between 9 and 20

14.3.17.26. sin

Returns the sine of an angle.

Sintassi

sin(angle)

Argomenti

  • angle - angolo in radianti

Esempi

  • sin(1.571) → 0.999999682931835

14.3.17.27. sqrt

Restituisce la radice quadrata di un valore.

Sintassi

sqrt(value)

Argomenti

  • value - un numero

Esempi

  • sqrt(9) → 3

14.3.17.28. tan

Restituisce la tangente di un angolo.

Sintassi

tan(angle)

Argomenti

  • angle - angolo in radianti

Esempi

  • tan(1.0) → 1.5574077246549

14.3.18. Operatori

Questo gruppo contiene operatori (e.g., +, -, *). Si noti che per la maggior parte delle funzioni matematiche di seguito se uno dei input è NULL il risultato è NULL.

Funzioni

Descrizione

a + b

Somma di due valori (a più b)

a - b

Sottrazione tra due valori (a meno b).

a * b

Moltiplicazione tra due valori (a moltiplicato per b)

a / b

Divisione tra due valori (a diviso per b)

a % b

Resto della divisione di a diviso b (ad esempio, 7 % 2 = 1 o 2 si entra nel 7 tre volte con il resto di 1)

a ^ b

Elevazione a potenza di due valori (ad esempio, 2^2=4 o 2^3=8)

a < b

Confronta due valori e restituisce 1 se il valore di sinistra è inferiore al valore di destra (a è minore di b)

a <= b

Confronta due valori e restiruisce 1 se il valore sinistro è minore o uguale al valore destro

a <> b

Confronta due valori e restituisce 1 se non sono uguali

a = b

Confronta due valori e restituisce 1 se sono uguali

a ! = b

a e b non sono uguali

a > b

Confronta due valori e restituisce 1 se il valore di sinistra è maggiore del valore di destra (a è maggiore di b)

a >= b

Confronta due valori e restituisce 1 se il valore di sinistra è maggiore o uguale al valore di destra

a ~ b

a corrisponde al valore assoluto di b

||

Unisce insieme due valori in una stringa. Se uno dei valori è NULL, il risultato sarà NULL

“\n”

Inserisce una nuova riga in una stringa

LIKE

Restituisce 1 se il primo parametro corrisponde al filtro scelto

ILIKE

Restituisce 1 se il primo parametro corrisponde senza distinzione tra maiuscole e minuscole al filtro scelto (ILIKE può essere usato al posto di LIKE per rendere la corrispondenza senza distinzione tra maiuscole e minuscole)

a IS b

Verifica se due valori sono identici. Restituisce 1 se a è uguale a b

a OR b

Restituisce 1 quando la condizione a o la condizione b è vera

a AND b

Restituisce 1 quando le condizioni a e b sono vere

NOT

Inverte una condizione

«Column_name»

Valore del campo Column_name, fare attenzione a non confondere con l’apice semplice, vedi sotto

“string”

valore stringa, fare attenzione a non confondere con gli apici doppi, vedi sopra

NULL

valore nullo

a IS NULL

a ha valore nullo

a IS NOT NULL

a contiene un valore

a IN (value[,value])

a ha valore contenuto nei valori in lista

a NOT IN (value[,value])

il valore di a non è tra i valori in lista

Alcuni esempi:

  • Unire una stringa e un valore da un nome di colonna:

    'My feature''s id is: ' || "gid"
    
  • Test if the «description» attribute field starts with the “Hello” string in the value (note the position of the % character):

    "description" LIKE 'Hello%'
    

14.3.19. Processing Functions

Questo gruppo contiene funzioni che operano su algoritmi di processing.

14.3.19.1. parameter

Returns the value of a processing algorithm input parameter.

Sintassi

parameter(name)

Argomenti

  • name - nome del parametro in ingresso corrispondente

Esempi

  • parameter('BUFFER_SIZE') → 5.6

14.3.20. Funzioni Raster

Questo gruppo contiene funzioni che operano sui layer raster.

14.3.20.1. raster_statistic

Restituisce statistiche da un layer raster.

Sintassi

raster_statistic(layer, band, property)

Argomenti

  • layer - a string, representing either a raster layer name or layer ID

  • band - integer representing the band number from the raster layer, starting at 1

  • property - a string corresponding to the property to return. Valid options are:

    • min: valore minimo

    • max: valore massimo

    • avg: valore medio (media)

    • stdev: deviazione standard dei valori

    • range: gamma di valori (max - min)

    • sum: somma di tutti i valori del raster

Esempi

  • raster_statistic('lc',1,'avg') → Average value from band 1 from “lc” raster layer

  • raster_statistic('ac2010',3,'min') → Minimum value from band 3 from “ac2010” raster layer

14.3.20.2. raster_value

Restituisce il valore raster trovato nel punto specificato.

Sintassi

raster_value(layer, band, point)

Argomenti

  • layer - il nome o l’id di un layer raster

  • band - il numero di banda da cui campionare il valore.

  • point - geometria di punti (per le geometrie multi parte che hanno più di una parte, verrà restituito un valore NULL)

Esempi

  • raster_value('dem', 1, make_point(1,1)) → 25

14.3.21. Funzioni relative ai record e agli attributi

Questo gruppo contiene funzioni che operano sugli identificativi dei record.

14.3.21.1. attribute

Returns an attribute from a feature.

Variant 1

Returns the value of an attribute from the current feature.

Sintassi

attribute(attribute_name)

Argomenti

  • attribute_name - nome dell’attributo da restituire

Esempi

  • attribute( 'name' ) → value stored in “name” attribute for the current feature

Variant 2

Allows the target feature and attribute name to be specified.

Sintassi

attribute(feature, attribute_name)

Argomenti

  • feature - a feature

  • attribute_name - nome dell’attributo da restituire

Esempi

  • attribute( @atlas_feature, 'name' ) → value stored in “name” attribute for the current atlas feature

14.3.21.2. attributes

Returns a map containing all attributes from a feature, with field names as map keys.

Variant 1

Returns a map of all attributes from the current feature.

Sintassi

attributes()

Esempi

  • attributes()['name'] → value stored in “name” attribute for the current feature

Variant 2

Allows the target feature to be specified.

Sintassi

attributes(feature)

Argomenti

  • feature - a feature

Esempi

  • attributes( @atlas_feature )['name'] → value stored in “name” attribute for the current atlas feature

Ulteriori informazioni: Funzioni mappa

14.3.21.3. $currentfeature

Restituisce l’elemento corrente da valutare. Questo può essere usato con la funzione “attribute” per valutare i valori degli attributi dell’elemento corrente.

Sintassi

$currentfeature

Esempi

  • attribute( $currentfeature, 'name' ) → value stored in “name” attribute for the current feature

14.3.21.4. display_expression

Returns the display expression for a given feature in a layer. The expression is evaluated by default. Can be used with zero, one or more arguments, see below for details.

No parameters

If called with no parameters, the function will evaluate the display expression of the current feature in the current layer.

Sintassi

display_expression()

Esempi

  • display_expression() → The display expression of the current feature in the current layer.

One “feature” parameter

If called with a “feature” parameter only, the function will evaluate the specified feature from the current layer.

Sintassi

display_expression(feature)

Argomenti

  • feature - L’elemento da valutare.

Esempi

  • display_expression(@atlas_feature) → The display expression of the current atlas feature.

Layer and feature parameters

If the function is called with both a layer and a feature, it will evaluate the specified feature from the specified layer.

Sintassi

display_expression(layer, feature, [evaluate=true])

[] indica argomenti facoltativi

Argomenti

  • layer - Il layer (o il suo ID o nome)

  • feature - L’elemento da valutare.

  • evaluate - If the expression must be evaluated. If false, the expression will be returned as a string literal only (which could potentially be later evaluated using the “eval” function).

Esempi

  • display_expression( 'streets', get_feature_by_id('streets', 1)) → The display expression of the feature with the ID 1 on the layer “streets”.

  • display_expression('a_layer_id', $currentfeature, 'False') → The display expression of the given feature not evaluated.

14.3.21.5. get_feature

Restituisce il primo elemento di un layer che corrisponde ad un dato valore di attributo.

Sintassi

get_feature(layer, attribute, value)

Argomenti

  • layer - nome o ID del layer

  • attribute - nome dell’attributo

  • value - valore dell’attributo da accoppiare

Esempi

  • get_feature('streets','name','main st') → primo elemento trovato nel layer «streets» con valore «main st» nel campo «name»

14.3.21.6. get_feature_by_id

Restituisce l’elemento con un id su un layer.

Sintassi

get_feature_by_id(layer, feature_id)

Argomenti

  • layer - layer, nome layer o id layer

  • feature_id - l’id dell’elemento che si vuole acquisire

Esempi

  • get_feature_by_id('streets', 1) → l’elemento con l’id 1 nel layer «streets»

Ulteriori informazioni: $id

14.3.21.7. $id

Restituisce l’id dell’elemento della riga corrente.

Sintassi

$id

Esempi

  • $id → 42

14.3.21.8. is_selected

Restituisce True se un’elemento è selezionato. Può essere usato con zero, uno o due argomenti, vedi sotto per i dettagli.

No parameters

Se chiamata senza parametri, la funzione restituisce vero se l’elemento corrente nel layer corrente è selezionato.

Sintassi

is_selected()

Esempi

  • is_selected() → True se l’elemento corrente nel layer corrente è selezionato.

One “feature” parameter

Se chiamata solo con un parametro “feature”, la funzione restituisce true se l’elemento specificato dal layer corrente è selezionato.

Sintassi

is_selected(feature)

Argomenti

  • feature - L’elemento che dovrebbe essere controllato per la selezione.

Esempi

  • is_selected(@atlas_feature) → True if a selected feature on the current layer is the active atlas feature.

  • is_selected(get_feature(@layer, 'name', 'Main St.'))) → True if the unique named «Main St.» feature on the current layer is selected.

  • is_selected(get_feature_by_id(@layer, 1)) → True if the feature with the id 1 on the current layer is selected.

Due parametri

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.

Sintassi

is_selected(layer, feature)

Argomenti

  • layer - The layer (its ID or name) on which the selection will be checked.

  • feature - L’elemento che dovrebbe essere controllato per la selezione.

Esempi

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

14.3.21.9. maptip

Returns the maptip for a given feature in a layer. The expression is evaluated by default. Can be used with zero, one or more arguments, see below for details.

No parameters

If called with no parameters, the function will evaluate the maptip of the current feature in the current layer.

Sintassi

maptip()

Esempi

  • maptip() → The maptip of the current feature in the current layer.

One “feature” parameter

If called with a “feature” parameter only, the function will evaluate the specified feature from the current layer.

Sintassi

maptip(feature)

Argomenti

  • feature - L’elemento da valutare.

Esempi

  • maptip(@atlas_feature) → The maptip of the current atlas feature.

Layer and feature parameters

If the function is called with both a layer and a feature, it will evaluate the specified feature from the specified layer.

Sintassi

maptip(layer, feature, [evaluate=true])

[] indica argomenti facoltativi

Argomenti

  • layer - Il layer (o il suo ID o nome)

  • feature - L’elemento da valutare.

  • evaluate - If the expression must be evaluated. If false, the expression will be returned as a string literal only (which could potentially be later evaluated using the “eval_template” function).

Esempi

  • maptip('streets', get_feature_by_id('streets', 1)) → The maptip of the feature with the ID 1 on the layer “streets”.

  • maptip('a_layer_id', $currentfeature, 'False') → The maptip of the given feature not evaluated.

14.3.21.10. num_selected

Returns the number of selected features on a given layer. By default works on the layer on which the expression is evaluated.

Sintassi

num_selected([layer=current layer])

[] indica argomenti facoltativi

Argomenti

  • layer - The layer (or its id or name) on which the selection will be checked.

Esempi

  • num_selected() → The number of selected features on the current layer.

  • num_selected('streets') → The number of selected features on the layer streets

14.3.21.11. represent_value

Returns the configured representation value for a field value. It depends on the configured widget type. Often, this is useful for “Value Map” widgets.

Sintassi

represent_value(value, fieldName)

Argomenti

  • value - The value which should be resolved. Most likely a field.

  • fieldName - The field name for which the widget configuration should be loaded. (Optional)

Esempi

  • represent_value("field_with_value_map") → Description for value

  • represent_value('static value', 'field_name') → Description for static value

Ulteriori informazioni: widget types

14.3.21.12. sqlite_fetch_and_increment

Manage autoincrementing values in sqlite databases.

SQlite default values can only be applied on insert and not prefetched.

This makes it impossible to acquire an incremented primary key via AUTO_INCREMENT before creating the row in the database. Sidenote: with postgres, this works via the option evaluate default values.

When adding new features with relations, it is really nice to be able to already add children for a parent, while the parents form is still open and hence the parent feature uncommitted.

To get around this limitation, this function can be used to manage sequence values in a separate table on sqlite based formats like gpkg.

The sequence table will be filtered for a sequence id (filter_attribute and filter_value) and the current value of the id_field will be incremented by 1 and the incremented value returned.

If additional columns require values to be specified, the default_values map can be used for this purpose.

Nota

This function modifies the target sqlite table. It is intended for usage with default value configurations for attributes.

When the database parameter is a layer and the layer is in transaction mode, the value will only be retrieved once during the lifetime of a transaction and cached and incremented. This makes it unsafe to work on the same database from several processes in parallel.

Sintassi

sqlite_fetch_and_increment(database, table, id_field, filter_attribute, filter_value, [default_values])

[] indica argomenti facoltativi

Argomenti

  • database - Path to the sqlite file or geopackage layer

  • table - Name of the table that manages the sequences

  • id_field - Name of the field that contains the current value

  • filter_attribute - Name the field that contains a unique identifier for this sequence. Must have a UNIQUE index.

  • filter_value - Name of the sequence to use.

  • default_values - Map with default values for additional columns on the table. The values need to be fully quoted. Functions are allowed.

Esempi

  • 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

Ulteriori informazioni: Proprietà Progetto - Sorgenti Dati, Creare una relazione uno a molti o molti a molti

14.3.21.13. uuid

Generates a Universally Unique Identifier (UUID) for each row using the Qt QUuid::createUuid method. Each UUID is 38 characters long.

Sintassi

uuid()

Esempi

  • uuid() → “{0bd2f60f-f157-4a6d-96af-d4ba4cb366a1}”

14.3.22. Relations

This group contains the list of the relations available in the current project, with their description. It provides a quick access to the relation ID for writing an expression (with e.g. the relation_aggregate function) or customizing a form.

14.3.23. Funzioni Stringa

Questo gruppo contiene le funzioni che operano sulle stringhe (ad esempio sostituisci, converti in maiuscolo).

14.3.23.1. ascii

Returns the unicode code associated with the first character of a string.

Sintassi

ascii(string)

Argomenti

  • string - the string to convert to unicode code

Esempi

  • ascii('Q') → 81

14.3.23.2. char

Returns the character associated with a unicode code.

Sintassi

char(code)

Argomenti

  • code - a unicode code number

Esempi

  • char(81) → “Q”

14.3.23.3. concat

Concatenates several strings to one. NULL values are converted to empty strings. Other values (like numbers) are converted to strings.

Sintassi

concat(string1, string2, …)

Argomenti

  • string - a string value

Esempi

  • concat('sun', 'set') → “sunset”

  • concat('a','b','c','d','e') → “abcde”

  • concat('Anno ', 1984) → “Anno 1984”

  • concat('The Wall', NULL) → “The Wall”

Informazioni sulla concatenazione dei campi

You can also concatenate strings or field values using either || or + operators, with some special characteristics:

  • The + operator also means sum up expression, so if you have an integer (field or numeric value) operand, this can be error prone and you better use the others:

    'My feature id is: ' + "gid" => triggers an error as gid returns an integer
    
  • When any of the arguments is a NULL value, either || or + will return a NULL value. To return the other arguments regardless the NULL value, you may want to use the concat function:

    'My feature id is: ' + NULL ==> NULL
    'My feature id is: ' || NULL => NULL
    concat('My feature id is: ', NULL) => My feature's id is
    

14.3.23.4. format

Format a string using supplied arguments.

Sintassi

format(string, arg1, arg2, …)

Argomenti

  • string - A string with place holders for the arguments. Use %1, %2, etc for placeholders. Placeholders can be repeated.

  • arg - any type. Any number of arguments.

Esempi

  • format('This %1 a %2','is', 'test') → “This is a test”

14.3.23.5. format_date

Formats a date type or string into a custom string format. Uses Qt date/time format strings. See QDateTime::toString.

Sintassi

format_date(datetime, format, [language])

[] indica argomenti facoltativi

Argomenti

  • datetime - date, time or datetime value

  • format - String template used to format the string.

    Expression

    Output

    d

    il giorno come numero senza zero iniziale (da 1 a 31)

    dd

    il giorno come numero con uno zero iniziale (da 01 a 31)

    ddd

    il nome abbreviato del giorno nella lingua locale (ad esempio, da “Mon” a “Sun”)

    dddd

    il nome non abbreviato del giorno nella lingua locale (ad esempio, da “lunedì” a “domenica”)

    M

    il mese come numero non preceduto da zero (1-12)

    MM

    il mese come numero preceduto da zero (01-12)

    MMM

    the abbreviated localized month name (e.g. “Jan” to “Dec”)

    MMMM

    il nome completo del mese (ad esempio, da “gennaio” a “dicembre”)

    yy

    l’anno come numero a due cifre (00-99)

    yyyy

    l’anno come numero a quattro cifre

    These expressions may be used for the time part of the format string:

    Expression

    Output

    h

    the hour without a leading zero (0 to 23 or 1 to 12 if AM/PM display)

    hh

    the hour with a leading zero (00 to 23 or 01 to 12 if AM/PM display)

    H

    the hour without a leading zero (0 to 23, even with AM/PM display)

    HH

    the hour with a leading zero (00 to 23, even with AM/PM display)

    m

    the minute without a leading zero (0 to 59)

    mm

    the minute with a leading zero (00 to 59)

    s

    the second without a leading zero (0 to 59)

    ss

    the second with a leading zero (00 to 59)

    z

    the milliseconds without trailing zeroes (0 to 999)

    zzz

    the milliseconds with trailing zeroes (000 to 999)

    AP or A

    interpret as an AM/PM time. AP must be either “AM” or “PM”.

    ap or a

    Interpret as an AM/PM time. ap must be either “am” or “pm”.

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to format the date into a custom string

Esempi

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

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

  • format_date('2012-05-15','dddd') → “Tuesday”

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

14.3.23.6. format_number

Returns a number formatted with the locale separator for thousands. Also truncates the decimal places to the number of supplied places.

Sintassi

format_number(number, places, [language])

[] indica argomenti facoltativi

Argomenti

  • number - number to be formatted

  • places - integer representing the number of decimal places to truncate the string to.

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to format the number into a string

Esempi

  • format_number(10000000.332,2) → “10,000,000.33”

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

14.3.23.7. left

Returns a substring that contains the n leftmost characters of the string.

Sintassi

left(string, length)

Argomenti

  • string - una stringa

  • length - integer. The number of characters from the left of the string to return.

Esempi

  • left('Hello World',5) → “Hello”

14.3.23.8. length

Returns the number of characters in a string or the length of a geometry linestring.

Operatori stringa

Restituisce il numero di caratteri in una stringa.

Sintassi

length(string)

Argomenti

  • string - la stringa sulla quale calcolare la lunghezza

Esempi

  • length('hello') → 5

Geometry variant

Calculate the length of a geometry line object. 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.

Sintassi

length(geometry)

Argomenti

  • geometry - line geometry object

Esempi

  • length(geom_from_wkt('LINESTRING(0 0, 4 0)')) → 4.0

14.3.23.9. lower

Converts a string to lower case letters.

Sintassi

lower(string)

Argomenti

  • string - the string to convert to lower case

Esempi

  • lower('HELLO World') → “hello world”

14.3.23.10. lpad

Returns a string padded on the left to the specified width, using a fill character. If the target width is smaller than the string’s length, the string is truncated.

Sintassi

lpad(string, width, fill)

Argomenti

  • string - string to pad

  • width - length of new string

  • fill - character to pad the remaining space with

Esempi

  • lpad('Hello', 10, 'x') → “xxxxxHello”

  • lpad('Hello', 3, 'x') → “Hel”

14.3.23.11. regexp_match

Return the first matching position matching a regular expression within an unicode string, or 0 if the substring is not found.

Sintassi

regexp_match(input_string, regex)

Argomenti

  • input_string - the string to test against the regular expression

  • regex - The regular expression to test against. Backslash characters must be double escaped (e.g., «\\s» to match a white space character or «\\b» to match a word boundary).

Esempi

  • regexp_match('QGIS ROCKS','\\sROCKS') → 5

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

14.3.23.12. regexp_replace

Returns a string with the supplied regular expression replaced.

Sintassi

regexp_replace(input_string, regex, replacement)

Argomenti

  • input_string - the string to replace matches in

  • regex - The regular expression to replace. Backslash characters must be double escaped (e.g., «\\s» to match a white space character).

  • replacement - The string that will replace any matching occurrences of the supplied regular expression. Captured groups can be inserted into the replacement string using \\1, \\2, etc.

Esempi

  • regexp_replace('QGIS SHOULD ROCK','\\sSHOULD\\s',' DOES ') → “QGIS DOES ROCK”

  • regexp_replace('ABC123','\\d+','') → “ABC”

  • regexp_replace('my name is John','(.*) is (.*)','\\2 is \\1') → “John is my name”

14.3.23.13. regexp_substr

Returns the portion of a string which matches a supplied regular expression.

Sintassi

regexp_substr(input_string, regex)

Argomenti

  • input_string - the string to find matches in

  • regex - The regular expression to match against. Backslash characters must be double escaped (e.g., «\\s» to match a white space character).

Esempi

  • regexp_substr('abc123','(\\d+)') → “123”

14.3.23.14. replace

Returns a string with the supplied string, array, or map of strings replaced.

String & array variant

Returns a string with the supplied string or array of strings replaced by a string or an array of strings.

Sintassi

replace(string, before, after)

Argomenti

  • string - la stringa in ingresso

  • before - the string or array of strings to replace

  • after - the string or array of strings to use as a replacement

Esempi

  • replace('QGIS SHOULD ROCK','SHOULD','DOES') → “QGIS DOES ROCK”

  • replace('QGIS ABC',array('A','B','C'),array('X','Y','Z')) → “QGIS XYZ”

  • replace('QGIS',array('Q','S'),'') → “GI”

Map variant

Returns a string with the supplied map keys replaced by paired values.

Sintassi

replace(string, map)

Argomenti

  • string - la stringa in ingresso

  • map - the map containing keys and values

Esempi

  • replace('APP SHOULD ROCK',map('APP','QGIS','SHOULD','DOES')) → “QGIS DOES ROCK”

14.3.23.16. rpad

Returns a string padded on the right to the specified width, using a fill character. If the target width is smaller than the string’s length, the string is truncated.

Sintassi

rpad(string, width, fill)

Argomenti

  • string - string to pad

  • width - length of new string

  • fill - character to pad the remaining space with

Esempi

  • rpad('Hello', 10, 'x') → “Helloxxxxx”

  • rpad('Hello', 3, 'x') → “Hel”

14.3.23.17. strpos

Return the first matching position of a substring within another string, or 0 if the substring is not found.

Sintassi

strpos(haystack, needle)

Argomenti

  • haystack - string that is to be searched

  • needle - string to search for

Esempi

  • strpos('HELLO WORLD','WORLD') → 7

  • strpos('HELLO WORLD','GOODBYE') → 0

14.3.23.18. substr

Returns a part of a string.

Sintassi

substr(string, start, [length])

[] indica argomenti facoltativi

Argomenti

  • string - the full input string

  • start - integer representing start position to extract beginning with 1; if start is negative, the return string will begin at the end of the string minus the start value

  • length - integer representing length of string to extract; if length is negative, the return string will omit the given length of characters from the end of the string

Esempi

  • substr('HELLO WORLD',3,5) → “LLO W”

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

14.3.23.19. title

Converts all words of a string to title case (all words lower case with leading capital letter).

Sintassi

title(string)

Argomenti

  • string - the string to convert to title case

Esempi

  • title('hello WOrld') → “Hello World”

14.3.23.20. to_string

Converte un numero in stringa.

Sintassi

to_string(number)

Argomenti

  • number - Numero intero o numero reale. Il numero da convertire a stringa.

Esempi

  • to_string(123) → “123”

14.3.23.21. trim

Removes all leading and trailing whitespace (spaces, tabs, etc) from a string.

Sintassi

trim(string)

Argomenti

  • string - string to trim

Esempi

  • trim('   hello world    ') → “hello world”

14.3.23.22. upper

Converts a string to upper case letters.

Sintassi

upper(string)

Argomenti

  • string - the string to convert to upper case

Esempi

  • upper('hello WOrld') → “HELLO WORLD”

14.3.23.23. wordwrap

Returns a string wrapped to a maximum/minimum number of characters.

Sintassi

wordwrap(string, wrap_length, [delimiter_string])

[] indica argomenti facoltativi

Argomenti

  • string - the string to be wrapped

  • wrap_length - an integer. If wrap_length is positive the number represents the ideal maximum number of characters to wrap; if negative, the number represents the minimum number of characters to wrap.

  • delimiter_string - Optional delimiter string to wrap to a new line.

Esempi

  • wordwrap('UNIVERSITY OF QGIS',13) → “UNIVERSITY OF<br>QGIS”

  • wordwrap('UNIVERSITY OF QGIS',-3) → “UNIVERSITY<br>OF QGIS”

14.3.24. Espressioni utente

This group contains the expressions saved as user expressions.

14.3.25. Variabili

This group contains dynamic variables related to the application, the project file and other settings. The availability of variables depends on the context:

  • dalla finestra di dialogo expressionSelect Seleziona tramite una espressione

  • dalla finestra di dialogo calculateField Calcolatore campo

  • dalla finestra di dialogo Proprietà layer

  • dal layout di stampa

To use these variables in an expression, they should be preceded by the @ character (e.g, @row_number).

Variable

Descrizione

algorithm_id

The unique ID of an algorithm

animation_end_time

End of the animation’s overall temporal time range (as a datetime value)

animation_interval

Duration of the animation’s overall temporal time range (as an interval value)

animation_start_time

Start of the animation’s overall temporal time range (as a datetime value)

atlas_feature

The current atlas feature (as feature object)

atlas_featureid

The current atlas feature ID

atlas_featurenumber

The current atlas feature number in the layout

atlas_filename

The current atlas file name

atlas_geometry

The current atlas feature geometry

atlas_layerid

The current atlas coverage layer ID

atlas_layername

The current atlas coverage layer name

atlas_pagename

The current atlas page name

atlas_totalfeatures

The total number of features in atlas

canvas_cursor_point

The last cursor position on the canvas in the project’s geographical coordinates

cluster_color

The color of symbols within a cluster, or NULL if symbols have mixed colors

cluster_size

The number of symbols contained within a cluster

current_feature

The feature currently being edited in the attribute form or table row

current_geometry

La geometria dell’elemento che si sta modificando nel modulo o nella riga della tabella

current_parent_feature

represents the feature currently being edited in the parent form. Only usable in an embedded form context.

current_parent_geometry

represents the geometry of the feature currently being edited in the parent form. Only usable in an embedded form context.

form_mode

What the form is used for, like AddFeatureMode, SingleEditMode, MultiEditMode, SearchMode, AggregateSearchMode or IdentifyMode as string.

frame_duration

Temporal duration of each animation frame (as an interval value)

frame_number

Current frame number during animation playback

frame_rate

Number of frames per second during animation playback

fullextent_maxx

Maximum x value from full canvas extent (including all layers)

fullextent_maxy

Maximum y value from full canvas extent (including all layers)

fullextent_minx

Minimum x value from full canvas extent (including all layers)

fullextent_miny

Minimum y value from full canvas extent (including all layers)

geometry_part_count

The number of parts in rendered feature’s geometry

geometry_part_num

The current geometry part number for feature being rendered

geometry_point_count

The number of points in the rendered geometry’s part

geometry_point_num

The current point number in the rendered geometry’s part

grid_axis

The current grid annotation axis (eg, “x” for longitude, “y” for latitude)

grid_number

The current grid annotation value

item_id

The layout item user ID (not necessarily unique)

item_uuid

The layout item unique ID

layer

Il layer corrente

layer_id

L” ID del layer corrente

layer_ids

The IDs of all the map layers in the current project as a list

layer_name

The name of current layer

layers

Tutti i layer della mappa nel progetto corrente come elenco

layout_dpi

The composition resolution (DPI)

layout_name

Il nome del layer

layout_numpages

Il numero di pagine nel layout

layout_page

Il numero di pagina dell’oggetto corrente nel layout

layout_pageheight

The active page height in the layout (in mm)

layout_pagewidth

The active page width in the layout (in mm)

legend_column_count

Il numero di colonne nella legenda

legend_filter_by_map

Indicates if the content of the legend is filtered by the map

legend_filter_out_atlas

Indicates if the atlas is filtered out of the legend

legend_split_layers

Indicates if layers can be split in the legend

legend_title

The title of the legend

legend_wrap_string

The character(s) used to wrap the legend text

map_crs

The Coordinate reference system of the current map

map_crs_acronym

The acronym of the Coordinate reference system of the current map

map_crs_definition

The full definition of the Coordinate reference system of the current map

map_crs_description

The name of the Coordinate reference system of the current map

map_crs_ellipsoid

The acronym of the ellipsoid of the Coordinate reference system of the current map

map_crs_proj4

The Proj4 definition of the Coordinate reference system of the current map

map_crs_wkt

The WKT definition of the Coordinate reference system of the current map

map_end_time

The end of the map’s temporal time range (as a datetime value)

map_extent

The geometry representing the current extent of the map

map_extent_center

The point feature at the center of the map

map_extent_height

The current height of the map

map_extent_width

The current width of the map

map_id

The ID of current map destination. This will be “canvas” for canvas renders, and the item ID for layout map renders

map_interval

The duration of the map’s temporal time range (as an interval value)

map_layer_ids

The list of map layer IDs visible in the map

map_layers

The list of map layers visible in the map

map_rotation

The current rotation of the map

map_scale

The current scale of the map

map_start_time

The start of the map’s temporal time range (as a datetime value)

map_units

The units of map measurements

model_path

Full path (including file name) of current model (or project path if model is embedded in a project).

model_folder

Folder containing current model (or project folder if model is embedded in a project).

model_name

Name of current model

model_group

Group for current model

notification_message

Contenuto del messaggio di notifica spedito dalla sorgente (disponibile solo per azioni provenienti da notifiche dal sorgente).

parent

Si riferisce alla geometria del layer padre, fornendo accesso ai suoi attributi e alla sua geometria quando si filtra una funzione aggregate.

project_abstract

The project abstract, taken from project metadata

project_area_units

The area unit for the current project, used when calculating areas of geometries

project_author

The project author, taken from project metadata

project_basename

The basename of current project’s filename (without path and extension)

project_creation_date

The project creation date, taken from project metadata

project_crs

The Coordinate reference system of the project

project_crs_arconym

The acronym of the Coordinate reference system of the project

project_crs_definition

The full definition of the Coordinate reference system of the project

project_crs_description

The description of the Coordinate reference system of the project

project_crs_ellipsoid

The ellipsoid of the Coordinate reference system of the project

project_crs_proj4

The Proj4 representation of the Coordinate reference system of the project

project_crs_wkt

The WKT (well known text) representation of the coordinate reference system of the project

project_distance_units

The distance unit for the current project, used when calculating lengths of geometries and distances

project_ellipsoid

The name of the ellipsoid of the current project, used when calculating geodetic areas or lengths of geometries

project_filename

The filename of the current project

project_folder

The folder of the current project

project_home

The home path of the current project

project_identifier

The project identifier, taken from the project’s metadata

project_keywords

The project keywords, taken from the project’s metadata

project_last_saved

Date/time when project was last saved.

project_path

The full path (including file name) of the current project

project_title

The title of current project

project_units

The units of the project’s CRS

qgis_locale

The current language of QGIS

qgis_os_name

The current Operating system name, eg “windows”, “linux” or “osx”

qgis_platform

The QGIS platform, eg “desktop” or “server”

qgis_release_name

The current QGIS release name

qgis_short_version

The current QGIS version short string

qgis_version

The current QGIS version string

qgis_version_no

L’attuale numero di versione QGIS

row_number

Memorizza il numero della riga corrente

snapping_results

Dà accesso ai risultati dell’aggancio durante la digitalizzazione di una geometria (disponibile solo nella funzionalità di aggiunta)

scale_value

The current scale bar distance value

symbol_angle

The angle of the symbol used to render the feature (valid for marker symbols only)

symbol_color

The color of the symbol used to render the feature

symbol_count

The number of features represented by the symbol (in the layout legend)

symbol_id

The Internal ID of the symbol (in the layout legend)

symbol_label

The label for the symbol (either a user defined label or the default autogenerated label - in the layout legend)

symbol_layer_count

Total number of symbol layers in the symbol

symbol_layer_index

Current symbol layer index

symbol_marker_column

Column number for marker (valid for point pattern fills only).

symbol_marker_row

Row number for marker (valid for point pattern fills only).

user_account_name

Il nome utente corrente dell’account nel sistema operativo

user_full_name

Il nome utente dell’utente corrente nel sistema operativo

value

Il valore corrente

with_variable

Consente di impostare una variabile da utilizzare all’interno di un’espressione ed evitare di ricalcolare ripetutamente lo stesso valore

zoom_level

Livello di zoom del tassello visualizzato (derivato dalla corrente scala della mappa). Normalmente nell’intervallo [0, 20].

Alcuni esempi:

  • Restituire la coordinata X del centro di un oggetto della mappa nel layout:

    x( map_get( item_variables( 'map1'), 'map_extent_center' ) )
    
  • Restituire, per ogni elemento nel layer corrente, il numero di aeroporti sovrapposti:

    aggregate( layer:='airport', aggregate:='count', expression:="code",
                   filter:=intersects( $geometry, geometry( @parent ) ) )
    
  • Ottenere l’object_id del primo punto agganciato di una linea:

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

14.3.26. Funzioni recenti

Questo gruppo contiene le funzioni usate di recente. A seconda del contesto di utilizzo (selezione di elementi, calcolatore di campi, generica), le espressioni applicate di recente vengono aggiunte alla lista corrispondente (fino a dieci espressioni), ordinate dalla più alla meno recente. Questo rende facile recuperare e riapplicare rapidamente le espressioni usate in precedenza.