13.2. Lista delle funzioni

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

13.2.1. Funzioni di Aggregazione

Questo gruppo contiene funzioni che aggregano valori su layer e campi

13.2.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 opzionali

Argomenti

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

  • aggregate - una stringa corrispondente all’aggregato 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 utilizzare per unire i valori per gli aggregati «concatena» e «concatena_univoco».

  • 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

13.2.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 opzionali

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

13.2.1.3. collect

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

Sintassi

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

[] indica argomenti opzionali

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

13.2.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 opzionali

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

13.2.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 opzionali

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

13.2.1.6. count

Restituisce il conteggio gli elementi che coincidono.

Sintassi

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

[] indica argomenti opzionali

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

13.2.1.7. count_distinct

Restituisce il numero di valori distinti.

Sintassi

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

[] indica argomenti opzionali

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

13.2.1.8. count_missing

Restituisce il numero di valori nulli (NULL).

Sintassi

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

[] indica argomenti opzionali

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

13.2.1.9. iqr

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

Sintassi

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

[] indica argomenti opzionali

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

13.2.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 opzionali

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

13.2.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 opzionali

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

13.2.1.12. maximum

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

Sintassi

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

[] indica argomenti opzionali

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

13.2.1.13. mean

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

Sintassi

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

[] indica argomenti opzionali

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

13.2.1.14. median

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

Sintassi

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

[] indica argomenti opzionali

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

13.2.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 opzionali

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

13.2.1.16. minimum

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

Sintassi

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

[] indica argomenti opzionali

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

13.2.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 opzionali

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

13.2.1.18. q1

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

Sintassi

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

[] indica argomenti opzionali

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 population, raggruppato per il campo state

13.2.1.19. q3

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

Sintassi

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

[] indica argomenti opzionali

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("population",group_by:="state") → terzo quartile del valore della population, raggruppato per il campo state

13.2.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 opzionali

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

13.2.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 opzionali

Argomenti

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

  • aggregate - una stringa corrispondente all’aggregato 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

13.2.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 opzionali

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

13.2.1.23. sum

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

Sintassi

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

[] indica argomenti opzionali

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

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

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

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

13.2.2.2. array_all

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

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

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

13.2.2.5. array_contains

Restituisce TRUE se un array contiene il valore indicato.

Sintassi

array_contains(array, value)

Argomenti

  • array - un array

  • value - il valore da cercare

Esempi

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

13.2.2.6. array_count

Conta il numero di occorrenze di un dato valore in una array.

Sintassi

array_count(array, value)

Argomenti

  • array - un array

  • valore - il valore da conteggiare

Esempi

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

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

13.2.2.8. array_filter

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

Sintassi

array_filter(array, expression, [limit=0])

[] indica argomenti opzionali

Argomenti

  • array - un array

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

  • limit - numero massimo di elementi da restituire. Usa 0 per restituire tutti i valori.

Esempi

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

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

13.2.2.9. array_find

Restituisce l’indice più basso (0 per il primo) di un valore all’interno di un array. Restituisce -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('a', 'b', 'c'), 'b') → 1

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

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

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

13.2.2.12. array_get

Restituisce il valore ennesimo (0 per il primo) o l’ultimo valore -N (-1 per l’ultimo) di una matrice.

Sintassi

array_get(array, pos)

Argomenti

  • array - un array

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

Esempi

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

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

Suggerimento

You can also use the index operator ([]) to get a value from an array.

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

13.2.2.14. array_intersect

Restituisce TRUE se almeno un elemento dell’array1 esiste nell’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

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

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

13.2.2.17. array_majority

Restituisce i valori più comuni in un array.

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • array - un array

  • option=”all” - una stringa che specifica la gestione dei valori in restituzione. Le opzioni valide sono:

    • all: Predefinito, tutti i valori più comuni sono restituiti in un array.

    • any: Restituisce uno dei valori più comuni.

    • median: Restituisce la mediana dei valori più comuni. I valori non aritmetici sono ignorati.

    • real_majority: Restituisce il valore che si verifica in più della metà della consistenza dell’array.

Esempi

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

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

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

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

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

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

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

13.2.2.18. array_max

Restituisce il valore massimo di un array.

Sintassi

array_max(array)

Argomenti

  • array - un array

Esempi

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

13.2.2.19. array_mean

Restituisce la media dei valori aritmetici in una matrice. I valori non numerici nella matrice vengono ignorati.

Sintassi

array_mean(array)

Argomenti

  • array - un array

Esempi

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

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

13.2.2.20. array_median

Restituisce la mediana dei valori aritmetici in una matrice. I valori non aritmetici nella matrice vengono ignorati.

Sintassi

array_median(array)

Argomenti

  • array - un array

Esempi

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

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

13.2.2.21. array_min

Restituisce il valore minimo di un array.

Sintassi

array_min(array)

Argomenti

  • array - un array

Esempi

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

13.2.2.22. array_minority

Restituisce i valori meno frequenti in un array.

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • array - un array

  • option=”all” - una stringa che specifica la gestione dei valori in restituzione. Le opzioni valide sono:

    • all: Predefinito, tutti i valori meno frequenti sono restituiti in un array.

    • any: Restituisce uno dei valori meno frequenti.

    • median: Restituisce la mediana dei valori meno frequenti. I valori non aritmetici sono ignorati.

    • real_minority: Restituisce i valori che si verificano in meno della metà della consistenza dell’array.

Esempi

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

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

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

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

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

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

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

13.2.2.23. array_prepend

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 ]

13.2.2.24. array_prioritize

Restituisce una matrice ordinata utilizzando l’ordinamento specificato in un’altra matrice. I valori che sono presenti nel primo array ma che mancano nel secondo array saranno aggiunti alla fine del risultato.

Sintassi

array_prioritize(array, array_prioritize)

Argomenti

  • array - un array

  • array_prioritize - an array with values ordered by priority

Esempi

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

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

13.2.2.25. array_remove_all

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

13.2.2.26. array_remove_at

Restituisce un array con la rimozione dell’elemento all’indice dato. Supporta indici positivi (0 per il primo elemento) e negativi (l’ultimo valore -N, -1 per l’ultimo elemento).

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 ]

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

13.2.2.27. array_replace

Restituisce un array con il valore, l’array o la mappa di valori sostituiti.

Valore & matrice variabile

Restituisce un array con il valore o l’array di valori dato sostituito da un altro valore o da un array di valori.

Sintassi

array_replace(array, before, after)

Argomenti

  • array - l’array in ingresso

  • before - il valore o l’array di valori da sostituire

  • after - il valore o l’array di valori da usare come sostituzione

Esempi

  • array_replace(array('QGIS','SHOULD','ROCK'),'SHOULD','DOES') → [ “QGIS”, “DOES”, “ROCK” ]

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

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

Variabile mappa

Restituisce un array con le chiavi fornite della mappa sostituite dai loro valori associati.

Sintassi

array_replace(array, map)

Argomenti

  • array - l’array in ingresso

  • map - la mappa contenente chiavi e valori

Esempi

  • array_replace(array('APP', 'SHOULD', 'ROCK'),map('APP','QGIS','SHOULD','DOES')) → [ “QGIS”, “DOES”, “ROCK” ]

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

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

13.2.2.30. array_sort

Restituisce l’array dato con i suoi elementi ordinati.

Sintassi

array_sort(array, [ascending=true])

[] indica argomenti opzionali

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 ]

13.2.2.31. array_sum

Restituisce la somma dei valori aritmetici in una matrice. I valori non numerici nella matrice vengono ignorati.

Sintassi

array_sum(array)

Argomenti

  • array - un array

Esempi

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

13.2.2.32. 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 opzionali

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”

13.2.2.33. generate_series

Crea un array contenente una sequenza di numeri.

Sintassi

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

[] indica argomenti opzionali

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 ]

13.2.2.34. geometries_to_array

Suddivide una geometria in geometrie più semplici in un array.

Sintassi

geometries_to_array(geometry)

Argomenti

  • geometry - la geometria in ingresso

Esempi

  • geometries_to_array(geom_from_wkt('GeometryCollection (Polygon ((5 8, 4 1, 3 2, 5 8)),LineString (3 2, 4 2))')) → un array di geometrie poligono e linea

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

  • geometries_to_array(geom_from_wkt('MULTIPOLYGON(((5 5,0 0,0 10,5 5)),((5 5,10 10,10 0,5 5))')) → un array di due geometrie poligono

13.2.2.35. 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 opzionali

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

13.2.2.36. 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 opzionali

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

13.2.3. Funzioni colore

Questo gruppo contiene funzioni per la manipolazione dei colori.

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

13.2.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_cmyka(100,50,0,10,200) → “0,115,230,200”

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

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

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

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

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

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

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

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

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

13.2.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 opzionali

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”

13.2.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 risultante non è prevedibile.

Esempi

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

Ulteriori informazioni: lighter

13.2.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 risultante non è prevedibile.

Esempi

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

Ulteriori informazioni: darker

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

13.2.3.16. ramp_color

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

Variabile scala colori salvata

Restituisce una stringa che rappresenta un colore da una scala salvata

Sintassi

ramp_color(ramp_name, value)

Argomenti

  • ramp_name - il nome della scala di colori in formato stringa, per esempio “Spectral”

  • valore - la posizione sulla scala da cui selezionare il colore come numero reale tra 0 e 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.

Variabile di scala colori creata dall’espressione

Restituisce una stringa che rappresenta un colore da una scala creata con un’espressione

Sintassi

ramp_color(ramp, value)

Argomenti

  • ramp - La scala di colori

  • valore - la posizione sulla scala da cui selezionare il colore come numero reale tra 0 e 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

13.2.3.17. set_color_part

Imposta un componente di colore specifico per una stringa di colore, ad esempio il componente rosso o il componente alfa.

Sintassi

set_color_part(color, component, value)

Argomenti

  • color - un colore in formato stringa

  • component - una stringa corrispondente al componente di colore da impostare. 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)

  • value - nuovo valore per il componente colore, rispettando gli intervalli elencati sopra

Esempi

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

13.2.4. Funzioni Condizionali

Questo gruppo contiene funzioni per eseguire controlli condizionali nelle espressioni.

13.2.4.1. CASE

CASE è usato per valutare una serie di condizioni e restituire un risultato per la prima condizione soddisfatta. Le condizioni sono valutate in modo sequenziale, e se una condizione è vera, la valutazione si ferma e viene restituito il risultato corrispondente. Se nessuna delle condizioni è vera, viene restituito il valore della clausola ELSE. Inoltre, se nessuna clausola ELSE è impostata e nessuna delle condizioni è soddisfatta, viene restituito NULL.

CASE

WHEN condition THEN result

[ …n ]

[ ELSE result ]

END

[ ] indica componenti opzionali

Argomenti

  • WHEN condition - Un’espressione condizionale da valutare

  • THEN result - Se la condition è valutata a True, allora viene valutato e restituito result.

  • ELSE result - Se nessuna delle condizioni precedenti è valutata come vera, allora viene valutato e restituito result .

Esempi

  • CASE WHEN "name" IS NULL THEN 'None' END → Restituisce la stringa “None” se il campo «name» è NULL

  • CASE WHEN $area > 10000 THEN 'Big property' WHEN $area > 5000 THEN 'Medium property' ELSE 'Small property' END → Restituisce la stringa “Big property” se l’area è più grande di 10000, “Medium property” se l’area è tra 5000 e 10000, e “Small property” per gli altri

13.2.4.2. coalesce

Restituisce il primo valore non NULL dalla lista dell’espressione.

Questa funzione può accettare qualsiasi numero di argomenti.

Sintassi

coalesce(expression1, expression2, …)

Argomenti

  • expression - qualsiasi espressione o valore valido, indipendentemente dal tipo.

Esempi

  • coalesce(NULL, 2) → 2

  • coalesce(NULL, 2, 3) → 2

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

  • coalesce("fieldA", "fallbackField", 'ERROR') → valore di fieldA se non è NULL altrimenti il valore di «fallbackField» o la stringa “ERROR” se entrambi sono NULL

13.2.4.3. if

Verifica una condizione e restituisce un risultato diverso a seconda del controllo sulla condizione.

Sintassi

if(condition, result_when_true, result_when_false)

Argomenti

  • condition - la condizione che dovrebbe essere controllata

  • result_when_true - il risultato che sarà restituito quando la condizione è vera o un altro valore che non sia convertibile in falso.

  • result_when_false - il risultato che sarà restituito quando la condizione è falsa o un altro valore che si converte in falso come 0 o “”. Anche NULL sarà convertito in 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”

13.2.4.4. nullif

Restituisce un valore NULL se value1 è uguale a value2; altrimenti restituisce value1. Questo può essere usato per sostituire condizionatamente i valori con NULL.

Sintassi

nullif(value1, value2)

Argomenti

  • value1 - Il valore che dovrebbe essere usato o sostituito con NULL.

  • value2 - Il valore di controllo che provocherà la sostituzione del NULL.

Esempi

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

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

  • nullif("name", '') → NULL, se il campo «name» è una stringa vuota (o già NULL), il campo «name» in ogni altro caso.

13.2.4.5. regexp_match

Restituisce la prima posizione corrispondente a un’espressione regolare all’interno di una stringa unicode, o 0 se la sottostringa non viene trovata.

Sintassi

regexp_match(input_string, regex)

Argomenti

  • input_string - la stringa da testare in base all’espressione regolare

  • regex - L’espressione regolare da testare. I caratteri di backslash devono essere sottoposti a doppio escape (ad esempio, «\\s» per trovare un carattere di spazio bianco o «\\b» per trovare un confine di parola).

Esempi

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

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

13.2.4.6. try

Prova un’espressione e restituisce il suo valore se privo di errori. Se l’espressione restituisce un errore, verrà restituito un valore alternativo se disponibile, altrimenti la funzione restituirà NULL.

Sintassi

try(expression, [alternative])

[] indica argomenti opzionali

Argomenti

  • expression - l’espressione che dovrebbe essere eseguita

  • alternative - il risultato che sarà restituito se l’espressione restituisce un errore.

Esempi

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

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

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

13.2.5. Funzioni di conversione

Questo gruppo contiene funzioni per convertire un tipo di dati in un altro (ad esempio, stringa da/a intero, binario da/a stringa, stringa a data, …).

13.2.5.1. from_base64

Decodifica una stringa nella codifica Base64 in un valore binario.

Sintassi

from_base64(string)

Argomenti

  • string - la stringa da decodificare

Esempi

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

13.2.5.2. hash

Crea un hash da una stringa con un dato metodo. Un byte (8 bit) è rappresentato con due «cifre» esadecimali, quindi «md4» (16 byte) produce una stringa esadecimale lunga 16 * 2 = 32 caratteri e «keccak_512» (64 byte) produce una stringa esadecimale lunga 64 * 2 = 128 caratteri.

Sintassi

hash(string, method)

Argomenti

  • stringa - la stringa da sottoporre ad hash

  • method - Il metodo hash tra “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”

13.2.5.3. md5

Crea un hash md5 da una stringa.

Sintassi

md5(string)

Argomenti

  • stringa - la stringa da sottoporre ad hash

Esempi

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

13.2.5.4. sha256

Crea un hash sha256 da una stringa.

Sintassi

sha256(string)

Argomenti

  • stringa - la stringa da sottoporre ad hash

Esempi

  • sha256('QGIS') → “eb045cba7a797aaa06ac58830846e40c8e8c780bc0676d3393605fae50c05309”

13.2.5.5. to_base64

Codifica un valore binario in una stringa, usando la codifica Base64.

Sintassi

to_base64(value)

Argomenti

  • value - il valore binario da codificare

Esempi

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

13.2.5.6. to_date

Converte una stringa in un oggetto data. Una stringa di formato opzionale può essere fornita per analizzare la stringa; vedi QDate::fromString o la documentazione della funzione format_date per ulteriore documentazione sul formato. Per impostazione predefinita viene usato il formato del paese corrente dell’utente QGIS.

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • string - stringa che rappresenta un valore di data

  • format - formato usato per convertire la stringa in una data

  • language - lingua (in minuscolo, due o tre lettere, codice lingua ISO 639) usata per convertire la stringa in una data. Per impostazione predefinita viene usato il formato del paese corrente dell’utente QGIS.

Esempi

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

  • to_date('June 29, 2019','MMMM d, yyyy') → 2019-06-29, se il paese corrente usa il nome “June” per il sesto mese, altrimenti si verifica un errore

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

13.2.5.7. to_datetime

Converte una stringa in un oggetto datetime. Una stringa di formato opzionale può essere fornita per analizzare la stringa; vedi QDate::fromString, QTime::fromString o la documentazione della funzione format_date per ulteriore documentazione sul formato. Per impostazione predefinita viene usato il formato del paese corrente dell’utente QGIS.

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • string - stringa che rappresenta un valore di data e ora

  • format - formato usato per convertire la stringa in un datetime

  • language - lingua (in minuscolo, due o tre lettere, codice lingua ISO 639) usata per convertire la stringa in un datetime. Per impostazione predefinita viene usato il formato del paese corrente dell’utente QGIS.

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, se il paese corrente usa il nome “June” per il sesto mese, altrimenti si verifica un errore

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

13.2.5.8. to_decimal

Converte una coordinata in gradi, minuti e secondi nel suo equivalente decimale.

Sintassi

to_decimal(value)

Argomenti

  • value - Una stringa di gradi, minuti e secondi.

Esempi

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

13.2.5.9. to_dm

Converte una coordinata in gradi, minuti.

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • coordinate - Un valore di latitudine o longitudine.

  • axis - L’asse della coordinata. O “x” o “y”.

  • precision - Numero di decimali.

  • formatting - Indica il tipo di formattazione. I valori accettabili sono NULL (default), “aligned” o “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

13.2.5.10. to_dms

Converte una coordinata in gradi, minuti e secondi.

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • coordinate - Un valore di latitudine o longitudine.

  • axis - L’asse della coordinata. O “x” o “y”.

  • precision - Numero di decimali.

  • formatting - Indica il tipo di formattazione. I valori accettabili sono NULL (default), “aligned” o “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

13.2.5.11. to_int

Converte una stringa in un numero intero. Non viene restituito nulla se un valore non può essere convertito in numero intero (ad esempio “123asd” non è valido).

Sintassi

to_int(string)

Argomenti

  • string - stringa da convertire a numero intero

Esempi

  • to_int('123') → 123

13.2.5.12. to_interval

Converte una stringa in un tipo di intervallo. Può essere usato per ricavare giorni, ore, mesi, ecc. da una data.

Sintassi

to_interval(string)

Argomenti

  • string - una stringa che rappresenta un intervallo. I formati consentiti includono {n} giorni {n} ore {n} mesi.

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

13.2.5.13. to_real

Converte una stringa in un numero reale. Non viene restituito nulla se un valore non può essere convertito in reale (ad esempio “123.56asd” non è valido). I numeri vengono arrotondati dopo aver salvato le modifiche se la precisione è inferiore al risultato della conversione.

Sintassi

to_real(string)

Argomenti

  • string - stringa da convertire a numero reale

Esempi

  • to_real('123.45') → 123.45

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

13.2.5.15. to_time

Converte una stringa in un oggetto time. Una stringa di formato opzionale può essere fornita per analizzare la stringa; vedi QTime::fromString per ulteriore documentazione sul formato.

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • string - stringa che rappresenta un valore time

  • format - formato usato per convertire la stringa in un time

  • language - lingua (in minuscolo, due o tre lettere, codice lingua ISO 639) usata per convertire la stringa in un 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

13.2.6. Funzioni personalizzate

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

13.2.7. Funzioni di data e ora

Questo gruppo contiene funzioni per gestire dati di data e time. Questo gruppo condivide diverse funzioni con i gruppi Funzioni di conversione (to_date, to_time, to_datetime, to_interval) e Funzioni Stringa (format_date).

Nota

Memorizzazione di data, datetime e intervalli su campi

La possibilità di memorizzare i valori data, time e datetime direttamente sui campi dipende dal fornitore dell’origine dati (ad esempio, Shapefile accetta il formato data, ma non il formato datetime o time). I seguenti sono alcuni suggerimenti per superare questa limitazione:

  • date, datetime e time possono essere convertiti e memorizzati in campi di tipo testo usando la funzione format_date().

  • Intervals possono essere memorizzati in campi di tipo intero o decimale dopo aver usato una delle funzioni di estrazione della data (ad esempio, day() per ottenere l’intervallo espresso in giorni)

13.2.7.1. age

Restituisce la differenza tra due date o datetime.

La differenza viene restituita come Intervallo e deve essere usata con una delle seguenti funzioni per estrarre informazioni utili:

  • year

  • month

  • week

  • day

  • hour

  • minute

  • second

Sintassi

age(datetime1, datetime2)

Argomenti

  • datetime1 - una stringa, data o datetime che rappresenta la data successiva

  • datetime2 - una stringa, data o datetime che rappresenta la data precedente

Esempi

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

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

13.2.7.2. datetime_from_epoch

Restituisce un datetime la cui data e ora sono il numero di millisecondi, msecs, che sono passati dal 1970-01-01T00:00:00.000, Coordinated Universal Time (Qt.UTC), e convertiti in Qt.LocalTime.

Sintassi

datetime_from_epoch(int)

Argomenti

  • int - numero (millisecondi)

Esempi

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

13.2.7.3. day

Estrae il giorno da una data, o il numero di giorni da un intervallo.

Variabile Data

Estrae il giorno da una data o datetime.

Sintassi

day(date)

Argomenti

  • date - un valore di data o datetime

Esempi

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

Variabile Intervallo

Calcola la durata in giorni di un intervallo.

Sintassi

day(interval)

Argomenti

  • interval - valore dell’intervallo da cui ricavare il numero di giorni

Esempi

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

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

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

13.2.7.4. day_of_week

Restituisce il giorno della settimana per una data o datetime specificato. Il valore restituito va da 0 a 6, dove 0 corrisponde a una domenica e 6 a un sabato.

Sintassi

day_of_week(date)

Argomenti

  • date - valore di data o datetime

Esempi

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

13.2.7.5. epoch

Restituisce l’intervallo in millisecondi tra il tempo di riferimento di unix e un dato valore di data.

Sintassi

epoch(date)

Argomenti

  • date - un valore di data o datetime

Esempi

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

13.2.7.6. format_date

Formatta un tipo di data o una stringa in un formato personalizzato. Utilizza le stringhe del formato data/ora di Qt. Vedi QDateTime::toString.

Sintassi

format_date(datetime, format, [language])

[] indica argomenti opzionali

Argomenti

  • datetime - data, ora o valore datetime

  • format - Modello di stringa usato per formattare la stringa.

    Espressione

    Risultato

    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 “Lun” a “Dom”)

    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

    format - il nome abbreviato del mese localizzato (ad esempio, da “Jan” a “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

    Queste espressioni possono essere usate per la parte temporale della stringa di formato:

    Espressione

    Risultato

    h

    l’ora senza lo zero iniziale (da 0 a 23 o da 1 a 12 in caso di visualizzazione AM/PM)

    hh

    l’ora con uno zero iniziale (da 00 a 23 o da 01 a 12 in caso di visualizzazione AM/PM)

    H

    l’ora senza lo zero iniziale (da 0 a 23, anche con la visualizzazione AM/PM)

    HH

    l’ora con uno zero iniziale (da 00 a 23, anche con visualizzazione AM/PM)

    m

    il minuto senza lo zero iniziale (da 0 a 59)

    mm

    il minuto con uno zero iniziale (da 00 a 59)

    s

    il secondo senza uno zero iniziale (da 0 a 59)

    ss

    il secondo con uno zero iniziale (da 00 a 59)

    z

    i millisecondi senza zeri iniziali (da 000 a 999)

    zzz

    i millisecondi con zeri iniziali (da 000 a 999)

    AP or A

    interpretare come un orario AM/PM. AP deve essere o “AM” o “PM”.

    ap or a

    Interpretare come un orario AM/PM. ap deve essere o “am” o “pm”.

  • language - lingua (in minuscolo, a due o tre lettere, codice lingua ISO 639) usata per formattare la data in una stringa personalizzata. Per impostazione predefinita viene usato il formato del paese corrente dell’utente di QGIS.

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”, se il formato locale corrente è una versione inglese

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

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

13.2.7.7. hour

Estrae la parte di ora da un datetime o da un orario, o il numero di ore da un intervallo.

Variabile Time

Estrae la parte dell’ora da un’ora o da un datetime.

Sintassi

hour(datetime)

Argomenti

  • datetime - un valore di tempo o di data

Esempi

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

Variabile Intervallo

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

13.2.7.8. make_date

Genera un valore di data dai numeri di anno, mese e giorno.

Sintassi

make_date(year, month, day)

Argomenti

  • year - Numero dell’anno. Gli anni da 1 a 99 sono interpretati come tali. L’anno 0 non è valido.

  • month - Numero del mese, dove 1=Gennaio

  • day - Numero del giorno, cominciando da 1 per il primo giorno del mese

Esempi

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

13.2.7.9. make_datetime

Crea un valore datetime dai numeri di anno, mese, giorno, ora, minuto e secondo.

Sintassi

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

Argomenti

  • year - Numero dell’anno. Gli anni da 1 a 99 sono interpretati come tali. L’anno 0 non è valido.

  • month - Numero del mese, dove 1=Gennaio

  • day - Numero del giorno, cominciando da 1 per il primo giorno del mese

  • 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

13.2.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 opzionali

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

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

13.2.7.12. minute

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

Variabile Time

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

Sintassi

minute(datetime)

Argomenti

  • datetime - un valore di tempo o di data

Esempi

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

Variabile Intervallo

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

13.2.7.13. month

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

Variabile Data

Estrae la parte del mese da una data o datetime.

Sintassi

month(date)

Argomenti

  • date - un valore di data o datetime

Esempi

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

Variabile Intervallo

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

13.2.7.14. now

Restituisce la data e l’ora attuali. La funzione è statica e restituisce risultati validi durante la valutazione. L’ora restituita è quella in cui viene preparata l’espressione.

Sintassi

now()

Esempi

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

13.2.7.15. second

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

Variabile Time

Estrae la parte dei secondi da un tempo o da un datetime.

Sintassi

second(datetime)

Argomenti

  • datetime - un valore di tempo o di data

Esempi

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

Variabile Intervallo

Calcola la lunghezza in secondi di un intervallo.

Sintassi

second(interval)

Argomenti

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

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

13.2.7.16. to_date

Converte una stringa in un oggetto data. Una stringa di formato opzionale può essere fornita per analizzare la stringa; vedi QDate::fromString o la documentazione della funzione format_date per ulteriore documentazione sul formato. Per impostazione predefinita viene usato il formato del paese corrente dell’utente QGIS.

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • string - stringa che rappresenta un valore di data

  • format - formato usato per convertire la stringa in una data

  • language - lingua (in minuscolo, due o tre lettere, codice lingua ISO 639) usata per convertire la stringa in una data. Per impostazione predefinita viene usato il formato del paese corrente dell’utente QGIS.

Esempi

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

  • to_date('June 29, 2019','MMMM d, yyyy') → 2019-06-29, se il paese corrente usa il nome “June” per il sesto mese, altrimenti si verifica un errore

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

13.2.7.17. to_datetime

Converte una stringa in un oggetto datetime. Una stringa di formato opzionale può essere fornita per analizzare la stringa; vedi QDate::fromString, QTime::fromString o la documentazione della funzione format_date per ulteriore documentazione sul formato. Per impostazione predefinita viene usato il formato del paese corrente dell’utente QGIS.

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • string - stringa che rappresenta un valore di data e ora

  • format - formato usato per convertire la stringa in un datetime

  • language - lingua (in minuscolo, due o tre lettere, codice lingua ISO 639) usata per convertire la stringa in un datetime. Per impostazione predefinita viene usato il formato del paese corrente dell’utente QGIS.

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, se il paese corrente usa il nome “June” per il sesto mese, altrimenti si verifica un errore

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

13.2.7.18. to_interval

Converte una stringa in un tipo di intervallo. Può essere usato per ricavare giorni, ore, mesi, ecc. da una data.

Sintassi

to_interval(string)

Argomenti

  • string - una stringa che rappresenta un intervallo. I formati consentiti includono {n} giorni {n} ore {n} mesi.

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

13.2.7.19. to_time

Converte una stringa in un oggetto time. Una stringa di formato opzionale può essere fornita per analizzare la stringa; vedi QTime::fromString per ulteriore documentazione sul formato.

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • string - stringa che rappresenta un valore time

  • format - formato usato per convertire la stringa in un time

  • language - lingua (in minuscolo, due o tre lettere, codice lingua ISO 639) usata per convertire la stringa in un 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

13.2.7.20. week

Estrae il numero di settimana da una data, o il numero di settimane da un intervallo.

Variabile Data

Estrae il numero delle settimane da una data o datetime.

Sintassi

week(date)

Argomenti

  • date - un valore di data o datetime

Esempi

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

Variabile Intervallo

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

13.2.7.21. year

Estrae la parte di anno da una data, o il numero di anni da un intervallo.

Variabile Data

Estrae la parte anno da una data o datetime.

Sintassi

year(date)

Argomenti

  • date - un valore di data o datetime

Esempi

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

Variabile Intervallo

Calcola la lunghezza in anni di un intervallo.

Sintassi

year(interval)

Argomenti

  • interval - valore dell’intervallo dal quale restituire il numero di anni

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>
    

13.2.8. Campi e Valori

Contiene un elenco di campi del layer attivo e valori speciali. L’elenco dei campi include quelli memorizzati nel dataset, virtual e auxiliary e quelli di joins.

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 Campioni e Tutti i Valori Univoci. I valori richiesti vengono quindi visualizzati e puoi utilizzare la casella Cerca… 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.

13.2.8.1. NULL

Equivale a un valore NULL.

Sintassi

NULL

Esempi

  • NULL → un valore NULL

Nota

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

13.2.9. Funzioni per i File e i Percorsi

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

13.2.9.1. base_file_name

Restituisce il nome base del file senza il suffisso della cartella o del file.

Sintassi

base_file_name(path)

Argomenti

  • path - un percorso di file o un valore di layer di mappa. Se viene specificato il valore di un layer di mappa, verrà utilizzata la fonte del file del layer.

Esempi

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

13.2.9.2. exif

Recupera i valori dei tag exif da un file immagine.

Sintassi

exif(path, [tag])

[] indica argomenti opzionali

Argomenti

  • path - Un percorso di file immagine o un valore di layer di mappa. Se viene specificato il valore di un layer di mappa, verrà utilizzata la fonte del file del layer.

  • tag - Il tag da restituire. Se vuoto, verrà restituita una mappa con tutti i valori dei tag exif.

Esempi

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

13.2.9.3. file_exists

Restituisce TRUE se un percorso file esiste.

Sintassi

file_exists(path)

Argomenti

  • path - un percorso di file o un valore di layer di mappa. Se viene specificato il valore di un layer di mappa, verrà utilizzata la fonte del file del layer.

Esempi

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

13.2.9.4. file_name

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

Sintassi

file_name(path)

Argomenti

  • path - un percorso di file o un valore di layer di mappa. Se viene specificato il valore di un layer di mappa, verrà utilizzata la fonte del file del layer.

Esempi

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

13.2.9.5. file_path

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

Sintassi

file_path(path)

Argomenti

  • path - un percorso di file o un valore di layer di mappa. Se viene specificato il valore di un layer di mappa, verrà utilizzata la fonte del file del layer.

Esempi

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

13.2.9.6. file_size

Restituisce la dimensione (in byte) di un file.

Sintassi

file_size(path)

Argomenti

  • path - un percorso di file o un valore di layer di mappa. Se viene specificato il valore di un layer di mappa, verrà utilizzata la fonte del file del layer.

Esempi

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

13.2.9.7. file_suffix

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

Sintassi

file_suffix(path)

Argomenti

  • path - un percorso di file o un valore di layer di mappa. Se viene specificato il valore di un layer di mappa, verrà utilizzata la fonte del file del layer.

Esempi

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

13.2.9.8. is_directory

Restituisce TRUE se un percorso corrisponde a una cartella.

Sintassi

is_directory(path)

Argomenti

  • path - un percorso di file o un valore di layer di mappa. Se viene specificato il valore di un layer di mappa, verrà utilizzata la fonte del file del layer.

Esempi

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

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

13.2.9.9. is_file

Restituisce TRUE se un percorso corrisponde a un file.

Sintassi

is_file(path)

Argomenti

  • path - un percorso di file o un valore di layer di mappa. Se viene specificato il valore di un layer di mappa, verrà utilizzata la fonte del file del layer.

Esempi

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

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

13.2.10. Funzioni modulo

Questo gruppo contiene funzioni che operano esclusivamente nel contesto del modulo della tabella degli attributi. Per esempio, nelle impostazioni di field’s widgets.

13.2.10.1. current_parent_value

Utilizzabile solo in un contesto di modulo incorporato, questa funzione restituisce il valore corrente, non salvato, di un campo nel modulo padre che si sta modificando. Questo differirà dagli effettivi valori degli attributi dell’elemento padre per gli elementi che sono attualmente in fase di modifica o che non sono ancora stati aggiunti ad un layer padre. Quando viene usata in un’espressione di filtro del widget value-relation, questa funzione dovrebbe essere racchiusa in una “coalesce()” che può recuperare l’effettivo elemento padre dal layer quando il modulo non è usato in un contesto incorporato.

Sintassi

current_parent_value(field_name)

Argomenti

  • field_name - un nome di campo nel modulo padre corrente

Esempi

  • current_parent_value( 'FIELD_NAME' ) → Il valore corrente di un campo “FIELD_NAME” nel modulo padre.

13.2.10.2. current_value

Restituisce il valore corrente, non salvato, di un campo nel modulo o nella riga della tabella che si sta modificando. Questo differirà dai valori effettivi dell’attributo dell’elemento per gli elementi che sono attualmente in fase di modifica o che non sono ancora stati aggiunti ad un 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”.

13.2.11. Funzioni varie di confronto

Questo gruppo contiene funzioni per confronti vari tra valori.

13.2.11.1. hamming_distance

Restituisce la distanza di Hamming tra due stringhe. Questo equivale al numero di caratteri nelle posizioni corrispondenti all’interno delle stringhe in ingresso in cui i caratteri sono diversi. Le stringhe in ingresso devono avere la stessa lunghezza e il confronto è sensibile alle maiuscole e alle minuscole.

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

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

13.2.11.2. levenshtein

Restituisce la distanza di modifica Levenshtein tra due stringhe. Questo equivale al numero minimo di modifiche dei caratteri (inserzioni, cancellazioni o sostituzioni) necessarie per cambiare una stringa in un’altra.

La distanza di Levenshtein è una misura della somiglianza tra due stringhe. Distanze minori significano che le stringhe sono più simili, e distanze maggiori indicano stringhe più diverse. La distanza è sensibile alle maiuscole e alle minuscole.

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

13.2.11.3. longest_common_substring

Restituisce la più lunga sottostringa comune tra due stringhe. Questa sottostringa è la stringa più lunga che è in una sottostringa delle due stringhe in ingresso. Per esempio, la più lunga sottostringa comune di «ABABC» e «BABCA» è «BABC». La sottostringa è sensibile alle maiuscole e alle minuscole.

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”

13.2.11.4. soundex

Restituisce la rappresentazione Soundex di una stringa. Soundex è un algoritmo di corrispondenza fonetica, quindi le stringhe con suoni simili dovrebbero essere rappresentate dallo stesso codice Soundex.

Sintassi

soundex(string)

Argomenti

  • string - una stringa

Esempi

  • soundex('robert') → “R163”

  • soundex('rupert') → “R163”

  • soundex('rubin') → “R150”

13.2.12. Funzioni Generali

Questo gruppo contiene funzioni generali assortite.

13.2.12.1. env

Ottiene una variabile d’ambiente e restituisce il suo contenuto come stringa. Se la variabile non viene trovata, viene restituito NULL. Questo è utile per inserire configurazioni specifiche del sistema come lettere di unità o prefissi di percorso. La definizione delle variabili d’ambiente dipende dal sistema operativo, controlla con il tuo amministratore di sistema o con la documentazione del sistema operativo come questo può essere impostato.

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

13.2.12.2. eval

Valuta un’espressione passata in una stringa. Utile per espandere i parametri dinamici passati come variabili di contesto o campi.

Sintassi

eval(expression)

Argomenti

  • expression - un’espressione stringa

Esempi

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

  • eval(@expression_var) → [qualunque sia il risultato della valutazione di @expression_var …]

13.2.12.3. eval_template

Valuta un modello passato in una stringa. Utile per espandere i parametri dinamici passati come variabili di contesto o campi.

Sintassi

eval_template(template)

Argomenti

  • template - un modello stringa

Esempi

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

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

13.2.12.5. mime_type

Restituisce il tipo mime dei dati binari.

Sintassi

mime_type(bytes)

Argomenti

  • bytes - dato binario

Esempi

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

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

13.2.12.6. var

Restituisce il valore memorizzato in una variabile specificata.

Sintassi

var(name)

Argomenti

  • name - un nome di variabile

Esempi

  • var('qgis_version') → “2.12”

Ulteriori informazioni: Lista delle variables <expression_variables> predefinite

13.2.12.7. with_variable

Questa funzione imposta una variabile per qualsiasi codice di espressione che sarà fornito come 3° parametro. Questo è utile solo per espressioni complicate, dove lo stesso valore calcolato deve essere usato in posti diversi.

Sintassi

with_variable(name, value, expression)

Argomenti

  • name - il nome della variabile da impostare

  • value - la variabile da impostare

  • espressione - l’espressione per la quale la variabile sarà disponibile

Esempi

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

13.2.13. Funzioni Geometria

Questo gruppo contiene funzioni che operano su oggetti geometrici (per esempio buffer, transform, $area).

13.2.13.1. affine_transform

Restituisce la geometria dopo una trasformazione affine. I calcoli sono nel sistema di riferimento spaziale di questa geometria. Le operazioni vengono eseguite in ordine di scala, rotazione, traslazione. Se c’è un offset Z o M ma la coordinata non è presente nella geometria, verrà aggiunta.

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • geometry - una geometria

  • delta_x - traslazione secondo asse x

  • delta_y - traslazione asse y

  • rotation_z - rotazione intorno all’asse z in gradi in senso antiorario

  • scala_x - fattore di scala dell’asse x

  • scale_y - fattore di scala dell’asse y

  • delta_z - traslazione asse z

  • delta_m - traslazione asse m

  • scale_z - fattore di scala dell’asse z

  • scale_m - fattore di scala dell’asse m

Esempi

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

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

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

13.2.13.2. angle_at_vertex

Restituisce l’angolo bisettrice (angolo medio) alla geometria per un vertice specificato su una geometria lineare. Gli angoli sono in gradi in senso orario dal nord.

Sintassi

angle_at_vertex(geometry, vertex)

Argomenti

  • geometry - una geometria linea

  • vertex - indice del vertice, partendo da 0; se il valore è negativo, l’indice del vertice selezionato sarà il suo conteggio totale meno il valore assoluto

Esempi

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

13.2.13.3. apply_dash_pattern

Applica un pattern a trattini a una geometria, restituendo una geometria MultiLineString che è la geometria in ingresso, tracciata lungo ogni linea/anello con il pattern specificato.

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • geometria - una geometria (accetta (multi)stringhe di linee o (multi)poligoni).

  • pattern - pattern di trattini, in forma di array di numeri che rappresentano le lunghezze dei trattini e degli spazi. Deve contenere un numero pari di elementi.

  • start_rule - regola opzionale per definire l’inizio del pattern. I valori validi sono “no_rule”, “full_dash”, “half_dash”, “full_gap”, “half_gap”.

  • end_rule - regola opzionale per definire la fine del pattern. I valori validi sono «no_rule», «full_dash», «half_dash», «full_gap», «half_gap».

  • adjustment - regola opzionale per specificare quale parte dei pattern viene adattata alle regole del pattern desiderato. I valori validi sono «both», «dash», «gap».

  • pattern_offset - Distanza opzionale che specifica una distanza specifica lungo il pattern da cui iniziare.

Esempi

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

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

13.2.13.4. $area

Restituisce l’area dell’elemento corrente. L’area calcolata da questa funzione rispetta sia l’impostazione dell’ellissoide del progetto corrente che le impostazioni dell’unità di area. Per esempio, se un ellissoide è stato impostato per il progetto allora l’area calcolata sarà ellissoidale, e se nessun ellissoide è impostato allora l’area calcolata sarà planimetrica.

Sintassi

$area

Esempi

  • $area → 42

13.2.13.5. area

Restituisce l’area di un oggetto geometrico poligonale. I calcoli sono sempre planimetrici nel Sistema di Riferimento Spaziale (SR) di questa geometria, e le unità dell’area restituita corrisponderanno alle unità del SR. Questo differisce dai calcoli eseguiti dalla funzione $area, che eseguirà calcoli ellissoidali basati sulle impostazioni dell’ellissoide e dell’unità di area del progetto.

Sintassi

area(geometry)

Argomenti

  • geometry - oggetto geometria poligonale

Esempi

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

13.2.13.6. azimuth

Restituisce l’azimut basato sul nord come angolo in radianti misurato in senso orario dalla verticale sul punto_a al punto_b.

Sintassi

azimuth(point_a, point_b)

Argomenti

  • point_a - geometria punto

  • point_b - geometria punto

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

13.2.13.7. boundary

Restituisce la chiusura del confine concatenato della geometria (cioè il confine topologico della geometria). Per esempio, una geometria poligonale avrà un confine che consiste linee ogni anello del poligono. Alcuni tipi di geometria non hanno un confine definito, ad esempio punti o collezioni di geometrie, e restituiranno 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

13.2.13.8. bounds

Restituisce una geometria che rappresenta il perimetro di delimitazione di una geometria in ingresso. I calcoli sono nel sistema di riferimento spaziale di questa geometria.

Sintassi

bounds(geometry)

Argomenti

  • geometry - una geometria

Esempi

  • bounds($geometria) → perimetro di delimitazione della geometria dell’elemento corrente

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

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

Fig. 13.4 Le linee nere indicano i riquadri di delimitazione di ciascun elemento poligonale.

Ulteriori informazioni: algoritmo Perimetri di delimitazione

13.2.13.9. bounds_height

Restituisce l’altezza del perimetro di delimitazione di una geometria. I calcoli sono nel sistema di riferimento spaziale di questa geometria.

Sintassi

bounds_height(geometry)

Argomenti

  • geometry - una geometria

Esempi

  • bounds_height($geometria) → altezza del perimetro di delimitazione della geometria dell’elemento corrente

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

13.2.13.10. bounds_width

Restituisce la larghezza del perimetro di delimitazione di una geometria. I calcoli sono nel sistema di riferimento spaziale di questa geometria.

Sintassi

bounds_width(geometry)

Argomenti

  • geometry - una geometria

Esempi

  • bounds_width($geometry) → larghezza del perimetro di delimitazione della geometria dell’elemento corrente

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

13.2.13.11. buffer

Restituisce una geometria che rappresenta tutti i punti la cui distanza da questa geometria è inferiore o uguale alla distanza data. I calcoli sono nel sistema di riferimento spaziale di questa geometria.

Sintassi

buffer(geometry, distance, [segments=8], [cap=”round”], [join=”round”], [miter_limit=2])

[] indica argomenti opzionali

Argomenti

  • geometry - una geometria

  • distance - distanza del buffer in unità layer

  • segments - numero di segmenti da usare per rappresentare un quarto di cerchio quando viene usato uno stile di unione circolare. Un numero maggiore ha come risultato un buffer più liscio con più nodi.

  • cap - stile del puntale terminale per il buffer. I valori validi sono “round”, “flat” o “square”.

  • join - stile di giunzione per il buffer. I valori validi sono “round”, “bevel” o “miter”.

  • miter_limit - limite distanza quadrato, da usare quando lo stile di giunzione è impostato su “miter”.

Esempi

  • buffer($geometria, 10.5) → poligono bufferizzato di 10.5 unità dell’elemento corrente

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

Fig. 13.5 Buffer (in giallo) di punti, linea, poligono con buffer positivo e poligono con buffer negativo

Ulteriori informazioni: algoritmo Buffer

13.2.13.12. buffer_by_m

Crea un buffer lungo una linea geometrica dove il diametro del buffer varia in base ai valori m ai vertici della linea.

Sintassi

buffer_by_m(geometry, [segments=8])

[] indica argomenti opzionali

Argomenti

  • geometry - geometria in ingresso. Deve essere una geometria (multi)lineare con m valori.

  • segments - numero di segmenti per approssimare le curve a quarto di cerchio nel buffer.

Esempi

  • buffer_by_m(geometry:=geom_from_wkt('LINESTRINGM(1 2 0.5, 4 2 0.2)'),segments:=8) → Un buffer di larghezza variabile che inizia con un diametro di 0.5 e finisce con un diametro di 0.2 lungo la geometria lineare.

../../../_images/variable_buffer_m.png

Fig. 13.6 Buffering degli elementi lineari utilizzando il valore m sui vertici

Ulteriori informazioni: algoritmo Buffer larghezza variabile (valore M)

13.2.13.13. centroid

Restituisce il centro geometrico di una geometria.

Sintassi

centroid(geometry)

Argomenti

  • geometry - una geometria

Esempi

  • centroid($geometry) → un punto

Ulteriori informazioni: algoritmo Centroidi

13.2.13.14. close_line

Restituisce una linea chiusa della linea in ingresso aggiungendo il primo punto alla fine della linea, se non è già chiusa. Se la geometria non è una linea o una stringa multi-linea, il risultato sarà NULL.

Sintassi

close_line(geometry)

Argomenti

  • geometry - un geometria lineare

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

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

13.2.13.16. collect_geometries

Organizza un insieme di geometrie in una geometria in parti multiple.

Lista di argomenti vari

Le parti della geometria sono specificate come argomenti separati alla funzione.

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

Variabile Array

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: algoritmo Raggruppa geometrie

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

13.2.13.18. concave_hull

Restituisce un poligono possibilmente concavo che contiene tutti i punti della geometria

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • geometry - una geometria

  • target_percent - la percentuale di area del poligono convesso a cui la soluzione cerca di avvicinarsi. Un target_percent di 1 dà lo stesso risultato del poligono convesso. Un target_percent compreso tra 0 e 0,99 produce un risultato che dovrebbe avere un’area inferiore a quella del poligono convesso.

  • allow_holes - parametro opzionale che specifica se consentire buchi nella geometria in uscita. L’impostazione predefinita è FALSE; imposta TRUE per evitare di includere buchi nella geometria in uscita.

Esempi

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

Ulteriore lettura: convex_hull

13.2.13.19. contains

Verifica se una geometria ne contiene un’altra. Restituisce TRUE se e solo se nessun punto della geometria2 si trova all’esterno della geometria1 e almeno un punto dell’interno della geometria2 si trova all’interno della geometria1.

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

13.2.13.20. convex_hull

Restituisce l’inviluppo convesso di una geometria. Rappresenta la minima geometria convessa che racchiude tutte le geometrie dell’insieme.

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

Ulteriore lettura: concave_hull, Poligono convesso algorithm

13.2.13.21. crosses

Verifica se una geometria ne attraversa un’altra. Restituisce TRUE se le geometrie fornite hanno alcuni, ma non tutti, i punti interni in comune.

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

13.2.13.22. densify_by_count

Prende una geometria poligonale o lineare e ne genera una nuova in cui le geometrie hanno un numero maggiore di vertici rispetto a quella originale.

Sintassi

densify_by_count(geometry, vertices)

Argomenti

  • geometria - una geometria (accetta (multi)stringhe di linee o (multi)poligoni).

  • vertices - numero di vertici da aggiungere (per segmento)

Esempi

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

Ulteriore lettura: Infittisci secondo un conteggio algoritmo

13.2.13.23. densify_by_distance

Prende una geometria poligonale o lineare e ne genera una nuova in cui le geometrie vengono densificate aggiungendo vertici supplementari sui bordi che hanno una distanza massima pari all’intervallo di distanza specificato.

Sintassi

densify_by_distance(geometry, distance)

Argomenti

  • geometria - una geometria (accetta (multi)stringhe di linee o (multi)poligoni).

  • distance - distanza massima di intervallo tra i vertici nella geometria in uscita

Esempi

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

Ulteriore lettura: Infittisci secondo un intervallo algoritmo

13.2.13.24. 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: algoritmo Differenza

13.2.13.25. disjoint

Verifica se le geometrie non si intersecano spazialmente. Restituisce TRUE se le geometrie non condividono alcuno spazio.

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

13.2.13.26. distance

Restituisce la distanza minima (basata sul riferimento spaziale) tra due geometrie in unità proiettate.

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

13.2.13.27. distance_to_vertex

Restituisce la distanza lungo la geometria ad un vertice specificato.

Sintassi

distance_to_vertex(geometry, vertex)

Argomenti

  • geometry - una geometria linea

  • vertex - indice del vertice, partendo da 0; se il valore è negativo, l’indice del vertice selezionato sarà il suo conteggio totale meno il valore assoluto

Esempi

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

13.2.13.28. end_point

Restituisce l’ultimo nodo di una geometria.

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: algoritmo Estrai vertici specifici

13.2.13.29. exif_geotag

Crea una geometria di punti dai geotag exif di un file immagine.

Sintassi

exif_geotag(path)

Argomenti

  • path - Un percorso di file immagine o un valore di layer di mappa. Se viene specificato il valore di un layer di mappa, verrà utilizzata la fonte del file del layer.

Esempi

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

13.2.13.30. extend

Estende l’inizio e la fine della geometria di una linea di una quantità specificata. Le linee sono estese usando il rilevamento del primo e dell’ultimo segmento della linea. Per una multilinea, tutte le parti sono estese. Le distanze sono nel sistema di riferimento spaziale di questa geometria.

Sintassi

extend(geometry, start_distance, end_distance)

Argomenti

  • geometry - una geometria (multi)stringa di linee

  • start_distance - distanza per estendere l’inizio della linea

  • end_distance - distanza per estendere la fine della linea.

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: Estendi linee algoritmo

13.2.13.31. exterior_ring

Restituisce una linea che rappresenta l’anello esterno di una geometria poligonale. Se la geometria non è un poligono, il risultato sarà 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)”

13.2.13.32. extrude

Restituisce una versione estrusa della geometria (Multi-)Curve o (Multi-)Linestringa in ingresso con un’estensione specificata da x e y.

Sintassi

extrude(geometry, x, y)

Argomenti

  • geometria - una geometria curva o lineare

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

13.2.13.33. flip_coordinates

Restituisce una copia della geometria con le coordinate x e y scambiate. Utile per riparare le geometrie che hanno avuto i loro valori di latitudine e longitudine invertiti.

Sintassi

flip_coordinates(geometry)

Argomenti

  • geometry - una geometria

Esempi

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

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

Ulteriori informazioni: algoritmo Scambia le coordinate X e Y

13.2.13.34. force_polygon_ccw

Forza una geometria a rispettare la convenzione per cui gli anelli esterni sono in senso antiorario e quelli interni in senso orario.

Sintassi

force_polygon_ccw(geometry)

Argomenti

  • geometry - una geometria. Qualsiasi geometria non poligonale viene restituita invariata.

Esempi

  • geom_to_wkt(force_polygon_ccw(geometry:=geom_from_wkt('Polygon ((-1 -1, 0 2, 4 2, 4 0, -1 -1))'))) → “Polygon ((-1 -1, 4 0, 4 2, 0 2, -1 -1))”

Ulteriore lettura: force_polygon_cw, force_rhr

13.2.13.35. force_polygon_cw

Forza una geometria a rispettare la convenzione per cui gli anelli esterni sono in senso orario e quelli interni in senso antiorario.

Sintassi

force_polygon_cw(geometry)

Argomenti

  • geometry - una geometria. Qualsiasi geometria non poligonale viene restituita invariata.

Esempi

  • geom_to_wkt(force_polygon_cw(geometry:=geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1))'))) → “Polygon ((-1 -1, 0 2, 4 2, 4 0, -1 -1))”

Ulteriore lettura: force_polygon_ccw, force_rhr

13.2.13.36. force_rhr

Costringe una geometria a rispettare la regola della mano destra, secondo la quale l’area delimitata da un poligono si trova a destra del confine. In particolare, l’anello esterno è orientato in senso orario e gli anelli interni in senso antiorario. A causa dell’incoerenza nella definizione della regola della mano destra, in alcuni contesti si raccomanda di utilizzare la funzione esplicita force_polygon_cw.

Sintassi

force_rhr(geometry)

Argomenti

  • geometry - una geometria. Qualsiasi geometria non poligonale viene restituita invariata.

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

Ulteriore lettura: Forza regola della mano destra algorithm, force_polygon_ccw, force_polygon_cw

13.2.13.37. geom_from_gml

Restituisce una geometria da una rappresentazione GML della geometria.

Sintassi

geom_from_gml(gml)

Argomenti

  • gml - rappresentazione GML di una geometria come stringa

Esempi

  • geom_from_gml('<gml:LineString srsName="EPSG:4326"><gml:coordinates>4,4 5,5 6,6</gml:coordinates></gml:LineString>') → un oggetto geometrico linea

13.2.13.38. geom_from_wkb

Restituisce una geometria generata da una rappresentazione Well-Known Binary (WKB).

Sintassi

geom_from_wkb(binary)

Argomenti

  • binary - rappresentazione Well-Known Binary (WKB) di una geometria (come blob binario)

Esempi

  • geom_from_wkb( geom_to_wkb( make_point(4,5) ) ) → un oggetto geometrico punto

13.2.13.39. geom_from_wkt

Restituisce una geometria generata da una rappresentazione Well-Known Text (WKT).

Sintassi

geom_from_wkt(text)

Argomenti

  • text - rappresentazione Well-Known Text (WKT) di una geometria

Esempi

  • geom_from_wkt( 'POINT(4 5)' ) → un oggetto geometrico

13.2.13.40. geom_to_wkb

Restituisce la rappresentazione Well-Known Binary (WKB) di una geometria

Sintassi

geom_to_wkb(geometry)

Argomenti

  • geometry - una geometria

Esempi

  • geom_to_wkb( $geometry ) → blob binario contenente un oggetto geometrico

13.2.13.41. geom_to_wkt

Restituisce la rappresentazione Well-Known Text (WKT) della geometria senza metadati SRID.

Sintassi

geom_to_wkt(geometry, [precision=8])

[] indica argomenti opzionali

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

13.2.13.42. $geometry

Restituisce la geometria dell’elemento corrente. Può essere utilizzato per l’elaborazione con altre funzioni. **Attenzione: questa funzione è deprecata. Si raccomanda di utilizzare la variabile sostitutiva @geometria.

Sintassi

$geometry

Esempi

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

13.2.13.43. geometry

Restituisce la geometria di un elemento

Sintassi

geometry(feature)

Argomenti

  • feature - un elemento

Esempi

  • “ geometry( $currentfeature )”” → la geometria dell’elemento corrente. Preferisci usare $geometry.

  • “”geom_to_wkt( geometry( get_feature_by_id( “streets”, 1 ) )”” → la geometria in WKT dell’elemento con l’id 1 sul layer «streets», ad esempio “POINT(6 50)”

  • intersects( $geometry, geometry( get_feature( 'streets', 'name', 'Main St.' ) ) ) → TRUE se l’elemento corrente interseca spazialmente l’elemento denominato “Main St.” nel layer «strade».``

13.2.13.44. geometry_n

Restituisce una geometria specifica da una raccolta di geometrie o NULL se la geometria in ingresso non è una raccolta. Restituisce anche una parte di una geometria multi parte.

Sintassi

geometry_n(geometry, index)

Argomenti

  • geometry - geometry collection

  • index - indice della geometria da restituire, dove 1 è la prima geometria della collezione

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

13.2.13.45. geometry_type

Restituisce un valore stringa che descrive il tipo di una geometria (Punto, Linea o Poligono)

Sintassi

geometry_type(geometry)

Argomenti

  • geometry - una geometria

Esempi

  • geometry_type( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → “Line”

  • geometry_type( geom_from_wkt( 'MULTILINESTRING((2 5, 3 6, 4 8), (1 1, 0 0))') ) → “Line”

  • geometry_type( geom_from_wkt( 'POINT(2 5)') ) → “Point”

  • geometry_type( geom_from_wkt( 'POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1))') ) → “Polygon”

13.2.13.46. hausdorff_distance

Restituisce la distanza Hausdorff tra due geometrie. Questa è fondamentalmente una misura di quanto simili o dissimili siano 2 geometrie, con una distanza più bassa che indica geometrie più simili.

La funzione può essere eseguita con un argomento opzionale densify fraction. Se non specificato, viene utilizzata un’approssimazione alla distanza standard di Hausdorff. Questa approssimazione è esatta o abbastanza vicina per un ampio sottoinsieme di casi utili. Esempi di questi sono:

  • Calcolo della distanza tra Linestrings che sono approssimativamente parallele tra loro e approssimativamente uguali in lunghezza. Questo accade nelle reti lineari appaiate.

  • Verifica della somiglianza delle geometrie.

Se l’approssimazione predefinita fornita da questo metodo è insufficiente, specifica l’argomento opzionale densify fraction. Specificando questo argomento si esegue una densificazione dei segmenti prima di calcolare la distanza Hausdorff discreta. Il parametro imposta la frazione di cui densificare ogni segmento. Ogni segmento sarà diviso in un numero di sottosegmenti di uguale lunghezza, la cui frazione della lunghezza totale è più vicina alla frazione data. Diminuendo il parametro densify fraction la distanza restituita si avvicinerà alla vera distanza di Hausdorff per le geometrie.

Sintassi

hausdorff_distance(geometry1, geometry2, [densify_fraction])

[] indica argomenti opzionali

Argomenti

  • geometry1 - una geometria

  • geometry2 - una geometria

  • densify_fraction - quantità di frazione densificata

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

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

  • point_b - geometria punto

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

13.2.13.48. interior_ring_n

Restituisce un anello interno specifico da una geometria poligonale, o NULL se la geometria non è un poligono.

Sintassi

interior_ring_n(geometry, index)

Argomenti

  • geometry - geometria poligono

  • index - indice dell’interno da restituire, dove 1 è il primo anello interno

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

13.2.13.49. 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: algoritmo Intersezione

13.2.13.50. intersects

Verifica se una geometria ne interseca un’altra. Restituisce TRUE se le geometrie si intersecano spazialmente (condividono una qualsiasi porzione di spazio) e false in caso contrario.

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

13.2.13.51. intersects_bbox

Verifica se il rettangolo di selezione di una geometria si sovrappone al rettangolo di selezione di un’altra geometria. Restituisce TRUE se le geometrie intersecano spazialmente il rettangolo di selezione definito e false in caso contrario.

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

13.2.13.52. is_closed

Restituisce TRUE se una stringa di linee è chiusa (i punti iniziali e finali sono coincidenti), o false se una stringa di linee non è chiusa. Se la geometria non è una stringa di linee, il risultato sarà NULL.

Sintassi

is_closed(geometry)

Argomenti

  • geometry - un geometria lineare

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

13.2.13.53. is_empty

Restituisce TRUE se una geometria è vuota (senza coordinate), false se la geometria non è vuota e NULL se non esiste alcuna geometria. Vedere anche 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

Ulteriore lettura: is_empty_or_null

13.2.13.54. is_empty_or_null

Restituisce TRUE se una geometria è NULL o vuota (senza coordinate) o false altrimenti. Questa funzione è simile all’espressione “$geometry IS NULL or 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

Ulteriore lettura: is_empty, NULL

13.2.13.55. is_multipart

Returns TRUE if the geometry is of Multi type.

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

13.2.13.56. is_valid

Restituisce TRUE se una geometria è valida; se è formata correttamente in 2D secondo le regole 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

Ulteriore lettura: make_valid, Controllo validità algorithm

13.2.13.57. $length

Restituisce la lunghezza di una stringa di linee. Se hai bisogno della lunghezza di un bordo di un poligono, usa invece $perimetro. La lunghezza calcolata da questa funzione rispetta sia l’impostazione dell’ellissoide del progetto corrente che le impostazioni dell’unità di distanza. Per esempio, se è stato impostato un ellissoide per il progetto, allora la lunghezza calcolata sarà ellissoidale, e se non è impostato alcun ellissoide, allora la lunghezza calcolata sarà planimetrica.

Sintassi

$length

Esempi

  • $length → 42.4711

13.2.13.58. length

Restituisce il numero di caratteri in una stringa o la lunghezza di una stringa geometrica.

Variabile 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

Variabile geometria

Calcola la lunghezza di un oggetto geometria linea. I calcoli sono sempre planimetrici nel Sistema di Riferimento Spaziale (SRS) di questa geometria, e le unità della lunghezza restituita corrisponderanno alle unità dell’SR. Questo differisce dai calcoli eseguiti dalla funzione $length, che eseguirà calcoli ellissoidali basati sulle impostazioni di ellissoide e unità di distanza del progetto.

Sintassi

length(geometry)

Argomenti

  • geometry - oggetto geometria linea

Esempi

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

Further reading: straight_distance_2d

13.2.13.59. length3D

Calcola la lunghezza 3D di un oggetto linea della geometria. Se la geometria non è un oggetto linea 3D, restituisce la sua lunghezza 2D. I calcoli sono sempre planimetrici nel Sistema di Riferimento Spaziale (SR) di questa geometria, e le unità della lunghezza restituita corrisponderanno alle unità dell’SR. Questo differisce dai calcoli eseguiti dalla funzione $length, che eseguirà calcoli ellissoidali basati sulle impostazioni dell’ellissoide e dell’unità di distanza del progetto.

Sintassi

length3D(geometry)

Argomenti

  • geometry - oggetto geometria linea

Esempi

  • length3D(geom_from_wkt('LINESTRINGZ(0 0 0, 3 0 4)')) → 5.0

13.2.13.60. 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 - una geometria linea

  • distance - distanza lungo la linea su cui interpolare l’angolo

Esempi

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

13.2.13.61. line_interpolate_point

Restituisce il punto interpolato di una distanza specificata lungo la geometria di una stringa di linee.

Sintassi

line_interpolate_point(geometry, distance)

Argomenti

  • geometry - una geometria linea

  • distance - distanza lungo la linea da interpolare

Esempi

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

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

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

Ulteriori informazioni: algoritmo Interpola punto sulla linea

13.2.13.62. 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 - una geometria linea

  • point - geometria del punto nella posizione più vicina alla stringa lineare

Esempi

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

13.2.13.63. line_merge

Restituisce una geometria LineString o MultiLineString, dove tutte le LineString collegate dalla geometria di input sono state fuse in una singola stringa di linee. Questa funzione restituisce NULL se viene passata una geometria che non è una LineString/MultiLineString.

Sintassi

line_merge(geometry)

Argomenti

  • geometry - ana geometria LineString/MultiLineString

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

13.2.13.64. line_substring

Restituisce la porzione della geometria di una linea (o curva) che cade tra le distanze iniziale e finale specificate (misurate dall’inizio della linea). I valori Z e M sono interpolati linearmente dai valori esistenti.

Sintassi

line_substring(geometry, start_distance, end_distance)

Argomenti

  • geometry - una stringa di linee o una geometria di curve

  • start_distance - distanza dall’inizio della sottostringa

  • end_distance - distanza dalla fine della sottostringa

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: algoritmo Sottostringa di Linea

13.2.13.65. m

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

Sintassi

m(geometry)

Argomenti

  • geometry - una geometria di punti

Esempi

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

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

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

13.2.13.68. main_angle

Restituisce l’angolo dell’asse lungo (in senso orario, in gradi dal Nord) del rettangolo di delimitazione minimo orientato, che copre completamente la geometria.

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

13.2.13.69. make_circle

Crea un poligono circolare.

Sintassi

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

[] indica argomenti opzionali

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

13.2.13.70. make_ellipse

Crea un poligono ellittico.

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • center - punto centrale dell’ellisse

  • semi_major_axis - semi-asse maggiore dell’ellisse

  • semi_minor_axis - semi-asse minore dell’ellisse

  • azimuth - orientamento dell’ellisse

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

13.2.13.71. make_line

Crea una geometria lineare da una serie di geometrie punto.

Lista di argomenti vari

I vertici delle linee sono specificati come argomenti separati alla funzione.

Sintassi

make_line(point1, point2, …)

Argomenti

  • point - una geometria di punti (o array di punti)

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

Variabile Array

I vertici della linea sono specificati come un array di punti.

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

13.2.13.72. make_point

Crea una geometria punto da un valore x e y (e z e m opzionali).

Sintassi

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

[] indica argomenti opzionali

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

13.2.13.73. make_point_m

Crea una geometria punto da una coordinata x, y e un valore m.

Sintassi

make_point_m(x, y, m)

Argomenti

  • x - coordinata x di un punto

  • y - coordinata y di un punto

  • m - valore m del punto

Esempi

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

13.2.13.74. make_polygon

Crea una geometria poligonale da un anello esterno e da una serie opzionale di geometrie di anelli interni.

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • outerRing - geometria di linea chiusa per l’anello esterno del poligono

  • innerRing - geometria opzionale della linea chiusa per l’anello interno

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

13.2.13.75. make_rectangle_3points

Crea un rettangolo da 3 punti.

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • point1 - Primo punto.

  • point2 - Secondo punto.

  • point3 - Terzo punto.

  • option - Un argomento opzionale per costruire il rettangolo. Per default questo valore è 0. Il valore può essere 0 (distanza) o 1 (proiettato). Opzione distanza: La seconda distanza è uguale alla distanza tra il 2° e il 3° punto. Opzione proiettato: La seconda distanza è uguale alla distanza della proiezione perpendicolare del 3° punto sul segmento o sulla sua estensione.

Esempi

  • geom_to_wkt(make_rectangle_3points(make_point(0, 0), make_point(0,5), make_point(5, 5), 0)) → “Polygon ((0 0, 0 5, 5 5, 5 0, 0 0))”

  • geom_to_wkt(make_rectangle_3points(make_point(0, 0), make_point(0,5), make_point(5, 3), 1)) → “Polygon ((0 0, 0 5, 5 5, 5 0, 0 0))”

13.2.13.76. make_regular_polygon

Crea un poligono regolare.

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • center - centro del poligono regolare

  • radius - secondo punto. Il primo se il poligono regolare è inscritto. Il punto medio del primo lato se il poligono regolare è circoscritto.

  • number_sides - Numero di lati/angoli del poligono regolare

  • circle - Argomento opzionale per costruire il poligono regolare. Per default questo valore è 0. Il valore può essere 0 (inscritto) o 1 (circoscritto)

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

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

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

13.2.13.79. make_valid

Restituisce una geometria valida o una geometria vuota se non è stato possibile renderla valida.

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • geometry - una geometria

  • method - algoritmo di riparazione. Può essere “structure” or “linework”. L’opzione “linework” combina tutti gli anelli in un insieme di linee con nodi e quindi estrae poligoni validi da tale linework. Il metodo “structure” rende prima validi tutti gli anelli e poi unisce le coperture e sottrae i fori dalle coperture per generare risultati validi. Si presuppone che i buchi e le coperture siano classificati correttamente.

  • keep_collapsed - se impostato su true, i componenti che sono collassati in una dimensione inferiore saranno mantenuti. Ad esempio, un anello che collassa in una linea o una linea che collassa in un punto.

Esempi

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

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

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

  • make_valid(geom_from_wkt('LINESTRING(0 0)')) → Una geometria vuota

Ulteriore lettura: is_valid, Ripara geometrie algoritmo

13.2.13.80. minimal_circle

Restituisce il cerchio minimo che racchiude una geometria. Rappresenta il cerchio minimo che racchiude tutte le geometrie dell’insieme.

Sintassi

minimal_circle(geometry, [segments=36])

[] indica argomenti opzionali

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: algoritmo Circonferenza circoscritta minima

13.2.13.81. nodes_to_points

Restituisce una geometria multipunto che comprende ogni nodo della geometria in ingresso.

Sintassi

nodes_to_points(geometry, [ignore_closing_nodes=false])

[] indica argomenti opzionali

Argomenti

  • geometry - elemento geometria

  • ignore_closing_nodes - argomento opzionale che specifica se includere i nodi duplicati che chiudono linee o anelli di poligoni. Di default è false, impostato a true per evitare di includere questi nodi duplicati nell’insieme di geometrie differenti in uscita.

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: :algoritmo ref:qgisextractvertices

13.2.13.82. num_geometries

Restituisce il numero di geometrie in un insieme di geometrie o il numero di parti in una geometria a parti multiple. La funzione restituisce NULL se la geometria in ingresso non è un insieme.

Sintassi

num_geometries(geometry)

Argomenti

  • geometry - insieme di geometrie o geometrie a parti multiple

Esempi

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

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

13.2.13.83. num_interior_rings

Restituisce il numero di anelli interni in un poligono o in una insieme di geometrie differenti, o NULL se la geometria in ingresso non è un poligono o un insieme di geometrie differenti.

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

13.2.13.84. num_points

Restituisce il numero di vertici di una geometria.

Sintassi

num_points(geometry)

Argomenti

  • geometry - una geometria

Esempi

  • num_points($geometry) → numero di vertici nella geometria dell’elemento corrente

13.2.13.85. num_rings

Restituisce il numero di anelli (compresi quelli esterni) in un poligono o in un insieme di geometrie differenti, o NULL se la geometria di input non è un poligono o un insieme di geometrie differenti.

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

13.2.13.86. offset_curve

Restituisce una geometria formata dall” offset di una geometria con una stringa di linee a lato. Le distanze sono nel sistema di riferimento spaziale di questa geometria.

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • geometry - una geometria (multi)stringa di linee

  • distance - distanza di offset. I valori positivi saranno bufferizzati a sinistra delle linee, i valori negativi a destra

  • segments - numero di segmenti da usare per rappresentare un quarto di cerchio quando viene usato uno stile di unione circolare. Un numero maggiore ha come risultato una linea più regolare con più nodi.

  • join - stile di giunzione per gli angoli, dove 1 = arrotondato, 2 = seghettato e 3 = smussato

  • miter_limit - limite sul rapporto di seghettatura usato per gli angoli molto stretti (quando si usano solo le giunzioni seghettate)

Esempi

  • offset_curve($geometry, 10.5) → linea spostata a sinistra di 10.5 unità

  • offset_curve($geometry, -10.5) → linea spostata a destra di 10.5 unità

  • offset_curve($geometria, 10.5, segmenti:=16, join:=1) → linea spostata a sinistra di 10.5 unità, usando più segmenti per ottenere una curva più liscia

  • offset_curve($geometry, 10.5, join:=3) → linea spostata a sinistra di 10.5 unità, usando un join smussato

Ulteriori informazioni: algoritmo Linee di offset

13.2.13.87. order_parts

Ordina le parti di una MultiGeometry secondo un determinato criterio

Sintassi

order_parts(geometry, orderby, [ascending=true])

[] indica argomenti opzionali

Argomenti

  • geometry - una geometria multi-tipo

  • orderby - una espressione stringa che definisce i criteri di ordinamento

  • ascendente - booleano, True per ascendente, False per discendente

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

13.2.13.88. 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: algoritmo Perimetro di delimitazione minimo orientato

13.2.13.89. overlaps

Verifica se una geometria si sovrappone a un’altra. Restituisce TRUE se le geometrie condividono lo spazio, hanno la 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

13.2.13.90. 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 opzionali

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 - un intero opzionale per limitare il numero di elementi risultanti. Se non è impostato, verranno restituite tutti gli elementi trovati.

  • cache - imposta a true per costruire un indice spaziale locale (la maggior parte delle volte, questo non è desiderato, a meno che non stai lavorando con un fornitore di dati particolarmente lento)

Esempi

  • overlay_contains('regions') → TRUE se l’elemento corrente contiene spazialmente una regione

  • overlay_contains('regions', filter:= population > 10000) → TRUE se l’elemento corrente contiene spazialmente una regione con una popolazione superiore a 10000

  • overlay_contains('regions', name) → un array di nomi, per le regioni contenute nell’elemento corrente

  • array_to_string(overlay_contains('regions', name)) → una stringa come lista separata da virgole di nomi, per le regioni contenute nell’elemento corrente

  • array_sort(overlay_contains(layer:='regions', expression:="name", filter:= population > 10000)) → un array ordinato di name, per le regions contenute nell’elemento corrente e con una population maggiore di 10000

  • overlay_contains(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → un array di geometrie (in WKT), per un massimo di due regioni contenute nell’elemento corrente

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

13.2.13.91. overlay_crosses

Restituisce se l’elemento corrente attraversa spazialmente almeno un elemento di un layer di destinazione, o un array di risultati basati sull’espressione per gli elementi nel layer di destinazione attraversato dall’elemento corrente.

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

Sintassi

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

[] indica argomenti opzionali

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 - un intero opzionale per limitare il numero di elementi risultanti. Se non è impostato, verranno restituite tutti gli elementi trovati.

  • cache - imposta a true per costruire un indice spaziale locale (la maggior parte delle volte, questo non è desiderato, a meno che non stai lavorando con un fornitore di dati particolarmente lento)

Esempi

  • overlay_crosses('regions') → TRUE se l’elemento corrente interseca spazialmente una regione

  • overlay_crosses('regions', filter:= population > 10000) → TRUE se l’elemento corrente interseca spazialmente una regione con una popolazione superiore a 10000

  • overlay_crosses('regions', name) → un array di nomi, per le regions attraversate dall’elemento corrente

  • array_to_string(overlay_crosses('regions', name)) → una stringa come lista separata da virgole di nomi, per le regions attraversate dall’elemento corrente

  • array_sort(overlay_crosses(layer:='regions', expression:="name", filter:= population > 10000)) → un array ordinato di name, per le regions attraversate dall’elemento corrente e con una population maggiore di 10000

  • overlay_crosses(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → un array di geometrie (in WKT), per un massimo di due regioni attraversate dall’elemento corrente

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

13.2.13.92. overlay_disjoint

Restituisce se l’elemento corrente è spazialmente disgiunto da tutti gli elementi di un layer di destinazione, o un array di risultati basati sull’espressione per gli elementi nel layer di destinazione che sono disgiunte dall’elemento corrente.

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

Sintassi

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

[] indica argomenti opzionali

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 - un intero opzionale per limitare il numero di elementi risultanti. Se non è impostato, verranno restituite tutti gli elementi trovati.

  • cache - imposta a true per costruire un indice spaziale locale (la maggior parte delle volte, questo non è desiderato, a meno che non stai lavorando con un fornitore di dati particolarmente lento)

Esempi

  • overlay_disjoint('regions') → TRUE se l’elemento corrente è spazialmente disgiunto da tutte le regioni

  • overlay_disjoint('regions', filter:= population > 10000) → TRUE se l’elemento corrente è spazialmente disgiunto da tutte le regioni con una popolazione superiore a 10000

  • overlay_disjoint('regions', name) → un array di nomi, per le regioni spazialmente disgiunte dall’elemento corrente

  • array_to_string(overlay_disjoint('regions', name)) → una stringa come lista separata da virgole di nomi, per le regioni spazialmente disgiunte dall’elemento corrente

  • array_sort(overlay_disjoint(layer:='regions', expression:="name", filter:= population > 10000)) → un array ordinato di name, per le regions spazialmente disgiunte dall’elemento corrente e con una population maggiore di 10000

  • overlay_disjoint(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → un array di geometrie (in WKT), per un massimo di due regioni spazialmente disgiunte dall’elemento corrente

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

13.2.13.93. overlay_equals

Restituisce se l’elemento corrente è spazialmente uguale ad almeno un elemento di un layer di destinazione, o un array di risultati basati su espressioni per gli elementi nel layer di destinazione che sono spazialmente uguali all’elemento corrente.

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

Sintassi

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

[] indica argomenti opzionali

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 - un intero opzionale per limitare il numero di elementi risultanti. Se non è impostato, verranno restituite tutti gli elementi trovati.

  • cache - imposta a true per costruire un indice spaziale locale (la maggior parte delle volte, questo non è desiderato, a meno che non stai lavorando con un fornitore di dati particolarmente lento)

Esempi

  • overlay_equals('regions') → TRUE se l’elemento corrente è spazialmente uguale a una regione

  • overlay_equals('regions', filter:= population > 10000) → TRUE se l’elemento corrente è spazialmente uguale a una regione con una popolazione superiore a 10000

  • overlay_equals('regions', name) → un array di nomi, per le regioni spazialmente uguali all’elemento corrente

  • array_to_string(overlay_equals('regions', name)) → una stringa come lista separata da virgole di nomi, per le regioni spazialmente uguali all’elemento corrente

  • array_sort(overlay_equals(layer:='regions', expression:="name", filter:= population > 10000)) → un array ordinato di name, per le regions spazialmente uguali all’elemento corrente e con una population maggiore di 10000

  • overlay_equals(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → un array di geometrie (in WKT), per un massimo di due regioni spazialmente uguali all’elemento corrente

Ulteriori informazioni: algoritmo array manipulation, Seleziona per posizione

13.2.13.94. overlay_intersects

Restituisce se l’elemento corrente interseca spazialmente almeno un elemento di un layer di destinazione, o un array di risultati basati sull’espressione per gli elementi nel layer di destinazione intersecate dall’elemento corrente.

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

Sintassi

overlay_intersects(layer, [expression], [filter], [limit], [cache=false], [min_overlap], [min_inscribed_circle_radius], [return_details], [sort_by_intersection_size])

[] indica argomenti opzionali

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 - un intero opzionale per limitare il numero di elementi risultanti. Se non è impostato, verranno restituite tutti gli elementi trovati.

  • cache - imposta a true per costruire un indice spaziale locale (la maggior parte delle volte, questo non è desiderato, a meno che non stai lavorando con un fornitore di dati particolarmente lento)

  • min_overlap - definisce un filtro di esclusione opzionale:

    • per i poligoni, un’area minima in unità quadratiche dell’elemento corrente per l’intersezione. Se l’intersezione risulta in più poligoni, l’intersezione verrà restituita se almeno uno dei poligoni ha un’area maggiore o uguale al valore

    • per le linee, una lunghezza minima in unità di misura correnti. Se l’intersezione risulta in più linee, l’intersezione viene restituita se almeno una delle linee ha una lunghezza maggiore o uguale al valore.

  • min_inscribed_circle_radius - definisce un filtro di esclusione opzionale (solo per i poligoni): raggio minimo in unità di misura correnti per il cerchio massimo inscritto dell’intersezione. Se l’intersezione risulta in più poligoni, l’intersezione verrà restituita se almeno uno dei poligoni ha un raggio per il cerchio massimo inscritto maggiore o uguale al valore.

    Per saperne di più sul predicato GEOS sottostante, come descritto nella funzione PostGIS ST_MaximumInscribedCircle.

    Questo parametro richiede GEOS >= 3.9.

  • return_details - Imposta su true per restituire un elenco di mappe contenenti (nomi delle chiavi tra virgolette) l“«id» dell’elemento, l’espressione «result» e il valore di «overlap». Se il layer di destinazione è un poligono, viene restituito anche il “raggio” del cerchio massimo inscritto. Valido solo se usato con il parametro espressione

  • sort_by_intersection_size - valido solo se usato con un’espressione; imposta questo valore su “des” per restituire i risultati ordinati in base al valore di sovrapposizione in ordine decrescente o su “asc” per un ordine crescente.

Esempi

  • overlay_intersects('regions') → TRUE se l’elemento corrente interseca spazialmente una regione

  • overlay_intersects('regions', filter:= population > 10000) → TRUE se l’elemento corrente interseca spazialmente una regione con una popolazione superiore a 10000

  • overlay_intersects('regions', name) → un array di nomi, per le regioni intersecate dall’elemento corrente

  • array_to_string(overlay_intersects('regions', name)) → una stringa come lista separata da virgole di nomi, per le regioni intersecate dall’elemento corrente

  • array_sort(overlay_intersects(layer:='regions', expression:="name", filter:= population > 10000)) → un array ordinato di name, per le regions intersecate dall’elemento corrente e con una population maggiore di 10000

  • overlay_intersects(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → un array di geometrie (in WKT), per un massimo di due regioni intersecate dall’elemento corrente

  • overlay_intersects(layer:='regions', min_overlap:=0.54) → TRUE se l’elemento corrente interseca spazialmente una regione e l’area di intersezione (di almeno una delle parti in caso di multipoligoni) è maggiore o uguale a 0.54

  • overlay_intersects(layer:='regions', min_inscribed_circle_radius:=0.54) → TRUE se l’elemento corrente interseca spazialmente una regione e il raggio massimo del cerchio inscritto nell’area di intersezione (di almeno una delle parti in caso di multi parte) è maggiore o uguale a 0.54

  • overlay_intersects(layer:='regions', expression:= geom_to_wkt($geometry), return_details:=true) → un array di mappe contenenti “id”, “result”, “overlap” e “radius”

  • overlay_intersects(layer:='regions', expression:= geom_to_wkt($geometry), sort_by_intersection_size:='des') → un array di geometrie (in WKT) ordinate per il valore di sovrapposizione in ordine decrescente

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

13.2.13.95. 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 opzionali

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 - imposta a true per costruire un indice spaziale locale (la maggior parte delle volte, questo non è desiderato, a meno che non stai lavorando con un fornitore di dati particolarmente lento)

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à cartografiche 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: algoritmo array manipulation, Unisci attributi dal vettore più vicino

13.2.13.96. overlay_touches

Restituisce se l’elemento corrente tocca spazialmente almeno un elemento di un layer di destinazione, o un array di risultati basati sull’espressione per gli elementi nel layer di destinazione toccate dall’elemento corrente.

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

Sintassi

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

[] indica argomenti opzionali

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 - un intero opzionale per limitare il numero di elementi risultanti. Se non è impostato, verranno restituite tutti gli elementi trovati.

  • cache - imposta a true per costruire un indice spaziale locale (la maggior parte delle volte, questo non è desiderato, a meno che non stai lavorando con un fornitore di dati particolarmente lento)

Esempi

  • overlay_touches('regions') → TRUE se l’elemento corrente tocca spazialmente una regione

  • overlay_touches('regions', filter:= population > 10000) → TRUE se l’elemento corrente tocca spazialmente una regione con una popolazione superiore a 10000

  • overlay_touches('regions', name) → un array di nomi, per le regioni toccate dall’elemento corrente

  • string_to_array(overlay_touches('regions', name)) → una stringa come lista separata da virgole di nomi, per le regioni toccate dall’elemento corrente

  • array_sort(overlay_touches(layer:='regions', expression:="name", filter:= population > 10000)) → un array ordinato di name, per le regions toccate dall’elemento corrente e con una population maggiore di 10000

  • overlay_touches(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → un array di geometrie (in WKT), per un massimo di due regioni toccate dall’elemento corrente

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

13.2.13.97. overlay_within

Restituisce se l’elemento corrente è spazialmente all’interno di almeno un elemento di un layer di destinazione, o un array di risultati basati sull’espressione per gli elementi nel layer di destinazione che contengono l’elemento corrente.

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

Sintassi

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

[] indica argomenti opzionali

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 - un intero opzionale per limitare il numero di elementi risultanti. Se non è impostato, verranno restituite tutti gli elementi trovati.

  • cache - imposta a true per costruire un indice spaziale locale (la maggior parte delle volte, questo non è desiderato, a meno che non stai lavorando con un fornitore di dati particolarmente lento)

Esempi

  • overlay_within('regions') → TRUE se l’elemento corrente è spazialmente all’interno di una regione

  • overlay_within('regions', filter:= population > 10000) → TRUE se l’elemento corrente è spazialmente all’interno di una regione con una popolazione superiore a 10000

  • overlay_within('regions', name) → un array di nomi, per le regioni che contengono l’elemento corrente

  • array_to_string(overlay_within('regions', name)) → una stringa come lista separata da virgole di nomi, per le regioni che contengono l’elemento corrente

  • array_sort(overlay_within(layer:='regions', expression:="name", filter:= population > 10000)) → un array ordinato di name, per le regions contenenti l’elemento corrente e con una population maggiore di 10000

  • overlay_within(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → un array di geometrie (in WKT), per un massimo di due regioni contenenti l’elemento corrente

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

13.2.13.98. $perimeter

Restituisce la lunghezza del perimetro dell’elemento corrente. Il perimetro calcolato da questa funzione rispetta sia l’impostazione dell’ellissoide del progetto corrente che le impostazioni dell’unità di distanza. Per esempio, se un ellissoide è stato impostato per il progetto, allora il perimetro calcolato sarà ellissoidale, e se nessun ellissoide è impostato, allora il perimetro calcolato sarà planimetrico.

Sintassi

$perimeter

Esempi

  • $perimeter → 42

13.2.13.99. perimeter

Restituisce il perimetro di un oggetto geometrico poligono. I calcoli sono sempre planimetrici nel Sistema di Riferimento Spaziale (SR) di questa geometria, e le unità del perimetro restituito corrisponderanno alle unità dell’SR. Questo differisce dai calcoli eseguiti dalla funzione $perimeter, che eseguirà calcoli ellissoidali basati sulle impostazioni dell’ellissoide e dell’unità di distanza del progetto.

Sintassi

perimeter(geometry)

Argomenti

  • geometry - oggetto geometria poligonale

Esempi

  • perimeter(geom_from_wkt('POLYGON((0 0, 4 0, 4 2, 0 2, 0 0))')) → 12.0

13.2.13.100. point_n

Restituisce un nodo specifico da una geometria.

Sintassi

point_n(geometry, index)

Argomenti

  • geometry - elemento geometria

  • index - indice del nodo da restituire, dove 1 è il primo nodo; se il valore è negativo, l’indice del vertice selezionato sarà il suo conteggio totale meno il valore assoluto

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: algoritmo Estrai vertici specifici

13.2.13.101. point_on_surface

Restituisce un punto il cui posizionamento è sicuro sulla superficie di una geometria.

Sintassi

point_on_surface(geometry)

Argomenti

  • geometry - una geometria

Esempi

  • punto_su_superficie($geometria) → una geometria punto

Ulteriori informazioni: algoritmo Punto sulla superficie

13.2.13.102. pole_of_inaccessibility

Calcola il polo approssimativo di inaccessibilità per una superficie, che è il punto interno più distante dal confine della superficie. Questa funzione utilizza l’algoritmo “polylabel” (Vladimir Agafonkin, 2016), che è un approccio iterativo per trovare il vero polo di inaccessibilità entro una tolleranza specificata. Tolleranze più precise richiedono più iterazioni e richiederanno più tempo per il calcolo.

Sintassi

pole_of_inaccessibility(geometry, tolerance)

Argomenti

  • geometry - una geometria

  • tolerance - distanza massima tra il punto restituito e la vera posizione del polo

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: algoritmo Polo di inaccessibilità

13.2.13.103. project

Restituisce un punto proiettato da un punto di partenza utilizzando una distanza, un rilevamento (azimut) e un’elevazione in radianti.

Sintassi

project(point, distance, azimuth, [elevation])

[] indica argomenti opzionali

Argomenti

  • point - punto iniziale

  • distance - distanza dal progetto

  • azimuth - azimut in radianti in senso orario, dove 0 corrisponde al nord

  • elevation - angolo di inclinazione in radianti

Esempi

  • geom_to_wkt(project(make_point(1, 2), 3, radians(270))) → “Point(-2, 2)”

Ulteriori informazioni: algoritmo:ref:qgisprojectpointcartesian

13.2.13.104. relate

Verifica la rappresentazione Dimensional Extended 9 Intersection Model (DE-9IM) della relazione tra due geometrie.

Variabile Relazioni

Restituisce la rappresentazione Dimensional Extended 9 Intersection Model (DE-9IM) della relazione tra due geometrie.

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”

Variabile abbinamento pattern

Verifica se la relazione DE-9IM tra due geometrie corrisponde a un pattern specificato.

Sintassi

relate(geometry, geometry, pattern)

Argomenti

  • geometry - una geometria

  • geometry - una geometria

  • pattern - pattern DE-9IM da abbinare

Esempi

  • relate( geom_from_wkt( 'LINESTRING(40 40,120 120)' ), geom_from_wkt( 'LINESTRING(40 40,60 120)' ), '**1F001**' ) → TRUE

13.2.13.105. 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: algoritmo Inverti verso linea

13.2.13.106. rotate

Restituisce una versione ruotata di una geometria. I calcoli sono nel sistema di riferimento spaziale di questa geometria.

Sintassi

rotate(geometry, rotation, [center=NULL], [per_part=false])

[] indica argomenti opzionali

Argomenti

  • geometry - una geometria

  • rotation - rotazione in senso orario in gradi

  • center - punto centrale di rotazione. Se non specificato, viene usato il centro del rettangolo di delimitazione della geometria.

  • per_part - applica la rotazione per parte. Se è vero, la rotazione verrà applicata intorno al centro del rettangolo di selezione di ciascuna parte quando la geometria in ingresso è multi parte e non viene specificato un punto centrale di rotazione esplicito.

Esempi

  • rotate($geometria, 45, make_point(4, 5)) → geometria ruotata di 45 gradi in senso orario attorno al punto (4, 5)

  • rotate($geometria, 45) → geometria ruotata di 45 gradi in senso orario attorno al centro del suo rettangolo di delimitazione

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

Fig. 13.7 Funzioni di rotazione

13.2.13.107. roundness

Calcola quanto una forma poligonale è vicina a un cerchio. La funzione restituisce TRUE quando la forma del poligono è un cerchio perfetto e 0 quando è completamente piatta.

Sintassi

roundness(geometry)

Argomenti

  • geometry - un poligono

Esempi

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

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

Ulteriore lettura: Rotondità algoritmo

13.2.13.108. scale

Restituisce una versione in scala di una geometria. I calcoli sono effettuati nel sistema di riferimento spaziale della geometria.

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • geometry - una geometria

  • x_scale - fattore di scala dell’asse x

  • y_scale - fattore di scala dell’asse y

  • center - punto centrale del ridimensionamento. Se non viene specificato, viene utilizzato il centro del perimetro del rettangolo che circoscrive la geometria.

Esempi

  • scala($geometry, 2, 0.5, make_point(4, 5)) → geometria scalata due volte in orizzontale e dimezzata in verticale, intorno al punto (4, 5)

  • scala( $geometry, 2, 0.5) → la geometria viene raddoppiata orizzontalmente e dimezzata verticalmente, intorno al centro del rettangolo che circoscrive la geometria .

13.2.13.109. segments_to_lines

Restituisce una geometria multi-linea che consiste in una linea per ogni segmento nella geometria in ingresso.

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: Esplodi linee algoritmo

13.2.13.110. shared_paths

Restituisce un insieme contenente i percorsi condivisi dalle due geometrie in ingresso. Quelli che vanno nella stessa direzione sono nel primo elemento dell’insieme, quelli che vanno nella direzione opposta sono nel secondo elemento. I percorsi stessi sono dati nella direzione della prima geometria.

Sintassi

shared_paths(geometry1, geometry2)

Argomenti

  • geometry1 - una geometria LineString/MultiLineString

  • geometry2 - una geometria LineString/MultiLineString

Esempi

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

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

13.2.13.111. shortest_line

Restituisce la linea più breve che unisce la geometria1 alla geometria2. La linea risultante inizierà alla geometria1 e finirà alla geometria2.

Sintassi

shortest_line(geometry1, geometry2)

Argomenti

  • geometria1 - geometria dalla quale trovare la linea più breve

  • geometria2 - geometria per la quale trovare la linea più breve

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

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

  • tollerance - massima deviazione dai segmenti rettilinei per i punti da rimuovere

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: algoritmo Semplifica

13.2.13.113. simplify_vw

Semplifica una geometria rimuovendo i nodi usando una soglia basata sull’area (cioè l’algoritmo Visvalingam-Whyatt). L’algoritmo rimuove i vertici che creano piccole aree nelle geometrie, ad esempio piccoli spicchi o segmenti quasi dritti.

Sintassi

simplify_vw(geometry, tolerance)

Argomenti

  • geometry - una geometria

  • tollerance - una misura dell’area massima creata da un nodo per il nodo da rimuovere

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: algoritmo Semplifica

13.2.13.114. single_sided_buffer

Restituisce una geometria formata dal buffering di un solo lato di una geometria lineare. Le distanze sono nel sistema di riferimento spaziale di questa geometria.

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • geometry - una geometria (multi)stringa di linee

  • distance - distanza del buffer. I valori positivi saranno bufferizzati a sinistra delle linee, i valori negativi a destra

  • segments - numero di segmenti da usare per rappresentare un quarto di cerchio quando viene usato uno stile di unione circolare. Un numero maggiore ha come risultato un buffer più liscio con più nodi.

  • join - stile di giunzione per gli angoli, dove 1 = arrotondato, 2 = seghettato e 3 = smussato

  • miter_limit - limite sul rapporto di seghettatura usato per gli angoli molto stretti (quando si usano solo le giunzioni seghettate)

Esempi

  • single_sided_buffer($geometry, 10.5) → linea bufferizzata a sinistra di 10.5 unità

  • single_sided_buffer($geometry, -10.5) → linea bufferizzata a destra di 10.5 unità

  • single_sided_buffer($geometry, 10.5, segments:=16, join:=1) → linea bufferizzata a sinistra di 10,5 unità, utilizzando più segmenti per ottenere un buffer più liscio

  • single_sided_buffer($geometry, 10.5, join:=3) → linea bufferizzata a sinistra di 10,5 unità, utilizzando una giunzione smussata

Ulteriori informazioni: algoritmo Buffer su un solo lato

13.2.13.115. sinuosity

Restituisce la sinuosità di una curva, che è il rapporto tra la lunghezza della curva e la distanza rettilinea (2D) tra i suoi punti finali.

Sintassi

sinuosity(geometry)

Argomenti

  • geometry - Curva in ingresso (circularstring, linestring)

Esempi

  • round(sinuosity(geom_from_wkt('LINESTRING(2 0, 2 2, 3 2, 3 3)')), 3) → 1.265

  • sinuosity(geom_from_wkt('LINESTRING( 3 1, 5 1)')) → 1.0

13.2.13.116. smooth

Smussa una geometria aggiungendo nodi extra che arrotondano gli angoli della geometria. Se le geometrie di input contengono valori Z o M, anche questi saranno smussati e la geometria di output manterrà la stessa dimensionalità della geometria di input.

Sintassi

smooth(geometry, [iterations=1], [offset=0.25], [min_length=-1], [max_angle=180])

[] indica argomenti opzionali

Argomenti

  • geometry - una geometria

  • iterations - numero di iterazioni di lisciatura da applicare. Numeri più grandi risultano in geometrie più uniformi ma più complesse.

  • offset - valore tra 0 e 0.5 che controlla quanto strettamente la geometria smussata segue la geometria originale. Valori più piccoli risultano in uno smussamento più stretto, valori più grandi risultano in uno smussamento più lasco.

  • min_length - lunghezza minima dei segmenti a cui applicare lo smussamento. Questo parametro può essere usato per evitare di posizionare eccessivi nodi aggiuntivi in segmenti più corti della geometria.

  • max_angle - angolo massimo al nodo per lo smussamento da applicare (0-180). Abbassando l’angolo massimo si possono intenzionalmente conservare gli angoli acuti nella geometria. Per esempio, un valore di 80 gradi manterrà gli angoli retti nella geometria.

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: algoritmo Lisciatura

13.2.13.117. square_wave

Costruisce onde quadrate/rettangolari lungo il confine di una geometria.

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • geometry - una geometria

  • wavelength - lunghezza d’onda della forma d’onda quadra

  • amplitude - ampiezza della forma d’onda quadra

  • strict - Per impostazione predefinita, l’argomento della lunghezza d’onda viene trattato come una «lunghezza d’onda massima», dove la lunghezza d’onda effettiva verrà regolata dinamicamente in modo da creare un numero esatto di onde quadrate lungo i confini della geometria. Se l’argomento strict è impostato su true, la lunghezza d’onda verrà utilizzata esattamente e per la forma d’onda finale potrebbe essere utilizzato un pattern incompleto.

Esempi

  • onda_quadrata(geom_from_wkt('LineString(0 0, 10 0)'), 3, 1) → Onde quadrate con lunghezza d’onda 3 e ampiezza 1 lungo la linea

13.2.13.118. square_wave_randomized

Costruisce onde quadrate/rettangolari randomizzate lungo il confine di una geometria.

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • geometry - una geometria

  • min_wavelength - lunghezza d’onda minima delle onde

  • max_wavelength - lunghezza d’onda massima delle onde

  • min_amplitude - ampiezza minima delle onde

  • max_amplitude - ampiezza massima delle onde

  • seed - specifica un numero casuale per la generazione delle onde. Se il numero è 0, verrà generato un insieme di onde completamente casuale.

Esempi

  • square_wave_randomized(geom_from_wkt('LineString(0 0, 10 0)'), 2, 3, 0.1, 0.2) → Onde quadrate di dimensioni casuali con lunghezza d’onda compresa tra 2 e 3 e ampiezza compresa tra 0.1 e 0.2 lungo la linestring

13.2.13.119. 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: algoritmo Estrai vertici specifici

13.2.13.120. straight_distance_2d

Restituisce la distanza diretta/euclidea tra il primo e l’ultimo vertice di una geometria. La geometria deve essere una curva (circularstring, linestring).

Sintassi

straight_distance_2d(geometry)

Argomenti

  • geometry - The geometry.

Esempi

  • straight_distance_2d(geom_from_wkt('LINESTRING(1 0, 1 1)')) → 1

  • round(straight_distance_2d(geom_from_wkt('LINESTRING(1 4, 3 5, 5 0)')), 3) → 5.657

Further reading: length

13.2.13.121. sym_difference

Restituisce una geometria che rappresenta le porzioni di due geometrie che non si intersecano.

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: algoritmo Differenza simmetrica

13.2.13.122. tapered_buffer

Crea un buffer lungo la geometria lineare dove il diametro del buffer varia uniformemente sulla lunghezza della linea.

Sintassi

tapered_buffer(geometry, start_width, end_width, [segments=8])

[] indica argomenti opzionali

Argomenti

  • geometry - geometria in ingresso. Deve essere una geometria (multi)linea.

  • start_width - larghezza del buffer all’inizio della linea,

  • end_width - larghezza del buffer a fine linea.

  • segments - numero di segmenti per approssimare le curve a quarto di cerchio nel buffer.

Esempi

  • tapered_buffer(geometry:=geom_from_wkt('LINESTRING(1 2, 4 2)'),start_width:=1,end_width:=2,segments:=8) → Un buffer rastremato che inizia con un diametro di 1 e finisce con un diametro di 2 lungo la geometria lineare.

../../../_images/tapered_buffer.png

Fig. 13.8 Baffer rastremato sugli elementi lineari

Ulteriori informazioni: Buffer arrotondati algoritmo

13.2.13.123. touches

Verifica se una geometria ne 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

13.2.13.124. 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: :algoritmo ref:qgisreprojectlayer

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

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

Fig. 13.9 Traslare elementi

Ulteriori informazioni: algoritmo Trasla

13.2.13.126. triangular_wave

Costruisce onde triangolari lungo il confine di una geometria.

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • geometry - una geometria

  • lwavelength - lunghezza d’onda della forma d’onda triangolare

  • amplitude - ampiezza della forma d’onda triangolare

  • strict - Per impostazione predefinita, l’argomento della lunghezza d’onda viene trattato come una «lunghezza d’onda massima», dove la lunghezza d’onda effettiva verrà regolata dinamicamente in modo da creare un numero esatto di onde triangolari lungo i confini della geometria. Se l’argomento strict è impostato su true, la lunghezza d’onda verrà utilizzata esattamente e per la forma d’onda finale potrebbe essere utilizzato un pattern incompleto.

Esempi

  • triangular_wave(geom_from_wkt('LineString(0 0, 10 0)'), 3, 1) → Onde triangolari con lunghezza d’onda 3 e ampiezza 1 lungo l’anello di linea

13.2.13.127. triangular_wave_randomized

Costruisce onde triangolari randomizzate lungo il confine di una geometria.

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • geometry - una geometria

  • min_wavelength - lunghezza d’onda minima delle onde

  • max_wavelength - lunghezza d’onda massima delle onde

  • min_amplitude - ampiezza minima delle onde

  • max_amplitude - ampiezza massima delle onde

  • seed - specifica un numero casuale per la generazione delle onde. Se il numero è 0, verrà generato un insieme di onde completamente casuale.

Esempi

  • triangular_wave_randomized(geom_from_wkt('LineString(0 0, 10 0)'), 2, 3, 0.1, 0.2) → Onde triangolari di dimensioni casuali con lunghezze d’onda comprese tra 2 e 3 e ampiezze comprese tra 0.1 e 0.2 lungo la linea d’onda

13.2.13.128. union

Restituisce una geometria che rappresenta l’unione dell’insieme di punti delle geometrie.

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

13.2.13.129. wave

Costruisce onde tondeggianti (sinusoidali) lungo i confini di una geometria.

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • geometry - una geometria

  • wavelength - lunghezza d’onda di forma d’onda sinusoidale

  • amplitude -ampiezza di forma d’onda sinusoidale

  • strict - Per impostazione predefinita, l’argomento della lunghezza d’onda viene trattato come una «lunghezza d’onda massima», dove la lunghezza d’onda effettiva verrà regolata dinamicamente in modo da creare un numero esatto di onde lungo i confini della geometria. Se l’argomento strict è impostato su true, la lunghezza d’onda verrà utilizzata esattamente e per la forma d’onda finale potrebbe essere utilizzato un pattern incompleto.

Esempi

  • wave(geom_from_wkt('LineString(0 0, 10 0)'), 3, 1) → Onde sinusoidali con lunghezza d’onda 3 e ampiezza 1 lungo l’anello di linea

13.2.13.130. wave_randomized

Costruisce onde curve (sinusoidali) randomizzate lungo il confine di una geometria.

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • geometry - una geometria

  • min_wavelength - lunghezza d’onda minima delle onde

  • max_wavelength - lunghezza d’onda massima delle onde

  • min_amplitude - ampiezza minima delle onde

  • max_amplitude - ampiezza massima delle onde

  • seed - specifica un numero casuale per la generazione delle onde. Se il numero è 0, verrà generato un insieme di onde completamente casuale.

Esempi

  • wave_randomized(geom_from_wkt('LineString(0 0, 10 0)'), 2, 3, 0.1, 0.2) → Onde curve di dimensioni casuali con lunghezze d’onda comprese tra 2 e 3 e ampiezze comprese tra 0.1 e 0.2 lungo l’anello di linea

13.2.13.131. wedge_buffer

Restituisce un buffer a forma di cuneo originato da una geometria di punti.

Sintassi

wedge_buffer(center, azimuth, width, outer_radius, [inner_radius=0.0])

[] indica argomenti opzionali

Argomenti

  • center - punto centrale (origine) del buffer. Deve essere una geometria di punti.

  • azimuth - angolo (in gradi) per il centro del bordo al punto.

  • width - larghezza del buffer (in gradi). Si noti che il cuneo si estenderà fino alla metà della larghezza angolare su entrambi i lati della direzione dell’azimut.

  • outer_radius - raggio esterno per i buffer

  • inner_radius - raggio interno opzionale per i buffer

Esempi

  • wedge_buffer(center:=geom_from_wkt('POINT(1 2)'),azimuth:=90,width:=180,outer_radius:=1) → Un buffer a forma di cuneo centrato sul punto (1,2), rivolto a est, con una larghezza di 180 gradi e raggio esterno di 1.

Ulteriori informazioni: algoritmo Crea buffer a spicchi

13.2.13.132. within

Verifica se una geometria è all’interno di un’altra. Restituisce VERO se la geometria1 è completamente all’interno della geometria2.

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

13.2.13.133. $x

Restituisce la coordinata x dell’elemento del punto corrente. Se l’elemento è una elemento multipunto, allora verrà restituita la coordinata x del primo punto.

Sintassi

$x

Esempi

  • $x → 42

13.2.13.134. x

Restituisce la coordinata x di una geometria puntiforme, o la coordinata x del centroide per una geometria non puntiforme.

Sintassi

x(geometry)

Argomenti

  • geometry - una geometria

Esempi

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

  • x( $geometria ) → coordinata x del centroide dell’elemento corrente

13.2.13.135. $x_at

Restituisce una coordinata x della geometria dell’elemento corrente.

Sintassi

$x_at(i)

Argomenti

  • i - indice del punto di una linea (gli indici iniziano da 0; i valori negativi si applicano dall’ultimo indice, a partire da -1)

Esempi

  • $x_at(1) → 5

13.2.13.136. x_max

Restituisce la coordinata x massima di una geometria. I calcoli sono nel sistema di riferimento spaziale di questa geometria.

Sintassi

x_max(geometry)

Argomenti

  • geometry - una geometria

Esempi

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

13.2.13.137. x_min

Restituisce la coordinata x minima di una geometria. I calcoli sono nel sistema di riferimento spaziale di questa geometria.

Sintassi

x_min(geometry)

Argomenti

  • geometry - una geometria

Esempi

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

13.2.13.138. $y

Restituisce la coordinata y dell’elemento puntuale corrente. Se l’elemento è un elemento multipunto, allora verrà restituita la coordinata y del primo punto.

Sintassi

$y

Esempi

  • $y → 42

13.2.13.139. y

Restituisce la coordinata y di una geometria punto, o la coordinata y del centroide per una geometria non puntuale.

Sintassi

y(geometry)

Argomenti

  • geometry - una geometria

Esempi

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

  • y( $geometria ) → coordinata y del centroide dell’elemento corrente

13.2.13.140. $y_at

Recupera una coordinata y della geometria dall’elemento corrente.

Sintassi

$y_at(i)

Argomenti

  • i - indice del punto di una linea (gli indici iniziano da 0; i valori negativi si applicano dall’ultimo indice, a partire da -1)

Esempi

  • $y_at(1) → 2

13.2.13.141. y_max

Restituisce la coordinata y massima di una geometria. I calcoli sono nel sistema di riferimento spaziale di questa geometria.

Sintassi

y_max(geometry)

Argomenti

  • geometry - una geometria

Esempi

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

13.2.13.142. y_min

Restituisce la coordinata y minima di una geometria. I calcoli sono nel sistema di riferimento spaziale di questa geometria.

Sintassi

y_min(geometry)

Argomenti

  • geometry - una geometria

Esempi

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

13.2.13.143. $z

Restituisce il valore z dell’elemento puntuale corrente se è 3D. Se l’elemento è multipunto verrà restituito il valore z del primo punto.

Sintassi

$z

Esempi

  • $z → 123

13.2.13.144. z

Restituisce la coordinata z di una geometria puntuale, o NULL se la geometria non ha un valore z.

Sintassi

z(geometry)

Argomenti

  • geometry - una geometria di punti

Esempi

  • z( geom_from_wkt( 'POINTZ(2 5 7)' ) ) → 7

13.2.13.145. z_max

Restituisce la coordinata z massima di una geometria, o NULL se la geometria non ha un valore z.

Sintassi

z_max(geometry)

Argomenti

  • geometry - una geometria con coordinata z

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

13.2.13.146. z_min

Restituisce la coordinata z minima di una geometria, o NULL se la geometria non ha un valore z.

Sintassi

z_min(geometry)

Argomenti

  • geometry - una geometria con coordinata z

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

13.2.14. Funzioni per il Layout

Questo gruppo contiene funzioni per manipolare le proprietà degli oggetti del layout di stampa.

13.2.14.1. item_variables

Restituisce una mappa di variabili da un oggetto di layout all’interno di questo layout di stampa.

Sintassi

item_variables(id)

Argomenti

  • id - ID oggetto layout

Esempi

  • map_get( item_variables('Map 0'), 'map_scale') → scala dell’oggetto “Map 0” nel layout di stampa corrente

Ulteriori informazioni: Lista delle variables <expression_variables> predefinite

13.2.14.2. map_credits

Restituisce un elenco di stringhe di crediti (diritti d’uso) per i livelli mostrati in un elemento della mappa di layout.

Sintassi

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

[] indica argomenti opzionali

Argomenti

  • id - ID elemento della mappa

  • include_layer_names - Imposta su true per includere i nomi dei layer prima delle loro stringhe di credito

  • layer_name_separator - Stringa da inserire tra i nomi dei layer e le loro stringhe di credito, se include_layer_names è true

Esempi

  • array_to_string( map_credits( 'Main Map' ) ) → lista separata da virgole dei crediti dei layer per i layer mostrati nell’elemento di layout “Main Map”, ad esempio “CC-BY-NC, CC-BY-SA”

  • array_to_string( map_credits( 'Main Map', include_layer_names := true, layer_name_separator := ': ' ) ) → elenco separato da virgole di nomi di layer e dei loro crediti per i layer mostrati nell’elemento di layout “Main Map”, ad esempio “Railway lines: CC-BY-NC, Basemap: CC-BY-SA”.

Questa funzione richiede le proprietà dei metadati :ref:”Access <metadatamenu>” dei layer da compilare.

13.2.15. Layer della Mappa

Questo gruppo contiene un elenco dei layer disponibili nel progetto corrente e, per ogni layer, i relativi campi (memorizzati nel dataset, virtuali o ausiliari e provenienti da join). I campi possono essere interagiti nello stesso modo indicato in Campi e Valori, tranne per il fatto che un doppio clic aggiungerà il nome come stringa (con virgolette singole) all’espressione invece che come riferimento al campo, dato che non appartengono al layer attivo. Questo offre un modo pratico per scrivere espressioni che si riferiscono a diversi layer, come quando si eseguono le query aggregates, attribute o spatial.

Fornisce anche alcune comode funzioni per manipolare i layer.

13.2.15.1. decode_uri

Prende un layer e decodifica l’uri del fornitore di dati sottostante. Dipende dal dataprovider, quali dati sono disponibili.

Sintassi

decode_uri(layer, [part])

[] indica argomenti opzionali

Argomenti

  • layer - Il layer per il quale l’uri dovrebbe essere decodificato.

  • part - La parte dell’uri da restituire. Se non specificato, verrà restituita una mappa con tutte le parti dell’uri.

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”

13.2.15.2. layer_property

Restituisce una proprietà del layer o un valore di metadati corrispondente.

Sintassi

layer_property(layer, property)

Argomenti

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

  • property - una stringa corrispondente alla proprietà da restituire. Le opzioni valide sono:

    • name: nome layer

    • id: layer ID

    • title: stringa del titolo dei metadati

    • abstract: stringa dell’abstract dei metadati

    • keywords: parole chiave metadati

    • data_url: URL metadati

    • attribution: stringa attribuzione metadati

    • attribution_url: URL attribuzione metadati

    • source: fonte del layer

    • min_scale: scala minima di visualizzazione per il layer

    • max_scale: scala massima di visualizzazione per il layer

    • is_editable: se il layer è in modalità di modifica

    • crs: SR del layer

    • crs_definition: definizione completa del SR del layer

    • crs_description: descrizione SR del layer

    • extent: estensione del layer (come oggetto geometrico)

    • distance_units: unità di distanza del layer

    • type: tipo di layer, ad esempio, Vector o Raster

    • storage_type: formato di memorizzazione (solo layer vettoriali)

    • geometry_type: tipo di geometria, ad esempio, Point (solo layer vettoriali)

    • feature_count: conteggio approssimativo degli elementi per il layer (solo layer vettoriali)

    • path: Percorso del file fonte dei dati del layer. Disponibile solo per i layer basati su file.

Esempi

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

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

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

Further reading: vector, raster and mesh layer properties

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

13.2.16.1. from_json

Carica una stringa formattata in JSON.

Sintassi

from_json(string)

Argomenti

  • string - una striga JSON

Esempi

  • from_json('{"qgis":"rocks"}') → { “qgis”: “rocks” }

  • from_json('[1,2,3]') → [1,2,3]

13.2.16.2. hstore_to_map

Crea una mappa da una stringa formattata hstore.

Sintassi

hstore_to_map(string)

Argomenti

  • string - la stringa in ingresso

Esempi

  • hstore_to_map('qgis=>rocks') → { “qgis”: “rocks” }

13.2.16.3. map

Restituisce una mappa contenente tutte le chiavi e i valori passati come coppia di parametri.

Sintassi

map(key1, value1, key2, value2, …)

Argomenti

  • key - una chiave (stringa)

  • value - un valore

Esempi

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

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

13.2.16.4. map_akeys

Restituisce tutte le chiavi di una mappa come array.

Sintassi

map_akeys(map)

Argomenti

  • map - una mappa

Esempi

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

13.2.16.5. map_avals

Restituisce tutti i valori di una mappa come array.

Sintassi

map_avals(map)

Argomenti

  • map - una mappa

Esempi

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

13.2.16.6. 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” }

13.2.16.7. map_delete

Restituisce una mappa con la chiave data e il suo valore corrispondente eliminato.

Sintassi

map_delete(map, key)

Argomenti

  • map - una mappa

  • key - la chiave da eliminare

Esempi

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

13.2.16.8. map_exist

Restituisce TRUE se la chiave indicata esiste nella mappa.

Sintassi

map_exist(map, key)

Argomenti

  • map - una mappa

  • key - la chiave da cercare

Esempi

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

13.2.16.9. map_get

Restituisce il valore di una mappa, data la sua chiave. Restituisce NULL se la chiave non esiste.

Sintassi

map_get(map, key)

Argomenti

  • map - una mappa

  • key - la chiave da cercare

Esempi

  • map_get(map('1','one','2','two'),'2') → “two”

  • map_get( item_variables('Map 0'), 'map_scale') → scala dell’oggetto “Map 0” (se esiste) nel layout di stampa corrente

Suggerimento

Puoi anche usare l’operatore index operator ([]) per ottenere un valore da una mappa.

13.2.16.10. map_insert

Restituisce una mappa con una chiave/valore aggiunto. Se la chiave esiste già, il suo valore viene sovrascritto.

Sintassi

map_insert(map, key, value)

Argomenti

  • map - una mappa

  • key - la chiave da aggiungere

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

13.2.16.11. map_prefix_keys

Restituisce una mappa con tutte le chiavi precedute da una determinata stringa.

Sintassi

map_prefix_keys(map, prefix)

Argomenti

  • map - una mappa

  • prefix - una stringa

Esempi

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

13.2.16.12. map_to_hstore

Fondere gli elementi della mappa in una stringa formattata hstore.

Sintassi

map_to_hstore(map)

Argomenti

  • map - la mappa in ingresso

Esempi

  • map_to_hstore(map('qgis','rocks')) → “«qgis»=>»rocks»”

13.2.16.13. to_json

Creare una stringa formattata JSON da una mappa, un array o un altro valore.

Sintassi

to_json(value)

Argomenti

  • value - Il valore in ingresso

Esempi

  • to_json(map('qgis','rocks')) → {«qgis»:»rocks»}

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

13.2.16.14. url_encode

Restituisce una stringa codificata in URL da una mappa. Trasforma tutti i caratteri nella loro forma correttamente codificata, producendo una stringa di query completamente conforme.

Da notare che il segno più «+» non viene convertito.

Sintassi

url_encode(map)

Argomenti

  • map - una mappa.

Esempi

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

13.2.17. Funzioni Matematiche

Questo gruppo contiene funzioni matematiche (ad es. Radice quadrata, seno e coseno).

13.2.17.1. abs

Restituisce il valore assoluto di un numero.

Sintassi

abs(value)

Argomenti

  • value - un numero

Esempi

  • abs(-2) → 2

13.2.17.2. acos

Restituisce l’inverso del coseno di un valore in radianti.

Sintassi

acos(value)

Argomenti

  • value - coseno di un angolo in radianti

Esempi

  • acos(0.5) → 1.0471975511966

13.2.17.3. asin

Restituisce il seno inverso di un valore in radianti.

Sintassi

asin(value)

Argomenti

  • value - seno di un angolo in radianti

Esempi

  • asin(1.0) → 1.5707963267949

13.2.17.4. atan

Restituisce l’inverso dalla tangente di un valore in radianti.

Sintassi

atan(value)

Argomenti

  • value - tangente di un angolo in radianti

Esempi

  • atan(0.5) → 0.463647609000806

13.2.17.5. atan2

Restituisce l’inverso della tangente di dy/dx utilizzando i segni dei due argomenti per determinare il quadrante del risultato.

Sintassi

atan2(dy, dx)

Argomenti

  • dy - differenza di coordinata y

  • dx - differenza di coordinata x

Esempi

  • atan2(1.0, 1.732) → 0.523611477769969

13.2.17.6. ceil

Arrotonda un numero per eccesso

Sintassi

ceil(value)

Argomenti

  • value - un numero

Esempi

  • ceil(4.9) → 5

  • ceil(-4.9) → -4

13.2.17.7. clamp

Limita un valore in ingresso in un intervallo specificato.

Sintassi

clamp(minimum, input, maximum)

Argomenti

  • minimum - il più piccolo valore che l”input può assumere.

  • input - un valore che sarà limitato nell’intervallo specificato da minimum e maximum.

  • maximum - il più grande valore che l” input può assumere

Esempi

  • clamp(1,5,10) → 5

    input è tra 1 e 10 quindi viene restituito invariato

  • clamp(1,0,10) → 1

    input è inferiore al valore minimo di 1, quindi la funzione restituisce 1

  • clamp(1,11,10) → 10

    input è maggiore del valore massimo di 10, quindi la funzione restituisce 10

13.2.17.8. cos

Restituisce il coseno di un angolo.

Sintassi

cos(angle)

Argomenti

  • angle - angolo in radianti

Esempi

  • cos(1.571) → 0.000796326710733263

13.2.17.9. degrees

Converte da radianti a gradi.

Sintassi

degrees(radians)

Argomenti

  • radians - valore numerico

Esempi

  • degrees(3.14159) → 180

  • degrees(1) → 57.2958

13.2.17.10. exp

Restituisce l’esponenziale di un valore.

Sintassi

exp(value)

Argomenti

  • value - numero di cui restituire l’esponente

Esempi

  • exp(1.0) → 2.71828182845905

13.2.17.11. floor

Arrotonda un numero per difetto.

Sintassi

floor(value)

Argomenti

  • value - un numero

Esempi

  • floor(4.9) → 4

  • floor(-4.9) → -5

13.2.17.12. ln

Restituisce il logaritmo naturale di un valore.

Sintassi

ln(value)

Argomenti

  • value - valore numerico

Esempi

  • ln(1) → 0

  • ln(2.7182818284590452354) → 1

13.2.17.13. log

Restituisce il valore del logaritmo del valore e della base indicati.

Sintassi

log(base, value)

Argomenti

  • base - qualsiasi numero positivo

  • value - qualsiasi numero positivo

Esempi

  • log(2, 32) → 5

  • log(0.5, 32) → -5

13.2.17.14. log10

Restituisce il valore del logaritmo in base 10 dell’espressione passata.

Sintassi

log10(value)

Argomenti

  • value - qualsiasi numero positivo

Esempi

  • log10(1) → 0

  • log10(100) → 2

13.2.17.15. max

Restituisce il valore più grande in un insieme di valori.

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

13.2.17.16. min

Restituisce il valore più piccolo in un insieme di valori.

Sintassi

min(value1, value2, …)

Argomenti

  • value - un numero

Esempi

  • min(20.5,10,6.2) → 6.2

  • min(2,-10.3,NULL) → -10.3

13.2.17.17. pi

Restituisce il valore di pi greco per i calcoli.

Sintassi

pi()

Esempi

  • pi() → 3.14159265358979

13.2.17.18. radians

Converte da gradi a radianti

Sintassi

radians(degrees)

Argomenti

  • degrees - valore numerico

Esempi

  • radians(180) → 3.14159

  • radians(57.2958) → 1

13.2.17.19. rand

Restituisce un numero intero casuale all’interno dell’intervallo specificato dal parametro minimo e massimo (incluso). Se viene fornito un valore di riferimento, il valore restituito sarà sempre lo stesso, a seconda del valore di riferimento.

Sintassi

rand(min, max, [seed=NULL])

[] indica argomenti opzionali

Argomenti

  • min - un intero che rappresenta il più piccolo numero casuale possibile desiderato

  • max - un intero che rappresenta il più grande numero casuale possibile desiderato

  • seed - qualsiasi valore da usare come valore di riferimento

Esempi

  • rand(1, 10) → 8

13.2.17.20. randf

Restituisce un numero reale casuale all’interno dell’intervallo specificato dal parametro minimo e massimo (incluso). Se viene fornito un valore di riferimento, il valore restituito sarà sempre lo stesso, a seconda del valore di riferimento.

Sintassi

randf([min=0.0], [max=1.0], [seed=NULL])

[] indica argomenti opzionali

Argomenti

  • min - un numero reale che rappresenta il più piccolo numero casuale possibile desiderato

  • max - un numero reale che rappresenta il più grande numero casuale possibile desiderato

  • seed - qualsiasi valore da usare come valore di riferimento

Esempi

  • randf(1, 10) → 4.59258286403147

13.2.17.21. round

Arrotonda un numero al numero di cifre decimali.

Sintassi

round(value, [places=0])

[] indica argomenti opzionali

Argomenti

  • valore - numero decimale da arrotondare

  • places - Intero opzionale che rappresenta il numero di cifre decimali da arrotondare. Può essere negativo.

Esempi

  • round(1234.567, 2) → 1234.57

  • round(1234.567) → 1235

  • round(1234.567, -1) → 1230

13.2.17.22. scale_exp

Trasforma un dato valore da un dominio in ingresso a un intervallo in uscita utilizzando una curva esponenziale. Questa funzione può essere usata per semplificare i valori all’interno o all’esterno dell’intervallo in uscita specificato.

Sintassi

scale_exp(value, domain_min, domain_max, range_min, range_max, exponent)

Argomenti

  • value - Un valore nel dominio in ingresso. La funzione restituirà un corrispondente valore scalato nel campo in uscita.

  • domain_min - Specifica il valore minimo nel dominio in ingresso, il valore più piccolo che il valore in ingresso dovrebbe prendere.

  • domain_max - Specifica il valore massimo nel dominio in ingresso, il valore più grande che il valore in ingresso dovrebbe prendere.

  • range_min - Specifica il valore minimo nell’intervallo in uscita, il valore più piccolo che dovrebbe essere emesso dalla funzione.

  • range_max - Specifica il valore massimo nell’intervallo in uscita, il valore più grande che dovrebbe essere emesso dalla funzione.

  • exponent - Un valore positivo (maggiore di 0), che determina il modo in cui i valori in ingresso sono mappati nell’intervallo in uscita. Esponenti grandi faranno sì che i valori in uscita siano «facilitati», iniziando lentamente prima di accelerare man mano che i valori in ingresso si avvicinano al massimo del dominio. Esponenti più piccoli (meno di 1) faranno sì che i valori in uscita si «attenuino», dove la mappatura inizia velocemente ma rallenta man mano che si avvicina al massimo del dominio.

Esempi

  • scale_exp(5,0,10,0,100,2) → 25

    attenuando in ingresso, usando un esponente di 2

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

    attenuando in uscita, usando un esponente di 0,5

13.2.17.23. scale_linear

Trasforma un dato valore da un dominio in ingresso a un intervallo in uscita usando l’interpolazione lineare.

Sintassi

scale_linear(value, domain_min, domain_max, range_min, range_max)

Argomenti

  • value - Un valore nel dominio in ingresso. La funzione restituirà un corrispondente valore scalato nel campo in uscita.

  • domain_min - Specifica il valore minimo nel dominio in ingresso, il valore più piccolo che il valore in ingresso dovrebbe prendere.

  • domain_max - Specifica il valore massimo nel dominio in ingresso, il valore più grande che il valore in ingresso dovrebbe prendere.

  • range_min - Specifica il valore minimo nell’intervallo in uscita, il valore più piccolo che dovrebbe essere emesso dalla funzione.

  • range_max - Specifica il valore massimo nell’intervallo in uscita, il valore più grande che dovrebbe essere emesso dalla funzione.

Esempi

  • scale_linear(5,0,10,0,100) → 50

  • scale_linear(0.2,0,1,0,360) → 72

    scalare un valore tra 0 e 1 a un angolo tra 0 e 360

  • scale_linear(1500,1000,10000,9,20) → 9.6111111

    scalare una population che varia tra 1000 e 10000 a una dimensione carattere tra 9 e 20

13.2.17.24. sin

Restituisce il seno di un angolo.

Sintassi

sin(angle)

Argomenti

  • angle - angolo in radianti

Esempi

  • sin(1.571) → 0.999999682931835

13.2.17.25. sqrt

Restituisce la radice quadrata di un valore.

Sintassi

sqrt(value)

Argomenti

  • value - un numero

Esempi

  • sqrt(9) → 3

13.2.17.26. tan

Restituisce la tangente di un angolo.

Sintassi

tan(angle)

Argomenti

  • angle - angolo in radianti

Esempi

  • tan(1.0) → 1.5574077246549

13.2.18. Funzioni Mesh

Questo gruppo contiene funzioni che calcolano o restituiscono valori relativi alla mesh.

13.2.18.1. $face_area

Restituisce l’area della faccia corrente della mesh. L’area calcolata da questa funzione rispetta sia l’impostazione dell’ellissoide del progetto corrente che le impostazioni dell’unità di area. Per esempio, se è stato impostato un ellissoide per il progetto, allora l’area calcolata sarà ellissoidale, e se non è impostato alcun ellissoide, allora l’area calcolata sarà planimetrica.

Sintassi

$face_area

Esempi

  • $face_area → 42

13.2.18.2. $face_index

Restituisce l’indice della faccia corrente della mesh.

Sintassi

$face_index

Esempi

  • $face_index → 4581

13.2.18.3. $vertex_as_point

Restituisce il vertice corrente come una geometria punto.

Sintassi

$vertex_as_point

Esempi

  • geom_to_wkt( $vertex_as_point ) → “POINT(800 1500 41)”

13.2.18.4. $vertex_index

Restituisce l’indice del vertice corrente della mesh.

Sintassi

$vertex_index

Esempi

  • $vertex_index → 9874

13.2.18.5. $vertex_x

Restituisce la coordinata X del vertice corrente della mesh.

Sintassi

$vertex_x

Esempi

  • $vertex_x → 42.12

13.2.18.6. $vertex_y

Restituisce la coordinata Y del vertice corrente della mesh.

Sintassi

$vertex_y

Esempi

  • $vertex_y → 12.24

13.2.18.7. $vertex_z

Restituisce il valore Z del vertice corrente della mesh.

Sintassi

$vertex_z

Esempi

  • $vertex_z → 42

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

13.2.19.1. %

Resto della divisione. Prende il segno del dividendo.

Sintassi

a % b

Argomenti

  • a - valore

  • b - valore

Esempi

  • 9 % 2 → 1

  • 9 % -2 → 1

  • -9 % 2 → -1

  • 5 % NULL → NULL

13.2.19.2. *

Multiplicazione di due valori

Sintassi

a * b

Argomenti

  • a - valore

  • b - valore

Esempi

  • 5 * 4 → 20

  • 5 * NULL → NULL

13.2.19.3. +

Addizione di due valori. Se uno dei valori è NULL il risultato sarà NULL.

Sintassi

a + b

Argomenti

  • a - valore

  • b - valore

Esempi

  • 5 + 4 → 9

  • 5 + NULL → NULL

  • 'QGIS ' + 'ROCKS' → “QGIS ROCKS”

  • to_datetime('2020-08-01 12:00:00') + '1 day 2 hours' → 2020-08-02T14:00:00

Ulteriori letture concat, ||

13.2.19.4. -

Sottrazione di due valori. Se uno dei valori è NULL il risultato sarà NULL.

Sintassi

a - b

Argomenti

  • a - valore

  • b - valore

Esempi

  • 5 - 4 → 1

  • 5 - NULL → NULL

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

13.2.19.5. /

Divisione di due valori

Sintassi

a / b

Argomenti

  • a - valore

  • b - valore

Esempi

  • 5 / 4 → 1.25

  • 5 / NULL → NULL

13.2.19.6. <

Confronta due valori e valuta 1 se il valore di sinistra è inferiore a quello di destra.

Sintassi

a < b

Argomenti

  • a - valore

  • b - valore

Esempi

  • 5 < 4 → FALSE

  • 5 < 5 → FALSE

  • 4 < 5 → TRUE

13.2.19.7. <=

Confronta due valori e valuta 1 se il valore di sinistra è minore o uguale al valore di destra.

Sintassi

a <= b

Argomenti

  • a - valore

  • b - valore

Esempi

  • 5 <= 4 → FALSE

  • 5 <= 5 → TRUE

  • 4 <= 5 → TRUE

13.2.19.8. <>

Confronta due valori e valuta 1 se non sono uguali.

Sintassi

a <> b

Argomenti

  • a - valore

  • b - valore

Esempi

  • 5 <> 4 → TRUE

  • 4 <> 4 → FALSE

  • 5 <> NULL → NULL

  • NULL <> NULL → NULL

13.2.19.9. =

Confronta due valori e valuta 1 se sono uguali.

Sintassi

a = b

Argomenti

  • a - valore

  • b - valore

Esempi

  • 5 = 4 → FALSE

  • 4 = 4 → TRUE

  • 5 = NULL → NULL

  • NULL = NULL → NULL

13.2.19.10. >

Confronta due valori e valuta 1 se il valore di sinistra è maggiore di quello di destra.

Sintassi

a > b

Argomenti

  • a - valore

  • b - valore

Esempi

  • 5 > 4 → TRUE

  • 5 > 5 → FALSE

  • 4 > 5 → FALSE

13.2.19.11. >=

Confronta due valori e valuta 1 se il valore di sinistra è maggiore o uguale al valore di destra.

Sintassi

a >= b

Argomenti

  • a - valore

  • b - valore

Esempi

  • 5 >= 4 → TRUE

  • 5 >= 5 → TRUE

  • 4 >= 5 → FALSE

13.2.19.12. AND

Restituisce TRUE quando le condizioni a e b sono vere.

Sintassi

a AND b

Argomenti

  • a - condizione

  • b - condizione

Esempi

  • TRUE AND TRUE → TRUE

  • TRUE AND FALSE → FALSE

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

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

13.2.19.13. BETWEEN

Restituisce TRUE se il valore è compreso nell’intervallo specificato. L’intervallo è considerato comprensivo dei limiti. Per controllare l’esclusione si può usare NOT BETWEEN.

Sintassi

valore COMPRESO tra lower_bound E higher_bound

Argomenti

  • value - il valore da confrontare con un intervallo. Può essere una stringa, un numero o una data.

  • lower_bound AND higher_bound - limiti dell’intervallo

Esempi

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

  • 2 BETWEEN 1 AND 3 → TRUE

  • 2 BETWEEN 2 AND 3 → TRUE

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

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

Nota

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

Ulterior letture: NOT BETWEEN

13.2.19.14. ILIKE

Restituisce TRUE se il primo parametro corrisponde senza distinzione tra maiuscole e minuscole al pattern fornito. È possibile utilizzare LIKE al posto di ILIKE per rendere la corrispondenza sensibile alle maiuscole e alle minuscole. Funziona anche con i numeri.

Sintassi

stringa/numero ILIKE criterio

Argomenti

  • string/number - stringa da cercare

  • pattern - criterio di ricerca, puoi usare “%” come carattere jolly, “_” come carattere singolo e “\\” per evitare questi caratteri speciali.

Esempi

  • 'A' ILIKE 'A' → TRUE

  • 'A' ILIKE 'a' → TRUE

  • 'A' ILIKE 'B' → FALSE

  • 'ABC' ILIKE 'b' → FALSE

  • 'ABC' ILIKE 'B' → FALSE

  • 'ABC' ILIKE '_b_' → TRUE

  • 'ABC' ILIKE '_B_' → TRUE

  • 'ABCD' ILIKE '_b_' → FALSE

  • 'ABCD' ILIKE '_B_' → FALSE

  • 'ABCD' ILIKE '_b%' → TRUE

  • 'ABCD' ILIKE '_B%' → TRUE

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

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

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

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

13.2.19.15. IN

Restituisce TRUE se il valore viene trovato all’interno di un elenco di valori.

Sintassi

a IN b

Argomenti

  • a - valore

  • b - lista di valori

Esempi

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

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

13.2.19.16. IS

Restituisce TRUE se a è uguale a b.

Sintassi

a IS b

Argomenti

  • a - qualsiasi valore

  • b - qualsiasi valore

Esempi

  • 'A' IS 'A' → TRUE

  • 'A' IS 'a' → FALSE

  • 4 IS 4 → TRUE

  • 4 IS 2+2 → TRUE

  • 4 IS 2 → FALSE

  • $geometry IS NULL → 0, se la tua geometria non è NULL

13.2.19.17. IS NOT

Restituisce TRUE se a non è uguale a b.

Sintassi

a IS NOT b

Argomenti

  • a - valore

  • b - valore

Esempi

  • 'a' IS NOT 'b' → TRUE

  • 'a' IS NOT 'a' → FALSE

  • 4 IS NOT 2+2 → FALSE

13.2.19.18. LIKE

Restituisce TRUE se il primo parametro corrisponde al criterio fornito. Funziona anche con i numeri.

Sintassi

stringa/numero LIKE criterio

Argomenti

  • string/number - valore

  • pattern - criterio con cui confrontare il valore, puoi usare “%” come carattere jolly, “_” come carattere singolo e “\\” per evitare questi caratteri speciali.

Esempi

  • 'A' LIKE 'A' → TRUE

  • 'A' LIKE 'a' → FALSE

  • 'A' LIKE 'B' → FALSE

  • 'ABC' LIKE 'B' → FALSE

  • 'ABC' LIKE '_B_' → TRUE

  • 'ABCD' LIKE '_B_' → FALSE

  • 'ABCD' LIKE '_B%' → TRUE

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

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

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

13.2.19.19. NOT

Negare una condizione.

Sintassi

NOT a

Argomenti

  • a - condizione

Esempi

  • NOT 1 → FALSE

  • NOT 0 → TRUE

13.2.19.20. NOT BETWEEN

Restituisce TRUE se il valore non rientra nell’intervallo specificato. L’intervallo è considerato comprensivo dei limiti.

Sintassi

valore NOT BETWEEN lower_bound AND higher_bound

Argomenti

  • value - il valore da confrontare con un intervallo. Può essere una stringa, un numero o una data.

  • lower_bound AND higher_bound - limiti dell’intervallo

Esempi

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

  • 1.0 NOT BETWEEN 1.1 AND 1.2 → TRUE

  • 2 NOT BETWEEN 2 AND 3 → FALSE

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

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

Nota

value NOT BETWEEN lower_bound AND higher_bound è uguale a «value < lower_bound OR value > higher_bound».

Ulteriori letture: BETWEEN

13.2.19.21. OR

Restituisce TRUE quando la condizione a o b è vera.

Sintassi

a OR b

Argomenti

  • a - condizione

  • b - condizione

Esempi

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

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

  • 4 = 2   OR 1 = 2 → FALSE

13.2.19.22. []

Operatore indice. Restituisce un elemento da un array o un valore di mappa.

Sintassi

[index]

Argomenti

  • index - indice dell’array o valore chiave mappa

Esempi

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

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

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

  • map('a',1,'b',2)['a'] → 1

  • map('a',1,'b',2)['b'] → 2

ulteriori letture: array_get, map_get

13.2.19.23. ^

Potenza di due valori.

Sintassi

a ^ b

Argomenti

  • a - valore

  • b - valore

Esempi

  • 5 ^ 4 → 625

  • 5 ^ NULL → NULL

13.2.19.24. ||

Unire due valori in una stringa.

Se uno dei valori è NULL il risultato sarà NULL. Vedere la funzione CONCAT per un comportamento diverso.

Sintassi

a || b

Argomenti

  • a - valore

  • b - valore

Esempi

  • 'Here' || ' and ' || 'there' → “Here and there”

  • 'Nothing' || NULL → NULL

  • 'Dia: ' || "Diameter" → “Dia: 25”

  • 1 || 2 → “12”

Ulteriori letture: concat, +

13.2.19.25. ~

Esegue una corrispondenza dell’espressione regolare su un valore di stringa. I caratteri di backslash devono essere preceduti da un doppio escape (ad esempio, «\\s» per corrispondere a un carattere di spazio bianco).

Sintassi

stringa ~ regex

Argomenti

  • string - Un valore stringa

  • regex - Un’espressione regolare. Gli slash devono essere eliminati, ad esempio \\d.

Esempi

  • 'hello' ~ 'll' → TRUE

  • 'hello' ~ '^ll' → FALSE

  • 'hello' ~ 'llo$' → TRUE

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

Ulteriori letture: regexp_match

13.2.20. Funzioni di Processing

Questo gruppo contiene funzioni che operano su algoritmi di processing.

13.2.20.1. parameter

Restituisce il valore di un parametro in ingresso dell’algoritmo di processing.

Sintassi

parameter(name)

Argomenti

  • name - nome del parametro in ingresso corrispondente

Esempi

  • parameter('BUFFER_SIZE') → 5.6

13.2.21. Funzioni Raster

Questo gruppo contiene funzioni che operano sui layer raster.

13.2.21.1. raster_statistic

Restituisce statistiche da un layer raster.

Sintassi

raster_statistic(layer, band, property)

Argomenti

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

  • band - intero che rappresenta il numero di banda del layer raster, a partire da 1

  • property - una stringa corrispondente alla proprietà da restituire. Le opzioni valide sono:

    • 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') → Valore medio dalla banda 1 del layer raster “lc”

  • raster_statistic('ac2010',3,'min') → Valore minimo dalla banda 3 del layer raster “ac2010”

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

13.2.22. Funzioni relative ai record e agli attributi

Questo gruppo contiene funzioni che operano sugli identificativi dei record.

13.2.22.1. attribute

Restituisce un attributo da un elemento.

Variabile 1

Restituisce il valore di un attributo dell” elemento corrente.

Sintassi

attribute(attribute_name)

Argomenti

  • attribute_name - nome dell’attributo da restituire

Esempi

  • attribute( 'name' ) → valore memorizzato nell’attributo “nome” per l’elemento corrente

Variabile 2

Permette di specificare il nome dell’elemento e dell’attributo di destinazione.

Sintassi

attribute(feature, attribute_name)

Argomenti

  • feature - un elemento

  • attribute_name - nome dell’attributo da restituire

Esempi

  • attributo( @atlas_feature, 'name' ) → valore memorizzato nell’attributo “name” per l’elemento corrente dell’atlante

13.2.22.2. attributes

Restituisce una mappa contenente tutti gli attributi di un’elemento, con i nomi del campo come chiavi della mappa.

Variabile 1

Restituisce una mappa di tutti gli attributi dell’elemento corrente.

Sintassi

attributes()

Esempi

  • attributes()['name'] → valore memorizzato nell’attributo “name” per l’elemento corrente

Variabile 2

Permette di specificare l’elemento di destinazione.

Sintassi

attributes(feature)

Argomenti

  • feature - un elemento

Esempi

  • attributes( @atlas_feature )['name'] → valore memorizzato nell’attributo “name” per l’elemento dell’atlante corrente

Ulteriori informazioni: Funzioni mappa

13.2.22.3. $currentfeature

Restituisce l’elemento correntemente esaminato. Può essere usata con la funzione “attribute” per valutare i valori degli attributi dell’elemento corrente. **Questa funzione è deprecata. Si raccomanda di utilizzare la variabile sostitutiva @feature.

Sintassi

$currentfeature

Esempi

  • attribute( $currentfeature, 'name' ) → valore memorizzato nell’attributo “nome” per l’elemento corrente

13.2.22.4. display_expression

Restituisce l’espressione di visualizzazione per un data elemento in un layer. L’espressione viene valutata per impostazione predefinita. Può essere usata con zero, uno o più argomenti, vedi sotto per i dettagli.

Nessun parametro

Se chiamata senza parametri, la funzione valuterà l’espressione di visualizzazione dell’elemento corrente nel layer corrente.

Sintassi

display_expression()

Esempi

  • display_expression() → L’espressione di visualizzazione dell’elemento corrente nel layer corrente.

“feature” come parametro

Se chiamato solo con un parametro “feature”, la funzione valuterà la caratteristica specificata dal layer corrente.

Sintassi

display_expression(feature)

Argomenti

  • feature - L’elemento da valutare.

Esempi

  • display_expression(@atlas_feature) → L’espressione di visualizzazione dell’elemento dell’atlante corrente.

Parametri layer e feature

Se la funzione viene chiamata sia con un layer che con una feature, valuterà l’elemento specificato dal layer specificato.

Sintassi

display_expression(layer, feature, [evaluate=true])

[] indica argomenti opzionali

Argomenti

  • layer - Il layer (o il suo ID o nome)

  • feature - L’elemento da valutare.

  • evaluate - Se l’espressione deve essere valutata. Se false, l’espressione sarà restituita solo come stringa letterale (che potrebbe potenzialmente essere valutata in seguito usando la funzione “eval”).

Esempi

  • display_expression( 'streets', get_feature_by_id('streets', 1)) → L’espressione di visualizzazione dell’elemento con ID 1 sul layer “streets”.

  • display_expression('a_layer_id', $currentfeature, 'False') → L’espressione di visualizzazione del dato elemento non valutato.

13.2.22.5. get_feature

Restituisce il primo elemento di un layer che corrisponde ad un dato valore di attributo.

Variante valore singolo

Oltre all’ID del layer, vengono specificati una singola colonna e un valore.

Sintassi

get_feature(layer, attribute, value)

Argomenti

  • layer - nome o ID del layer

  • attribute - nome dell’attributo da utilizzare per la corrispondenza

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

Variabile mappa

Insieme all’ID del layer, una mappa contenente le colonne (chiave) e il rispettivo valore da utilizzare.

Sintassi

get_feature(layer, attribute)

Argomenti

  • layer - nome o ID del layer

  • attribute - Mappa contenente le coppie di colonne e valori da utilizzare

Esempi

  • get_feature('streets',map('name','main st','lane_num','4')) → primo elemento trovato nel layer «streets» con valore «main st» nel campo «name» e valore «4» nel campo «lane_num»

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

13.2.22.7. $id

Restituisce l’id dell’elemento della riga corrente. **Attenzione: questa funzione è deprecata. Si raccomanda di utilizzare la variabile sostitutiva @id.

Sintassi

$id

Esempi

  • $id → 42

13.2.22.8. is_selected

Restituisce TRUE se un elemento è selezionato. Può essere usato con zero, uno o due argomenti; per i dettagli, vedere di seguito.

Nessun parametro

Se richiamata senza parametri, la funzione restituisce TRUE se l’elemento corrente nel layer corrente è selezionato.

Sintassi

is_selected()

Esempi

  • is_selected() → TRUE se l’elemento corrente nel layer corrente è selezionato.

“feature” come parametro

Se richiamata con il solo parametro “feature”, la funzione restituisce TRUE se l’elemento specificato del layer corrente è selezionato.

Sintassi

is_selected(feature)

Argomenti

  • feature - L’elemento che dovrebbe essere controllato per la selezione.

Esempi

  • is_selected(@atlas_feature) → TRUE se l’elemento dell’atlante corrente è selezionato.

  • is_selected(get_feature('streets', 'name', 'Main St.')) → TRUE se l’elemento univoco denominato «Main St.» sul layer «streets» attivo è selezionato.

  • is_selected(get_feature_by_id('streets', 1)) → TRUE se l’elemento con l’id 1 sul layer «streets» attivo è selezionato.

Due parametri

Se la funzione viene richiamata con un layer e un elemento, restituirà TRUE se viene selezionato l’elemento specificato dal layer specificato.

Sintassi

is_selected(layer, feature)

Argomenti

  • layer - Il layer (il suo ID o nome) su cui la selezione sarà verificata.

  • feature - L’elemento che dovrebbe essere controllato per la selezione.

Esempi

  • is_selected( 'streets', get_feature('streets', 'name', "street_name")) → TRUE se la strada dell’edificio corrente è selezionata (assumendo che il layer building abbia un campo chiamato “street_name” e il layer “streets” abbia un campo chiamato “name” con valori univoci).

  • is_selected( 'streets', get_feature_by_id('streets', 1)) → TRUE se l’elemento con l’id 1 sul layer «streets» è selezionato.

13.2.22.9. maptip

Restituisce il suggerimento per un dato elemento in un layer. L’espressione viene valutata di default. Può essere usata con zero, uno o più argomenti, vedi sotto per i dettagli.

Nessun parametro

Se chiamata senza parametri, la funzione elaborerà il suggerimento dell’elemento corrente nel layer corrente.

Sintassi

maptip()

Esempi

  • maptip() → Il suggerimento dell’elemento corrente nel layer corrente.

“feature” come parametro

Se chiamato solo con un parametro “feature”, la funzione valuterà la caratteristica specificata dal layer corrente.

Sintassi

maptip(feature)

Argomenti

  • feature - L’elemento da valutare.

Esempi

  • maptip(@atlas_feature) → Il suggerimento dell’elemento corrente dell’atlante.

Parametri layer e feature

Se la funzione viene chiamata sia con un layer che con una feature, valuterà l’elemento specificato dal layer specificato.

Sintassi

maptip(layer, feature, [evaluate=true])

[] indica argomenti opzionali

Argomenti

  • layer - Il layer (o il suo ID o nome)

  • feature - L’elemento da valutare.

  • evaluate - Se l’espressione deve essere valutata. Se false, l’espressione sarà restituita solo come stringa letterale (che potrebbe potenzialmente essere valutata in seguito usando la funzione “eval_template”).

Esempi

  • maptip('streets', get_feature_by_id('streets', 1)) → Il suggerimento dell’elemento con ID 1 sul layer “streets”.

  • maptip('a_layer_id', $currentfeature, 'False') → Il suggerimento del dato elemento non valutato.

13.2.22.10. num_selected

Restituisce il numero di elemento selezionati su un dato layer. Per impostazione predefinita lavora sul layer su cui viene valutata l’espressione.

Sintassi

num_selected([layer=current layer])

[] indica argomenti opzionali

Argomenti

  • layer - Il layer (o il suo id o nome) su cui la selezione sarà controllata.

Esempi

  • num_selected() → Il numero di elementi selezionati sul layer corrente.

  • num_selected('streets') → Il numero di elementi selezionati sul layer streets

13.2.22.11. represent_attributes

Restituisce una mappa con i nomi degli attributi come chiavi e i valori di rappresentazione configurati come valori. Il valore di rappresentazione degli attributi dipende dal tipo di widget configurato per ciascun attributo. Può essere usato con zero, uno o più argomenti, vedere di seguito per i dettagli.

Nessun parametro

Se chiamata senza parametri, la funzione restituisce la rappresentazione degli attributi dell’elemento corrente nel layer corrente.

Sintassi

represent_attributes()

Esempi

  • represent_attributes() → La rappresentazione degli attributi per l’elemento corrente.

“feature” come parametro

Se richiamata con il solo parametro «feature», la funzione restituirà la rappresentazione degli attributi dell’elemento specificato dal layer corrente.

Sintassi

represent_attributes(feature)

Argomenti

  • feature - L’elemento da valutare.

Esempi

  • represent_attributes(@atlas_feature) → La rappresentazione degli attributi per l’elemento specificato dal layer corrente.

Parametri layer e feature

Se chiamata con un parametro “layer” e un parametro “feature”, la funzione restituisce la rappresentazione degli attributi dell’elemento specificato dal layer specificato.

Sintassi

represent_attributes(layer, feature)

Argomenti

  • layer - Il layer (o il suo ID o nome).

  • feature - L’elemento da valutare.

Esempi

  • represent_attributes('atlas_layer', @atlas_feature) → Rappresentazione degli attributi dell’elemento specificato dal layer specificato.

Ulteriori letture: represent_value

13.2.22.12. represent_value

Restituisce il valore di rappresentazione configurato per un valore di campo. Dipende dal tipo di widget configurato. Spesso è utile per i widget “Value Map”.

Sintassi

represent_value(value, [fieldName])

[] indica argomenti opzionali

Argomenti

  • value - Il valore che dovrebbe essere risolto. Molto probabilmente un campo.

  • fieldName - Il nome del campo per il quale deve essere caricata la configurazione del widget.

Esempi

  • represent_value("field_with_value_map") → Descrizione per il valore

  • represent_value('static value', 'field_name') → Descrizione per il valore statico

Ulteriori letture: widget types, represent_attributes

13.2.22.13. sqlite_fetch_and_increment

Gestire i valori autoincrementanti nei database sqlite.

I valori predefiniti di SQlite possono essere applicati solo per l’inserimento e non preimpostati.

Questo rende impossibile acquisire una chiave primaria incrementata tramite AUTO_INCREMENT prima di creare la riga nel database. Nota a margine: con postgres, questo funziona tramite l’opzione evaluate default values.

Quando si aggiungono nuovi elementi con le relazioni, è davvero bello poter già aggiungere figli per un genitore, mentre il modulo dei genitori è ancora aperto e quindi la funzione genitore non è impegnata.

Per aggirare questa limitazione, questa funzione può essere usata per gestire i valori di sequenza in una tabella separata sui formati basati su sqlite come gpkg.

La tabella delle sequenze sarà filtrata per un id di sequenza (filter_attribute e filter_value) e il valore corrente del campo id_ sarà incrementato di 1 e il valore incrementato restituito.

Se le colonne aggiuntive richiedono di specificare dei valori, la mappa default_values può essere usata per questo scopo.

Nota

Questa funzione modifica la tabella sqlite di destinazione. È concepita per l’uso con configurazioni di valori predefiniti per gli attributi.

Quando il parametro del database è un layer e il layer è in modalità transazione, il valore sarà recuperato solo una volta durante la durata di una transazione e messo in cache e incrementato. Questo rende insicuro lavorare sullo stesso database da diversi processi in parallelo.

Sintassi

sqlite_fetch_and_increment(database, table, id_field, filter_attribute, filter_value, [default_values])

[] indica argomenti opzionali

Argomenti

  • database - Percorso al file sqlite o al layer geopackage

  • table - Nome della tabella che gestisce le sequenze

  • id_field - Nome del campo che contiene il valore corrente

  • filter_attribute - Nome del campo che contiene un identificatore univoco per questa sequenza. Deve avere un indice UNIVOCO.

  • filter_value - Nome della sequenza da utilizzare.

  • default_values - Mappa con valori predefiniti per le colonne aggiuntive della tabella. I valori devono essere completamente quotati. Le funzioni sono ammesse.

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

13.2.22.14. uuid

Genera un UUID (Universally Unique Identifier) per ogni riga usando il metodo Qt QUuid::createUuid.

Sintassi

uuid([format=”WithBraces”])

[] indica argomenti opzionali

Argomenti

  • format - Il formato, come l’UUID sarà formattato. “WithBraces”, “WithoutBraces” o “Id128”.

Esempi

  • uuid() → “{0bd2f60f-f157-4a6d-96af-d4ba4cb366a1}”

  • uuid('WithoutBraces') → “0bd2f60f-f157-4a6d-96af-d4ba4cb366a1”

  • uuid('Id128') → “0bd2f60ff1574a6d96afd4ba4cb366a1”

13.2.23. Relazioni

Questo gruppo contiene la lista delle relations disponibili nel progetto corrente, con la loro descrizione. Fornisce un accesso rapido all’ID della relazione per scrivere un’espressione (ad esempio con la funzione relation_aggregate) o per personalizzare un modulo.

13.2.24. Funzioni Stringa

Questo gruppo contiene le funzioni che operano sulle stringhe (ad esempio sostituisci, converti in maiuscolo).

13.2.24.1. ascii

Restituisce il codice unicode associato al primo carattere di una stringa.

Sintassi

ascii(string)

Argomenti

  • string - la stringa da convertire in codice unicode

Esempi

  • ascii('Q') → 81

13.2.24.2. char

Restituisce il carattere associato a un codice unicode.

Sintassi

char(code)

Argomenti

  • code - un numero di codice unicode

Esempi

  • char(81) → “Q”

13.2.24.3. concat

Concatena diverse stringhe in una sola. I valori NULL sono convertiti in stringhe vuote. Altri valori (come i numeri) sono convertiti in stringhe.

Sintassi

concat(string1, string2, …)

Argomenti

  • string - un valore stringa

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

Puoi anche concatenare stringhe o valori di campo usando gli operatori || o +`, con alcune caratteristiche speciali:

  • L’operatore + significa anche sommare l’espressione, quindi se avete un operando intero (campo o valore numerico), questo può essere soggetto a errori ed è meglio usare gli altri:

    'My feature id is: ' + "gid" => triggers an error as gid returns an integer
    
  • Quando uno degli argomenti è un valore NULL, sia || che + restituiranno un valore NULL. Per restituire gli altri argomenti indipendentemente dal valore NULL, potete usare la funzione concat:

    'My feature id is: ' + NULL ==> NULL
    'My feature id is: ' || NULL => NULL
    concat('My feature id is: ', NULL) => 'My feature id is: '
    

ulteriori letture: ||, +

13.2.24.4. format

Formatta una stringa usando gli argomenti forniti.

Sintassi

format(string, arg1, arg2, …)

Argomenti

  • string - Una stringa con i segnaposto %1, %2, ecc. per gli argomenti. I segnaposto possono essere ripetuti. Il segnaposto di numero più basso è sostituito da arg1, il successivo da arg2, ecc.

  • arg - qualsiasi tipo. Qualsiasi numero di argomenti.

Esempi

  • format('This %1 a %2','is', 'test') → “This is a test”

  • format('This is %2','a bit unexpected but 2 is lowest number in string','normal') → “This is a bit unexpected but 2 is lowest number in string”

13.2.24.5. format_date

Formatta un tipo di data o una stringa in un formato personalizzato. Utilizza le stringhe del formato data/ora di Qt. Vedi QDateTime::toString.

Sintassi

format_date(datetime, format, [language])

[] indica argomenti opzionali

Argomenti

  • datetime - data, ora o valore datetime

  • format - Modello di stringa usato per formattare la stringa.

    Espressione

    Risultato

    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 “Lun” a “Dom”)

    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

    format - il nome abbreviato del mese localizzato (ad esempio, da “Jan” a “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

    Queste espressioni possono essere usate per la parte temporale della stringa di formato:

    Espressione

    Risultato

    h

    l’ora senza lo zero iniziale (da 0 a 23 o da 1 a 12 in caso di visualizzazione AM/PM)

    hh

    l’ora con uno zero iniziale (da 00 a 23 o da 01 a 12 in caso di visualizzazione AM/PM)

    H

    l’ora senza lo zero iniziale (da 0 a 23, anche con la visualizzazione AM/PM)

    HH

    l’ora con uno zero iniziale (da 00 a 23, anche con visualizzazione AM/PM)

    m

    il minuto senza lo zero iniziale (da 0 a 59)

    mm

    il minuto con uno zero iniziale (da 00 a 59)

    s

    il secondo senza uno zero iniziale (da 0 a 59)

    ss

    il secondo con uno zero iniziale (da 00 a 59)

    z

    i millisecondi senza zeri iniziali (da 000 a 999)

    zzz

    i millisecondi con zeri iniziali (da 000 a 999)

    AP or A

    interpretare come un orario AM/PM. AP deve essere o “AM” o “PM”.

    ap or a

    Interpretare come un orario AM/PM. ap deve essere o “am” o “pm”.

  • language - lingua (in minuscolo, a due o tre lettere, codice lingua ISO 639) usata per formattare la data in una stringa personalizzata. Per impostazione predefinita viene usato il formato del paese corrente dell’utente di QGIS.

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”, se il formato locale corrente è una versione inglese

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

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

13.2.24.6. format_number

Restituisce un numero formattato con il separatore nel formato del paese per le migliaia. Per impostazione predefinita viene utilizzato il locale utente corrente di QGIS. Inoltre tronca le cifre decimali al numero di posizioni fornite.

Sintassi

format_number(number, [places=0], [language], [omit_group_separators=false], [trim_trailing_zeroes=false])

[] indica argomenti opzionali

Argomenti

  • number - numero da formattare

  • places - intero che rappresenta il numero di posizioni decimali a cui troncare la stringa.

  • language - lingua (in minuscolo, due o tre lettere, ISO 639 language code) usata per formattare il numero in una stringa. Per impostazione predefinita viene usata la lingua corrente dell’utente QGIS.

  • omit_group_separators - se impostato su true, i separatori di gruppo non saranno inclusi nella stringa

  • trim_trailing_zeroes - se impostato su true, gli zeri dopo il punto decimale verranno tagliati dalla stringa.

Esempi

  • format_number(10000000.332,2) → “10,000,000.33” se ad esempio il formato del paese corrente è una versione inglese

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

13.2.24.7. left

Restituisce una sottostringa che contiene gli n caratteri più a sinistra della stringa.

Sintassi

left(string, length)

Argomenti

  • string - una stringa

  • length - intero. Il numero di caratteri da sinistra della stringa da restituire.

Esempi

  • left('Hello World',5) → “Hello”

13.2.24.8. length

Restituisce il numero di caratteri in una stringa o la lunghezza di una stringa geometrica.

Variabile 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

Variabile geometria

Calcola la lunghezza di un oggetto geometria linea. I calcoli sono sempre planimetrici nel Sistema di Riferimento Spaziale (SRS) di questa geometria, e le unità della lunghezza restituita corrisponderanno alle unità dell’SR. Questo differisce dai calcoli eseguiti dalla funzione $length, che eseguirà calcoli ellissoidali basati sulle impostazioni di ellissoide e unità di distanza del progetto.

Sintassi

length(geometry)

Argomenti

  • geometry - oggetto geometria linea

Esempi

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

13.2.24.9. lower

Converte una stringa in lettere minuscole.

Sintassi

lower(string)

Argomenti

  • string - la stringa da convertire in minuscolo

Esempi

  • lower('HELLO World') → “hello world”

13.2.24.10. lpad

Restituisce una stringa riempita a sinistra alla larghezza specificata, usando un carattere di riempimento. Se la larghezza di destinazione è inferiore alla lunghezza della stringa, la stringa viene troncata.

Sintassi

lpad(string, width, fill)

Argomenti

  • string - stringa da riempire

  • width - lunghezza della nuova stringa

  • fill - carattere con cui riempire lo spazio rimanente

Esempi

  • lpad('Hello', 10, 'x') → “xxxxxHello”

  • lpad('Hello', 3, 'x') → “Hel”

13.2.24.11. regexp_match

Restituisce la prima posizione corrispondente a un’espressione regolare all’interno di una stringa unicode, o 0 se la sottostringa non viene trovata.

Sintassi

regexp_match(input_string, regex)

Argomenti

  • input_string - la stringa da testare in base all’espressione regolare

  • regex - L’espressione regolare da testare. I caratteri di backslash devono essere sottoposti a doppio escape (ad esempio, «\\s» per trovare un carattere di spazio bianco o «\\b» per trovare un confine di parola).

Esempi

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

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

13.2.24.12. regexp_replace

Restituisce una stringa con l’espressione regolare fornita sostituita.

Sintassi

regexp_replace(input_string, regex, replacement)

Argomenti

  • input_string - la stringa in cui sostituire le corrispondenze

  • regex - L’espressione regolare da sostituire. I caratteri di backslash devono essere sottoposti a doppio escape (ad esempio, «\\s» per identificare uno spazio bianco).

  • replacement - La stringa che sostituirà qualsiasi occorrenza corrispondente all’espressione regolare fornita. I gruppi individuati possono essere inseriti nella stringa in sostituzione usando \\1, \\2, ecc.

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”

13.2.24.13. regexp_substr

Restituisce la porzione di una stringa che corrisponde a un’espressione regolare fornita.

Sintassi

regexp_substr(input_string, regex)

Argomenti

  • input_string - la stringa in cui trovare le corrispondenze

  • regex - L’espressione regolare da confrontare. I caratteri di backslash devono essere sottoposti a doppio escape (ad esempio, «\\s» per trovare un carattere di spazio bianco).

Esempi

  • regexp_substr('abc123','(\\d+)') → “123”

13.2.24.14. replace

Restituisce una stringa con la stringa, l’array o la mappa di stringhe fornita sostituita.

Variabile di stringa e array

Restituisce una stringa con la stringa o l’array di stringhe fornito sostituito da una stringa o un array di stringhe.

Sintassi

replace(string, before, after)

Argomenti

  • string - la stringa in ingresso

  • before - la stringa o l’array di stringhe da sostituire

  • after - la stringa o l’array di stringhe da usare come sostituzione

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”

Variabile mappa

Restituisce una stringa con le chiavi mappa fornite sostituite da valori accoppiati. Le chiavi di mappa più lunghe vengono elaborate per prime.

Sintassi

replace(string, map)

Argomenti

  • string - la stringa in ingresso

  • map - la mappa contenente chiavi e valori

Esempi

  • replace('APP SHOULD ROCK',map('APP','QGIS','SHOULD','DOES')) → “QGIS DOES ROCK”

  • replace('forty two',map('for','4','two','2','forty two','42')) → “42”

13.2.24.16. rpad

Restituisce una stringa con un riempimento a destra alla larghezza specificata, usando un carattere di riempimento. Se la larghezza di destinazione è inferiore alla lunghezza della stringa, la stringa viene troncata.

Sintassi

rpad(string, width, fill)

Argomenti

  • string - stringa da riempire

  • width - lunghezza della nuova stringa

  • fill - carattere con cui riempire lo spazio rimanente

Esempi

  • rpad('Hello', 10, 'x') → “Helloxxxxx”

  • rpad('Hello', 3, 'x') → “Hel”

13.2.24.17. strpos

Restituisce la prima posizione corrispondente di una sottostringa all’interno di un’altra stringa, o 0 se la sottostringa non viene trovata.

Sintassi

strpos(haystack, needle)

Argomenti

  • haystack - stringa su cui fare la ricerca

  • needle - stringa da cercare

Esempi

  • strpos('HELLO WORLD','WORLD') → 7

  • strpos('HELLO WORLD','GOODBYE') → 0

13.2.24.18. substr

Restituisce una parte di una stringa.

Sintassi

substr(string, start, [length])

[] indica argomenti opzionali

Argomenti

  • string - la stringa in ingresso completa

  • start - intero che rappresenta la posizione iniziale da estrarre a partire da 1; se start è negativo, la stringa restituita inizierà alla fine della stringa meno il valore di start

  • lenght - intero che rappresenta la lunghezza della stringa da estrarre; se la lunghezza è negativa, la stringa restituita ometterà la lunghezza data di caratteri dalla fine della stringa

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”

13.2.24.19. title

Converte tutte le parole di una stringa titolo (tutte le parole minuscole con lettera maiuscola iniziale).

Sintassi

title(string)

Argomenti

  • string - la stringa da convertire in titolo

Esempi

  • title('hello WOrld') → “Hello World”

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

13.2.24.21. trim

Rimuove tutti gli spazi bianchi iniziali e finali (spazi, tabulazioni, ecc.) da una stringa.

Sintassi

trim(string)

Argomenti

  • string - stringa da tagliare

Esempi

  • trim('   hello world  ') → “hello world”

13.2.24.22. upper

string - la stringa da convertire in minuscolo.

Sintassi

upper(string)

Argomenti

  • string - la stringa da convertire in maiuscolo

Esempi

  • upper('hello WOrld') → “HELLO WORLD”

13.2.24.23. wordwrap

Restituisce una stringa con andata a capo in un numero massimo/minimo di caratteri.

Sintassi

wordwrap(string, wrap_length, [delimiter_string])

[] indica argomenti opzionali

Argomenti

  • string - la stringa da mandare a capo

  • wrap_length - un intero. Se wrap_length è positivo, il numero rappresenta il numero massimo ideale di caratteri prima di andare a capo; se è negativo, il numero rappresenta il numero minimo di caratteri da mandare a capo.

  • delimiter_string - Stringa delimitatrice opzionale per mandare a capo in una nuova linea.

Esempi

  • wordwrap('UNIVERSITY OF QGIS',13) → “UNIVERSITY OF<br>QGIS”

  • wordwrap('UNIVERSITY OF QGIS',-3) → “UNIVERSITY<br>OF QGIS”

13.2.25. Espressioni utente

Questo gruppo contiene le espressioni salvate come user expressions.

13.2.26. Variabili

Questo gruppo contiene variabili dinamiche relative all’applicazione, al file di progetto e ad altre impostazioni. La disponibilità delle variabili dipende dal contesto:

  • 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

Per usare queste variabili in un’espressione, dovrebbero essere precedute dal carattere @ (ad esempio, @row_number).

Variabile

Descrizione

algorithm_id

L’ID univoco di un algoritmo

animation_end_time

Fine dell’intervallo temporale complessivo dell’animazione (come valore datetime)

animation_interval

Durata temporale complessiva dell’animazione (come valore di intervallo)

animation_start_time

Inizio dell’intervallo temporale complessivo dell’animazione (come valore datetime)

atlas_feature

L’elemento corrente dell’atlante (come oggetto)

atlas_featureid

L’ID dell’elemento corrente dell’atlante

atlas_featurenumber

Il numero dell’elemento corrente nel layout dell’atlante

atlas_filename

Il nome del file dell’atlante corrente

atlas_geometry

La geometria dell” elemento corrente dell’atlante

atlas_layerid

L’ID del layer corrente di copertura dell’atlante

atlas_layername

Il nome del layer corrente di copertura dell’atlante

atlas_pagename

Il nome della pagina corrente dell’atlante

atlas_totalfeatures

Il numero totale di elementi nell’atlante

canvas_cursor_point

L’ultima posizione del cursore sulla mappa nelle coordinate geografiche del progetto

cluster_color

Il colore dei simboli all’interno di un cluster, o NULL se i simboli hanno colori misti

cluster_size

Il numero di simboli contenuti in un cluster

current_feature

L’elemento che si sta modificando nel modulo degli attributi o nella riga della tabella

current_geometry

La geometria dell’elemento che si sta modificando nel modulo o nella riga della tabella

current_parent_feature

rappresenta l’elemento correntemente in fase di modifica nel modulo padre. Utilizzabile solo in un contesto di modulo incorporato.

current_parent_geometry

rappresenta la geometria dell’elemento correntemente in fase di modifica nel modulo padre. Utilizzabile solo in un contesto di modulo incorporato.

form_mode

Per cosa è usato il modulo, come AddFeatureMode, SingleEditMode, MultiEditMode, SearchMode, AggregateSearchMode o IdentifyMode come stringa.

feature NEW in 3.28

L’elemento corrente che viene valutato. Può essere usata con la funzione “attribute” per valutare i valori degli attributi dell’elemento corrente.

frame_duration

Durata temporale di ogni fotogramma dell’animazione (come valore di intervallo)

frame_number

Numero di fotogramma corrente durante la riproduzione dell’animazione

frame_rate

Numero di fotogrammi al secondo durante la riproduzione dell’animazione

fullextent_maxx

Valore x massimo dall’intera estensione della mappa (compresi tutti i layer)

fullextent_maxy

Valore y massimo dall’intera estensione della mappa (compresi tutti i layer)

fullextent_minx

Valore x minimo dall’intera estensione della mappa (compresi tutti i layer)

fullextent_miny

Valore y minimo dall’intera estensione della mappa (compresi tutti i layer)

geometry NEW in 3.28

La geometria dell’elemento in corso di valutazione

geometry_part_count

Il numero di parti nella geometria dell’elemento visualizzato

geometry_part_num

Il numero di parte della geometria corrente per l’elemento in corso di rappresentazione

geometry_point_count

Il numero di punti nella parte della geometria visualizzata

geometry_point_num

Il punto corrente nella parte della geometria visualizzata

geometry_ring_num

Numero di anello della geometria corrente per l’elemento in fase di visualizzazione (solo per elementi poligonali). L’anello esterno ha un valore di 0.

grid_axis

L’asse corrente di annotazione della griglia (per esempio, “x” per la longitudine, “y” per la latitudine)

grid_number

Il valore corrente di annotazione della griglia

id NEW in 3.28

L’ID dell’elemento in corso di valutazione

item_id

L’ID utente dell’oggetto layout (non necessariamente univoco)

item_uuid

L’ID univoco dell’oggetto layout

layer

Il layer corrente

layer_crs

L’ID dell’autorità del sistema di riferimento delle coordinate del layer corrente

layer_id

L” ID del layer corrente

layer_ids

Gli ID di tutti i layer della mappa nel progetto corrente come elenco

layer_name

Il nome del layer corrente

layers

Tutti i layer della mappa nel progetto corrente come elenco

layout_dpi

La risoluzione della composizione (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

L’altezza della pagina attiva nel layout (in mm per i formati carta standard, o qualsiasi unità usata per i formati carta personalizzati)

layout_pageoffsets

Array della coordinata Y della parte superiore di ogni pagina. Permette di posizionare dinamicamente gli elementi sulle pagine in un contesto in cui le dimensioni della pagina possono cambiare

layout_pagewidth

La larghezza della pagina attiva nel layout (in mm per i formati carta standard, o qualsiasi unità usata per i formati carta personalizzati)

legend_column_count

Il numero di colonne nella legenda

legend_filter_by_map

Indica se il contenuto della legenda è filtrato dalla mappa

legend_filter_out_atlas

Indica se l’atlante è filtrato dalla legenda

legend_split_layers

Indica se i layer possono essere divisi nella legenda

legend_title

Il titolo della legenda

legend_wrap_string

Il carattere(i) usato per comporre il testo della legenda

map_crs

Il sistema di riferimento delle coordinate della mappa corrente

map_crs_acronym

L’acronimo del sistema di riferimento delle coordinate della mappa corrente

map_crs_definition

La definizione completa del sistema di riferimento delle coordinate della mappa corrente

map_crs_description

Il nome del sistema di riferimento delle coordinate della mappa corrente

map_crs_ellipsoid

L’acronimo dell’ellissoide del sistema di riferimento delle coordinate della mappa corrente

map_crs_proj4

La definizione Proj4 del sistema di riferimento delle coordinate della mappa corrente

map_crs_projection

Il nome descrittivo del metodo di proiezione usato dal sistema di riferimento delle coordinate della mappa (ad esempio “Albers Equal Area”)

map_crs_wkt

La definizione WKT del sistema di riferimento delle coordinate della mappa corrente

map_end_time

La fine dell’intervallo temporale della mappa (come valore datetime)

map_extent

La geometria che rappresenta l’estensione della mappa corrente

map_extent_center

Il punto al centro della mappa

map_extent_height

L’altezza della mappa corrente

map_extent_width

La larghezza della mappa corrente

map_id

L’ID della destinazione corrente della mappa. Questo sarà “canvas” per la rappresentazione sull’area grafica, e l’ID dell’oggetto per la rappresentazione della mappa nel layout

map_interval

La durata dell’intervallo temporale della mappa (come valore di intervallo)

map_layer_ids

L’elenco degli ID dei layer di mappa visibili nella mappa

map_layers

L’elenco dei layer della mappa visibili nella mappa

map_rotation

La rotazione corrente della mappa

map_scale

La scala corrente della mappa

map_start_time

L’inizio dell’intervallo temporale della mappa (come valore datetime)

map_units

Le unità di misura della mappa

model_path

Percorso completo (incluso il nome del file) del modello corrente (o percorso del progetto se il modello è incorporato in un progetto).

model_folder

Cartella contenente il modello corrente (o la cartella del progetto se il modello è incorporato in un progetto).

model_name

Nome del modello corrente

model_group

Gruppo per modello corrente

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

L’abstract del progetto, preso dai metadati del progetto

project_area_units

L’unità di area per il progetto corrente, usata quando si calcolano le aree delle geometrie

project_author

L’autore del progetto, preso dai metadati del progetto

project_basename

Il nome base del nome del file del progetto corrente (senza percorso ed estensione)

project_creation_date

La data di creazione del progetto, presa dai metadati del progetto

project_crs

Il sistema di riferimento delle coordinate del progetto

project_crs_arconym

L’acronimo del sistema di riferimento delle coordinate del progetto

project_crs_definition

La definizione completa del sistema di riferimento delle coordinate del progetto

project_crs_description

La descrizione del sistema di riferimento delle coordinate del progetto

project_crs_ellipsoid

L’ellissoide del sistema di riferimento delle coordinate del progetto

project_crs_proj4

La rappresentazione Proj4 del sistema di riferimento delle coordinate del progetto

project_crs_wkt

La rappresentazione WKT (well known text) del sistema di riferimento delle coordinate del progetto

project_distance_units

L’unità di distanza per il progetto corrente, usata quando si calcolano le lunghezze delle geometrie e le distanze

project_ellipsoid

Il nome dell’ellissoide del progetto corrente, usato quando si calcolano aree geodetiche o lunghezze di geometrie

project_filename

Il nome del file del progetto corrente

project_folder

La cartella del progetto corrente

project_home

Il percorso iniziale del progetto corrente

project_identifier

L’identificatore del progetto, preso dai metadati del progetto

project_keywords

Le parole chiave del progetto, prese dai metadati del progetto

project_last_saved

Data/ora dell’ultimo salvataggio del progetto.

project_path

Il percorso completo (incluso il nome del file) del progetto corrente

project_title

Il titolo del progetto corrente

project_units

Le unità SR del progetto

qgis_locale

Il linguaggio corrente di QGIS

qgis_os_name

Il nome del sistema operativo corrente, ad esempio “windows”, “linux” o “osx”.

qgis_platform

La piattaforma QGIS, ad esempio “desktop” o “server”.

qgis_release_name

Il nome della versione corrente di QGIS

qgis_short_version

La stringa breve della versione corrente di QGIS

qgis_version

La stringa della versione corrente di QGIS

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

Il valore corrente della distanza della barra della scala

selected_file_path

Percorso del file selezionato dal widget di selezione dei file quando si carica un file con un sistema di archiviazione esterno

symbol_angle

L’angolo del simbolo usato per rappresentare l’elemento (valido solo per i simboli di marcatori)

symbol_color

Il colore del simbolo usato per rappresentare l’elemento

symbol_count

Il numero di elementi rappresentati dal simbolo (nella legenda del layout)

symbol_id

L’ID interno del simbolo (nella legenda del layout)

symbol_label

L’etichetta per il simbolo (un’etichetta definita dall’utente o l’etichetta predefinita generata automaticamente - nella legenda del layout)

symbol_layer_count

Numero totale di livelli di simboli nel simbolo

symbol_layer_index

Indice del layer del simbolo corrente

symbol_marker_column

Numero di colonna per il simbolo (valido solo per i pattern puntiformi).

symbol_marker_row

Numero di riga per il simbolo (valido solo per i pattern puntiformii).

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

vector_tile_zoom

Livello esatto di zoom del tassello vettoriale della mappa che viene visualizzato (derivato dalla scala corrente della mappa). Normalmente nell’intervallo [0, 20]. A differenza di @zoom_level, questa variabile è un valore in virgola mobile che può essere usato per interpolare valori tra due livelli di zoom interi.

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 vettoriali della mappa in fase di visualizzazione (derivato dalla scala corrente 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'
      )
    )
    

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