14.3. Lista delle funzioni

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

14.3.1. Funzioni di Aggregazione

Questo gruppo contiene funzioni che aggregano valori su layer e campi

14.3.1.1. aggregate

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

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

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

    • count

    • count_distinct

    • count_missing

    • min

    • max

    • sum

    • mean

    • median

    • stdev

    • stdevsample

    • range

    • minority

    • majority

    • q1: primo quartile

    • q3: terzo quartile

    • iqr: intervallo interquartile

    • min_length: lunghezza minima stringa

    • max_length: lunghezza massima stringa

    • concatenate: unisce stringhe tramite un concatenamento

    • concatenate_unique: unisce stringhe univoche tramite un concatenamento

    • collect: crea una geometria multi parte aggregata

    • array_agg: crea un array di valori aggregati

  • expression - sub espressione o nome del campo da aggregare

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

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

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

Esempi

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

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

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

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

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

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

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

14.3.1.2. array_agg

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

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

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

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

Esempi

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

14.3.1.3. collect

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • espression - espressione geometrica di aggregazione

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

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

Esempi

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

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

14.3.1.4. concatenate

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

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

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

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

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

Esempi

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

14.3.1.5. concatenate_unique

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

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

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

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

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

Esempi

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

14.3.1.6. count

Restituisce il conteggio gli elementi che coincidono.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

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

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

Esempi

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

14.3.1.7. count_distinct

Restituisce il numero di valori distinti.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

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

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

Esempi

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

14.3.1.8. count_missing

Restituisce il numero di valori nulli (NULL).

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

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

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

Esempi

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

14.3.1.9. iqr

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

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

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

Esempi

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

14.3.1.10. majority

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

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

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

Esempi

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

14.3.1.11. max_length

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

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

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

Esempi

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

14.3.1.12. maximum

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

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

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

Esempi

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

14.3.1.13. mean

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

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

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

Esempi

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

14.3.1.14. median

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

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

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

Esempi

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

14.3.1.15. min_length

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

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

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

Esempi

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

14.3.1.16. minimum

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

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

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

Esempi

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

14.3.1.17. minority

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

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

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

Esempi

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

14.3.1.18. q1

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

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

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

Esempi

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

14.3.1.19. q3

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

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

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

Esempi

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

14.3.1.20. range

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

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

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

Esempi

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

14.3.1.21. relation_aggregate

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

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

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

    • count

    • count_distinct

    • count_missing

    • min

    • max

    • sum

    • mean

    • median

    • stdev

    • stdevsample

    • range

    • minority

    • majority

    • q1: primo quartile

    • q3: terzo quartile

    • iqr: intervallo interquartile

    • min_length: lunghezza minima stringa

    • max_length: lunghezza massima stringa

    • concatenate: unisce stringhe tramite un concatenamento

    • concatenate_unique: unisce stringhe univoche tramite un concatenamento

    • collect: crea una geometria multi parte aggregata

    • array_agg: crea un array di valori aggregati

  • expression - sub espressione o nome del campo da aggregare

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

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

Esempi

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

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

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

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

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

14.3.1.22. stdev

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

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

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

Esempi

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

14.3.1.23. sum

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • expression - sub espressione o campo da aggregare

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

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

Esempi

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

14.3.2. Funzioni Array

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

14.3.2.1. array

Restituisce un array contenente tutti i valori passati come parametro.

Sintassi

array(value1, value2, …)

Argomenti

  • value - un valore

Esempi

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

14.3.2.2. array_all

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

Sintassi

array_all(array_a, array_b)

Argomenti

  • array_a - un array

  • array_b - l’array di valori da cercare

Esempi

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

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

14.3.2.3. array_append

Restituisce un array con il valore dato aggiunto alla fine.

Sintassi

array_append(array, value)

Argomenti

  • array - un array

  • value - il valore da aggiungere

Esempi

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

14.3.2.4. array_cat

Restituisce un array contenente tutti gli array dati concatenati.

Sintassi

array_cat(array1, array2, …)

Argomenti

  • array - un array

Esempi

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

14.3.2.5. array_contains

Restituisce vero se un array contiene il valore dato.

Sintassi

array_contains(array, value)

Argomenti

  • array - un array

  • value - il valore da cercare

Esempi

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

14.3.2.6. array_distinct

Restituisce un array contenente valori distinti dell’array dato.

Sintassi

array_distinct(array)

Argomenti

  • array - un array

Esempi

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

14.3.2.7. array_filter

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

Sintassi

array_filter(array, expression)

Argomenti

  • array - un array

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

Esempi

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

14.3.2.8. array_find

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

Sintassi

array_find(array, value)

Argomenti

  • array - un array

  • value - il valore da cercare

Esempi

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

14.3.2.9. array_first

Restituisce il primo valore di un array.

Sintassi

array_first(array)

Argomenti

  • array - un array

Esempi

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

14.3.2.10. array_foreach

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

Sintassi

array_foreach(array, expression)

Argomenti

  • array - un array

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

Esempi

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

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

14.3.2.11. array_get

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

Sintassi

array_get(array, index)

Argomenti

  • array - un array

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

Esempi

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

14.3.2.12. array_insert

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

Sintassi

array_insert(array, pos, value)

Argomenti

  • array - un array

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

  • value - il valore da aggiungere

Esempi

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

14.3.2.13. array_intersect

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

Sintassi

array_intersect(array1, array2)

Argomenti

  • array1 - un array

  • array2 - un altro array

Esempi

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

14.3.2.14. array_last

Restituisce l’ultimo valore di un array.

Sintassi

array_last(array)

Argomenti

  • array - un array

Esempi

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

14.3.2.15. array_length

Restituisce il numero di elementi di un array.

Sintassi

array_length(array)

Argomenti

  • array - un array

Esempi

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

14.3.2.16. array_prepend

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

Sintassi

array_prepend(array, value)

Argomenti

  • array - un array

  • value - il valore da aggiungere

Esempi

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

14.3.2.17. array_remove_all

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

Sintassi

array_remove_all(array, value)

Argomenti

  • array - un array

  • value - i valori da rimuovere

Esempi

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

14.3.2.18. array_remove_at

Restituisce un array con l’indice dato rimosso.

Sintassi

array_remove_at(array, pos)

Argomenti

  • array - un array

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

Esempi

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

14.3.2.19. array_reverse

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

Sintassi

array_reverse(array)

Argomenti

  • array - un array

Esempi

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

14.3.2.20. array_slice

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

Sintassi

array_slice(array, start_pos, end_pos)

Argomenti

  • array - un array

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

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

Esempi

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

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

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

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

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

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

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

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

14.3.2.21. array_sort

Restituisce l’array dato con i suoi elementi ordinati.

Sintassi

array_sort(array, [ascending=true])

[] indica argomenti facoltativi

Argomenti

  • array - un array

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

Esempi

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

14.3.2.22. array_to_string

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • array - l’array in ingresso

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

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

Esempi

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

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

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

14.3.2.23. generate_series

Crea un array contenente una sequenza di numeri.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • start - primo valore della sequenza

  • stop - valore che chiude la sequenza una volta completata

  • step - valore usato come incremento tra i valori

Esempi

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

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

14.3.2.24. regexp_matches

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

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

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

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

Esempi

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

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

14.3.2.25. string_to_array

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • string - la stringa in ingresso

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

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

Esempi

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

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

14.3.3. Funzioni colore

Questo gruppo contiene funzioni per la manipolazione dei colori.

14.3.3.1. color_cmyk

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

Sintassi

color_cmyk(cyan, magenta, yellow, black)

Argomenti

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

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

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

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

Esempi

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

14.3.3.2. color_cmyka

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

Sintassi

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

Argomenti

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

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

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

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

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

Esempi

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

14.3.3.3. color_grayscale_average

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

Sintassi

color_grayscale_average(color)

Argomenti

  • color - un colore in formato stringa

Esempi

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

14.3.3.4. color_hsl

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

Sintassi

color_hsl(hue, saturation, lightness)

Argomenti

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

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

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

Esempi

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

14.3.3.5. color_hsla

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

Sintassi

color_hsla(hue, saturation, lightness, alpha)

Argomenti

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

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

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

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

Esempi

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

14.3.3.6. color_hsv

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

Sintassi

color_hsv(hue, saturation, value)

Argomenti

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

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

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

Esempi

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

14.3.3.7. color_hsva

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

Sintassi

color_hsva(hue, saturation, value, alpha)

Argomenti

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

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

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

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

Esempi

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

14.3.3.8. color_mix_rgb

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

Sintassi

color_mix_rgb(color1, color2, ratio)

Argomenti

  • color1 - un colore in formato stringa

  • color2 - un colore in formato stringa

  • ratio - un rapporto

Esempi

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

14.3.3.9. color_part

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

Sintassi

color_part(color, component)

Argomenti

  • color - un colore in formato stringa

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

    • red: componente RGB rosso (0-255)

    • green: componente RGB verde (0-255)

    • blue: componente RGB blu (0-255)

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

    • hue: HSV tonalità (0-360)

    • saturation: saturazione HSV (0-100)

    • value: valore HSV (0-100)

    • hsl_hue: HSL HUE (0-360)

    • hsl_saturation: saturazione HSL (0-100)

    • lightness: HSL lluminosità (0-100)

    • cyan: componente ciano CMYK (0-100)

    • magenta: componente magenta CMYK (0-100)

    • yellow: componente giallo CMYK (0-100)

    • black: componente nero CMYK (0-100)

Esempi

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

14.3.3.10. color_rgb

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

Sintassi

color_rgb(red, green, blue)

Argomenti

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

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

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

Esempi

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

14.3.3.11. color_rgba

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

Sintassi

color_rgba(red, green, blue, alpha)

Argomenti

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

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

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

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

Esempi

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

14.3.3.12. create_ramp

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

Sintassi

create_ramp(map, [discrete=false])

[] indica argomenti facoltativi

Argomenti

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

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

Esempi

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

14.3.3.13. darker

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

Sintassi

darker(color, factor)

Argomenti

  • color - un colore in formato stringa

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

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

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

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

Esempi

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

Ulteriori informazioni: lighter

14.3.3.14. lighter

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

Sintassi

lighter(color, factor)

Argomenti

  • color - un colore in formato stringa

  • factor - un intero corrispondente al fattore di schiarimento:

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

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

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

Esempi

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

Ulteriori informazioni: darker

14.3.3.15. project_color

Restituisce un colore dallo schema di colori del progetto.

Sintassi

project_color(name)

Argomenti

  • name - il nome di un colore

Esempi

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

Ulteriori informazioni: setting project colors

14.3.3.16. ramp_color

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

Variabile rampa salvata

Restituisce una stringa che rappresenta un colore da una scala salvata

Sintassi

ramp_color(ramp_name, value)

Argomenti

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

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

14.3.4. Funzioni Condizionali

Questo gruppo contiene funzioni per eseguire controlli condizionali nelle espressioni.

14.3.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 condizione è 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

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

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

14.3.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 name è una stringa vuota (o già NULL), name in qualsiasi altro caso.

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

14.3.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 facoltativi

Argomenti

  • expression - l’espressione che dovrebbe essere eseguita

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

14.3.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, …).

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

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

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

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

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

14.3.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 per ulteriore documentazione sul formato.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • stringa - stringa che rappresenta un valore di data

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

  • language - lingua (minuscola, due o tre lettere, codice lingua ISO 639) usata per convertire la stringa in una data

Esempi

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

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

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

14.3.5.7. to_datetime

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

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

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

  • language - lingua (minuscola, due o tre lettere, codice lingua ISO 639) usata per convertire la stringa in un datetime

Esempi

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

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

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

14.3.5.8. to_decimal

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

14.3.5.9. to_dm

Converte una coordinata in gradi, minuti.

Sintassi

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

[] indica argomenti facoltativi

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

14.3.5.10. to_dms

Converte una coordinata in gradi, minuti e secondi.

Sintassi

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

[] indica argomenti facoltativi

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

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

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

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

14.3.5.14. to_string

Converte un numero in stringa.

Sintassi

to_string(number)

Argomenti

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

Esempi

  • to_string(123) → “123”

14.3.5.15. to_time

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 facoltativi

Argomenti

  • string - stringa che rappresenta un valore time

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

  • language - lingua (minuscola, 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

14.3.6. Funzioni personalizzate

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

14.3.7. Funzioni di data e ora

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)

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

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

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

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

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

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

14.3.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 facoltativi

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 “Mon” a “Sun”)

    dddd

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

    M

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

    MM

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

    MMM

    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 o A

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

    ap o a

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

  • language - lingua (minuscola, due o tre lettere, codice lingua ISO 639) usata per formattare la data in una stringa personalizzata

Esempi

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

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

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

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

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

14.3.7.7. hour

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

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

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

14.3.7.10. make_interval

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

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

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

  • weeks - Numero di settimane

  • days - Numero di giorni

  • hours - Numero di ore

  • minutes - Numero di minuti

  • seconds - Numero di secondi

Esempi

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

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

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

14.3.7.11. make_time

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

Sintassi

make_time(hour, minute, second)

Argomenti

  • hour - Ora

  • minute - Minuti

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

Esempi

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

14.3.7.12. minute

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

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

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

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

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

14.3.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 per ulteriore documentazione sul formato.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • stringa - stringa che rappresenta un valore di data

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

  • language - lingua (minuscola, due o tre lettere, codice lingua ISO 639) usata per convertire la stringa in una data

Esempi

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

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

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

14.3.7.17. to_datetime

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

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

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

  • language - lingua (minuscola, due o tre lettere, codice lingua ISO 639) usata per convertire la stringa in un datetime

Esempi

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

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

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

14.3.7.18. to_interval

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

14.3.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 facoltativi

Argomenti

  • string - stringa che rappresenta un valore time

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

  • language - lingua (minuscola, 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

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

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

14.3.8. Campi e Valori

Contiene la lista dei campi di un layer.

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

Per recuperare i valori dei campi da utilizzare in un’espressione, seleziona il campo appropriato e, nel widget mostrato, scegli tra 10 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.

14.3.9. Funzioni per i File e i Percorsi

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

14.3.9.1. base_file_name

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

Sintassi

base_file_name(path)

Argomenti

  • path - un persorso di un file

Esempi

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

14.3.9.2. file_exists

Restituisce true se un percorso di file esiste.

Sintassi

file_exists(path)

Argomenti

  • path - un persorso di un file

Esempi

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

14.3.9.3. file_name

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

Sintassi

file_name(path)

Argomenti

  • path - un persorso di un file

Esempi

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

14.3.9.4. file_path

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

Sintassi

file_path(path)

Argomenti

  • path - un persorso di un file

Esempi

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

14.3.9.5. file_size

Restituisce la dimensione (in byte) di un file.

Sintassi

file_size(path)

Argomenti

  • path - un persorso di un file

Esempi

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

14.3.9.6. file_suffix

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

Sintassi

file_suffix(path)

Argomenti

  • path - un persorso di un file

Esempi

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

14.3.9.7. is_directory

Restituisce true se un percorso corrisponde a una cartella.

Sintassi

is_directory(path)

Argomenti

  • path - un persorso di un file

Esempi

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

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

14.3.9.8. is_file

Restituisce true se un percorso corrisponde a un file.

Sintassi

is_file(path)

Argomenti

  • path - un persorso di un file

Esempi

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

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

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

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

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

14.3.11. Funzioni varie di confronto

Questo gruppo contiene funzioni per confronti vari tra valori.

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

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

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

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

14.3.12. Funzioni Generali

Questo gruppo contiene funzioni generali assortite.

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

14.3.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) → [whatever the result of evaluating @expression_var might be…]

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

14.3.12.4. is_layer_visible

Restituisce true se il layer specificato è visibile.

Sintassi

is_layer_visible(layer)

Argomenti

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

Esempi

  • is_layer_visible('baseraster') → True

14.3.12.5. layer_property

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

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

Ulteriori informazioni: vector, raster e mesh proprietà layer

14.3.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: List of default variables

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

14.3.13. Funzioni Geometria

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

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

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

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

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

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

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

Ulteriori informazioni: Perimetri di delimitazione algoritmo

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

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

14.3.13.9. 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])

[] indica argomenti facoltativi

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.

Esempi

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

Ulteriori informazioni: Buffer algoritmo

14.3.13.10. 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 facoltativi

Argomenti

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

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

14.3.13.11. centroid

Restituisce il centro geometrico di una geometria.

Sintassi

centroid(geometry)

Argomenti

  • geometry - una geometria

Esempi

  • centroid($geometry) → un punto

Ulteriori informazioni: Centroidi algoritmo

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

14.3.13.13. closest_point

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

Sintassi

closest_point(geometry1, geometry2)

Argomenti

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

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

Esempi

  • geom_to_wkt(closest_point(geom_from_wkt('LINESTRING (20 80, 98 190, 110 180, 50 75 )'),geom_from_wkt('POINT(100 100)'))) → “Point(73.0769 115.384)”

14.3.13.14. collect_geometries

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

14.3.13.15. combine

Restituisce la combinazione di due geometrie.

Sintassi

combine(geometry1, geometry2)

Argomenti

  • geometry1 - una geometria

  • geometry2 - una geometria

Esempi

  • geom_to_wkt( combine( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 2 1)' ) ) ) → “MULTILINESTRING((4 4, 2 1), (3 3, 4 4), (4 4, 5 5))”

  • geom_to_wkt( combine( geom_from_wkt( 'LINESTRING(3 3, 4 4)' ), geom_from_wkt( 'LINESTRING(3 3, 6 6, 2 1)' ) ) ) → “LINESTRING(3 3, 4 4, 6 6, 2 1)”

14.3.13.16. contains

Verifica se una geometria ne contiene un’altra. Restituisce vero se e solo se nessun punto della geometria2 giace nell’esterno della geometria1, e almeno un punto dell’interno della geometria2 giace nell’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

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

Ulteriori informazioni: Poligono convesso algoritmo

14.3.13.18. crosses

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

Sintassi

crosses(geometry1, geometry2)

Argomenti

  • geometry1 - una geometria

  • geometry2 - una geometria

Esempi

  • crosses( geom_from_wkt( 'LINESTRING(3 5, 4 4, 5 3)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → true

  • crosses( geom_from_wkt( 'POINT(4 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → false

Ulteriore lettura: overlay_crosses

14.3.13.19. difference

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

Sintassi

difference(geometry1, geometry2)

Argomenti

  • geometry1 - una geometria

  • geometry2 - una geometria

Esempi

  • geom_to_wkt( difference( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4)' ) ) ) → “LINESTRING(4 4, 5 5)”

Ulteriori informazioni: Differenza algoritmo

14.3.13.20. disjoint

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

Sintassi

disjoint(geometry1, geometry2)

Argomenti

  • geometry1 - una geometria

  • geometry2 - una geometria

Esempi

  • disjoint( geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0 ))' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → true

  • disjoint( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'POINT(4 4)' )) → false

Ulteriori informazioni: overlay_disjoint

14.3.13.21. distance

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

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

14.3.13.23. 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: Estrazione vertici specifici algoritmo

14.3.13.24. 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: Prolungare linee algoritmo

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

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

  • geometry - una geometria poligonale

  • x - estensione x, valore numerico

  • y - estensione y, valore numerico

Esempi

  • geom_to_wkt(extrude(geom_from_wkt('LineString(1 2, 3 2, 4 3)'), 1, 2)) → “Polygon ((1 2, 3 2, 4 3, 5 5, 4 4, 2 4, 1 2))”

  • geom_to_wkt(extrude(geom_from_wkt('MultiLineString((1 2, 3 2), (4 3, 8 3))'), 1, 2)) → “MultiPolygon (((1 2, 3 2, 4 4, 2 4, 1 2)),((4 3, 8 3, 9 5, 5 5, 4 3)))”

14.3.13.27. flip_coordinates

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

Ulteriori informazioni: Scambiare le coordinate X e Y algoritmo

14.3.13.28. force_rhr

Forza una geometria a rispettare la Regola-Mano-Destra, in cui l’area che è delimitata da un poligono è a destra del confine. In particolare, l’anello esterno è orientato in senso orario e gli anelli interni in senso antiorario.

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

Ulteriori informazioni: Forzare la regola della mano destra algoritmo

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

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

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

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

14.3.13.33. geom_to_wkt

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

Sintassi

geom_to_wkt(geometry, [precision=8])

[] indica argomenti facoltativi

Argomenti

  • geometry - una geometria

  • precision - precisione numerica

Esempi

  • geom_to_wkt( make_point(6, 50) ) → “POINT(6 50)”

  • geom_to_wkt(centroid(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))'))) → “POINT(0 0.66666667)”

  • geom_to_wkt(centroid(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))')), 2) → “POINT(0 0.67)”

14.3.13.34. $geometry

Restituisce la geometria dell’elemento corrente. Può essere usato nel processing con altre funzioni.

Sintassi

$geometry

Esempi

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

14.3.13.35. geometry

Restituisce la geometria di un elemento

Sintassi

geometry(feature)

Argomenti

  • feature - un elemento

Esempi

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

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

14.3.13.36. geometry_n

Restituisce una geometria specifica da una geometry collection, o NULL se la geometria in ingresso non è geometry collection.

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

14.3.13.37. 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 facoltativi

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

14.3.13.38. inclination

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

Sintassi

inclination(point_a, point_b)

Argomenti

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

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

14.3.13.40. intersection

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

Sintassi

intersection(geometry1, geometry2)

Argomenti

  • geometry1 - una geometria

  • geometry2 - una geometria

Esempi

  • geom_to_wkt( intersection( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4)' ) ) ) → “LINESTRING(3 3, 4 4)”

  • geom_to_wkt( intersection( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'MULTIPOINT(3.5 3.5, 4 5)' ) ) ) → “POINT(3.5 3.5)”

Ulteriori informazioni: Intersezione algoritmo

14.3.13.41. intersects

Verifica se una geometria ne interseca un’altra. Restituisce true se le geometrie si intersecano spazialmente (condividono qualsiasi porzione di spazio) e false se non lo fanno.

Sintassi

intersects(geometry1, geometry2)

Argomenti

  • geometry1 - una geometria

  • geometry2 - una geometria

Esempi

  • intersects( geom_from_wkt( 'POINT(4 4)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → true

  • intersects( geom_from_wkt( 'POINT(4 5)' ), geom_from_wkt( 'POINT(5 5)' ) ) → false

Ulteriori informazioni: overlay_intersects

14.3.13.42. intersects_bbox

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 bounding box definito e false se non lo fanno.

Sintassi

intersects_bbox(geometry1, geometry2)

Argomenti

  • geometry1 - una geometria

  • geometry2 - una geometria

Esempi

  • intersects_bbox( geom_from_wkt( 'POINT(4 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → true

  • intersects_bbox( geom_from_wkt( 'POINT(6 5)' ), geom_from_wkt( 'POLYGON((3 3, 4 4, 5 5, 3 3))' ) ) → false

14.3.13.43. is_closed

Restituisce true se una stringa di linea è chiusa (i punti di inizio e fine sono coincidenti), o false se una stringa di linea non è chiusa. Se la geometria non è una stringa di linea, 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

14.3.13.44. is_empty

Restituisce true se una geometria è vuota (senza coordinate), false se la geometria non è vuota e NULL se non c’è nessuna geometria. Vedi 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

14.3.13.45. is_empty_or_null

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

Sintassi

is_empty_or_null(geometry)

Argomenti

  • geometry - una geometria

Esempi

  • is_empty_or_null(NULL) → true

  • is_empty_or_null(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)')) → false

  • is_empty_or_null(geom_from_wkt('LINESTRING EMPTY')) → true

  • is_empty_or_null(geom_from_wkt('POINT(7 4)')) → false

  • is_empty_or_null(geom_from_wkt('POINT EMPTY')) → true

14.3.13.46. is_multipart

Restituisce true se la geometria è di tipo Parti multiple.

Sintassi

is_multipart(geometry)

Argomenti

  • geometry - una geometria

Esempi

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

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

14.3.13.47. is_valid

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

Sintassi

is_valid(geometry)

Argomenti

  • geometry - una geometria

Esempi

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

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

14.3.13.48. $length

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

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

14.3.13.50. line_interpolate_angle

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

Sintassi

line_interpolate_angle(geometry, distance)

Argomenti

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

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

Ulteriori informazioni: Interpolare punto su linea algoritmo

14.3.13.52. line_locate_point

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

Sintassi

line_locate_point(geometry, point)

Argomenti

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

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

14.3.13.54. 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: Sottostringa lineare algoritmo

14.3.13.55. m

Restituisce il valore m di una geometria di punti.

Sintassi

m(geometry)

Argomenti

  • geometry - una geometria di punti

Esempi

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

14.3.13.56. m_max

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

Sintassi

m_max(geometry)

Argomenti

  • geometry - una geometria contenente m valori

Esempi

  • m_max( make_point_m( 0,0,1 ) ) → 1

  • m_max(make_line( make_point_m( 0,0,1 ), make_point_m( -1,-1,2 ), make_point_m( -2,-2,0 ) ) ) → 2

14.3.13.57. m_min

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

Sintassi

m_min(geometry)

Argomenti

  • geometry - una geometria contenente m valori

Esempi

  • m_min( make_point_m( 0,0,1 ) ) → 1

  • m_min(make_line( make_point_m( 0,0,1 ), make_point_m( -1,-1,2 ), make_point_m( -2,-2,0 ) ) ) → 0

14.3.13.58. main_angle

Restituisce l’angolo principale di una geometria (in senso orario, in gradi dal Nord), che rappresenta l’angolo 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

14.3.13.59. make_circle

Crea un poligono circolare.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • center - punto centrale del cerchio

  • radius - raggio del cerchio

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

Esempi

  • geom_to_wkt(make_circle(make_point(10,10), 5, 4)) → “Polygon ((10 15, 15 10, 10 5, 5 10, 10 15))”

  • geom_to_wkt(make_circle(make_point(10,10,5), 5, 4)) → “PolygonZ ((10 15 5, 15 10 5, 10 5 5, 5 10 5, 10 15 5))”

  • geom_to_wkt(make_circle(make_point(10,10,5,30), 5, 4)) → “PolygonZM ((10 15 5 30, 15 10 5 30, 10 5 5 30, 5 10 5 30, 10 15 5 30))”

14.3.13.60. make_ellipse

Crea un poligono ellittico.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

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

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

14.3.13.62. 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 facoltativi

Argomenti

  • x - coordinata x di un punto

  • y - coordinata y di un punto

  • z - coordinata opzionale z di un punto

  • m - valore opzionale m di un punto

Esempi

  • geom_to_wkt(make_point(2,4)) → “Point (2 4)”

  • geom_to_wkt(make_point(2,4,6)) → “PointZ (2 4 6)”

  • geom_to_wkt(make_point(2,4,6,8)) → “PointZM (2 4 6 8)”

14.3.13.63. make_point_m

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

14.3.13.64. 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 facoltativi

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

14.3.13.65. make_rectangle_3points

Crea un rettangolo da 3 punti.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • point1 - Primo punto.

  • point2 - Secondo punto.

  • point3 - Terzo punto.

  • option - 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(make_point(0, 0), make_point(0,5), make_point(5, 5), 0))) → “Polygon ((0 0, 0 5, 5 5, 5 0, 0 0))”

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

14.3.13.66. make_regular_polygon

Crea un poligono regolare.

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • center - centro del poligono regolare

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

14.3.13.67. make_square

Crea un quadrato da una diagonale.

Sintassi

make_square(point1, point2)

Argomenti

  • point1 - Punto iniziale della diagonale

  • point2 - Punto finale della diagonale

Esempi

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

  • geom_to_wkt(make_square( make_point(5,0), make_point(5,5))) → “Polygon ((5 0, 2.5 2.5, 5 5, 7.5 2.5, 5 0))”

14.3.13.68. make_triangle

Crea un poligono triangolare.

Sintassi

make_triangle(point1, point2, point3)

Argomenti

  • point1 - primo punto del triangolo

  • point2 - secondo punto del triangolo

  • point3 - terzo punto del triangolo

Esempi

  • geom_to_wkt(make_triangle(make_point(0,0), make_point(5,5), make_point(0,10))) → “Triangle ((0 0, 5 5, 0 10, 0 0))”

  • geom_to_wkt(boundary(make_triangle(make_point(0,0), make_point(5,5), make_point(0,10)))) → “LineString (0 0, 5 5, 0 10, 0 0)”

14.3.13.69. minimal_circle

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 facoltativi

Argomenti

  • geometry - una geometria

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

Esempi

  • geom_to_wkt( minimal_circle( geom_from_wkt( 'LINESTRING(0 5, 0 -5, 2 1)' ), 4 ) ) → “Polygon ((0 5, 5 -0, -0 -5, -5 0, 0 5))”

  • geom_to_wkt( minimal_circle( geom_from_wkt( 'MULTIPOINT(1 2, 3 4, 3 2)' ), 4 ) ) → “Polygon ((3 4, 3 2, 1 2, 1 4, 3 4))”

Ulteriori informazioni: Cerchio minimo circoscritto algoritmo

14.3.13.70. 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 facoltativi

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: Estrazione vertici algoritmo

14.3.13.71. num_geometries

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

Sintassi

num_geometries(geometry)

Argomenti

  • geometry - geometry collection

Esempi

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

14.3.13.72. num_interior_rings

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

14.3.13.73. num_points

Restituisce il numero di vertici di una geometria.

Sintassi

num_points(geometry)

Argomenti

  • geometry - una geometria

Esempi

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

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

14.3.13.75. 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 facoltativi

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($geometry, 10.5, segments=16, join=1) → linea spostata a sinistra di 10.5 unità, usando più segmenti per ottenere una curva più regolare

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

Ulteriori informazioni: Linee di offset algoritmo

14.3.13.76. order_parts

Ordina le parti di una MultiGeometry secondo un determinato criterio

Sintassi

order_parts(geometry, orderby, ascending)

Argomenti

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

14.3.13.77. oriented_bbox

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

Sintassi

oriented_bbox(geometry)

Argomenti

  • geometry - una geometria

Esempi

  • geom_to_wkt( oriented_bbox( geom_from_wkt( 'MULTIPOINT(1 2, 3 4, 3 2)' ) ) ) → “Polygon ((3 2, 3 4, 1 4, 1 2, 3 2))”

Ulteriori informazioni: Perimetro di delimitazione minimo orientato algoritmo

14.3.13.78. overlaps

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

Sintassi

overlaps(geometry1, geometry2)

Argomenti

  • geometry1 - una geometria

  • geometry2 - una geometria

Esempi

  • overlaps( geom_from_wkt( 'LINESTRING(3 5, 4 4, 5 5, 5 3)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → true

  • overlaps( geom_from_wkt( 'LINESTRING(0 0, 1 1)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → false

14.3.13.79. overlay_contains

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

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

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

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

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

  • limit - 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 maggiore di 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_length(overlay_contains('regions', name)) → il numero di regioni contenute nell’elemento corrente

  • array_sort(overlay_contains(layer:='regions', expression:="name", filter:= population > 10000)) → un array ordinato di nomi, per le regioni contenute nell’elemento corrente e con una popolazione 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: contains, array manipulation, Seleziona per posizione algoritmo

14.3.13.80. 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 facoltativi

Argomenti

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

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

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

  • limit - 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 attraversa spazialmente una regione

  • overlay_crosses('regions', filter:= population > 10000) → true se l’elemento corrente attraversa spazialmente una regione con una popolazione maggiore di 10000

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

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

  • array_sort(overlay_crosses(layer:='regions', expression:="name", filter:= population > 10000)) → un array ordinato di nomi, per le regioni attraversate dall’elemento corrente e con una popolazione 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: crosses, array manipulation, Seleziona per posizione algoritmo

14.3.13.81. overlay_disjoint

Restituisce se l’elemento corrente è spazialmente disgiunta 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 facoltativi

Argomenti

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

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

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

  • limit - 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 disgiunta da tutte le regioni

  • overlay_disjoint('regions', filter:= population > 10000) → true se l’elemento corrente è spazialmente disgiunta da tutte le regioni con una popolazione maggiore di 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 nomi, per le regioni spazialmente disgiunte dall’elemento corrente e con una popolazione 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: disjoint, array manipulation, Seleziona per posizione algoritmo

14.3.13.82. 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 facoltativi

Argomenti

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

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

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

  • limit - 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 maggiore di 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 nomi, per le regioni spazialmente uguali all’elemento corrente e con una popolazione 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: array manipulation, Seleziona per posizione algoritmo

14.3.13.83. 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])

[] indica argomenti facoltativi

Argomenti

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

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

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

  • limit - 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_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 maggiore di 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 nomi, per le regioni intersecate dall’elemento corrente e con una popolazione 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

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

14.3.13.84. overlay_nearest

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

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

Sintassi

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

[] indica argomenti facoltativi

Argomenti

  • layer - il layer di destinazione

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

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

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

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

  • cache - 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à di mappa dall” elemento corrente

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

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

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

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

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

Ulteriori informazioni: array manipulation, Unire gli attributi per il più vicino algoritmo

14.3.13.85. overlay_touches

Restituisce se la caratteristica 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 facoltativi

Argomenti

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

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

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

  • limit - 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 maggiore di 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 nomi, per le regioni toccate dall’elemento corrente e con una popolazione 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: touches, array manipulation, Seleziona per posizione algoritmo

14.3.13.86. 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 facoltativi

Argomenti

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

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

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

  • limit - 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 dentro una regione

  • overlay_within('regions', filter:= population > 10000) → true se l’elemento corrente è spazialmente dentro una regione con una popolazione maggiore di 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 nomi, per le regioni contenenti l’elemento corrente e con una popolazione 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: within, array manipulation, Seleziona per posizione algoritmo

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

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

14.3.13.89. 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: Estrazione vertici specifici algoritmo

14.3.13.90. 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: Punto su Superficie algoritmo

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

14.3.13.92. 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 facoltativi

Argomenti

  • punto - punto iniziale

  • distanza - 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: Proiettare punti (cartesiano) algoritmo

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

14.3.13.94. reverse

Inverte la direzione di una linea invertendo l’ordine dei suoi vertici.

Sintassi

reverse(geometry)

Argomenti

  • geometry - una geometria

Esempi

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

Ulteriori informazioni: Invertire la direzione della linea algoritmo

14.3.13.95. rotate

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

Sintassi

rotate(geometry, rotation, [center])

[] indica argomenti facoltativi

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.

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

14.3.13.96. 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: Esplodere linee algoritmo

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

14.3.13.98. simplify

Semplifica una geometria rimuovendo i nodi usando una soglia basata sulla distanza (per esempio l’algoritmo di Douglas Peucker). L’algoritmo preserva le grandi deviazioni nelle geometrie e riduce il numero di vertici in segmenti quasi rettilinei.

Sintassi

simplify(geometry, tolerance)

Argomenti

  • geometry - una geometria

  • 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: Semplificazione algoritmo

14.3.13.99. 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: Semplificazione algoritmo

14.3.13.100. 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 facoltativi

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à, usando più segmenti per ottenere un buffer più uniforme

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

Ulteriori informazioni: Buffer su un solo lato algoritmo

14.3.13.101. 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 facoltativi

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

14.3.13.102. start_point

Restituisce il primo nodo di una geometria.

Sintassi

start_point(geometry)

Argomenti

  • geometry - elemento geometria

Esempi

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

Ulteriori informazioni: Estrazione vertici specifici algoritmo

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

14.3.13.104. 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 facoltativi

Argomenti

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

Ulteriori informazioni: Buffer arrotondati algoritmo

14.3.13.105. touches

Verifica se una geometria tocca un’altra. Restituisce true se le geometrie hanno almeno un punto in comune, ma i loro interni non si intersecano.

Sintassi

touches(geometry1, geometry2)

Argomenti

  • geometry1 - una geometria

  • geometry2 - una geometria

Esempi

  • touches( geom_from_wkt( 'LINESTRING(5 3, 4 4)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → true

  • touches( geom_from_wkt( 'POINT(4 4)' ), geom_from_wkt( 'POINT(5 5)' ) ) → false

Ulteriori informazioni: overlay_touches

14.3.13.106. transform

Restituisce la geometria trasformata da un SR di origine a un SR di destinazione.

Sintassi

transform(geometry, source_auth_id, dest_auth_id)

Argomenti

  • geometry - una geometria

  • source_auth_id - l’ID del SR d’origine

  • dest_auth_id - l’ID del SR di destinazione

Esempi

  • geom_to_wkt( transform( make_point(488995.53240249, 7104473.38600835), 'EPSG:2154', 'EPSG:4326' ) ) → “POINT(0 51)”

Ulteriori informazioni: Layer riproiettato algoritmo

14.3.13.107. translate

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

Sintassi

translate(geometry, dx, dy)

Argomenti

  • geometry - una geometria

  • dx - delta x

  • dy - delta y

Esempi

  • translate($geometry, 5, 10) → una geometria dello stesso tipo di quella originale

Ulteriori informazioni: Trasla algoritmo

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

14.3.13.109. 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 facoltativi

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: Creare buffer a cuneo algoritmo

14.3.13.110. within

Verifica se una geometria è all’interno di un’altra. Restituisce true se la geometria1 è completamente dentro la 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

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

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

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

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

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

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

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

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

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

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

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

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

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

14.3.14. Funzioni per il Layout

Questo gruppo contiene funzioni per manipolare le proprietà degli oggetti del layout di stampa.

14.3.14.1. item_variables

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: List of default variables

14.3.15. Layer della Mappa

Questo gruppo contiene un elenco dei layer disponibili nel progetto corrente. Questo offre un modo conveniente per scrivere espressioni che si riferiscono a layer multipli, come quando si eseguono query aggrega, attributo o spaziale.

Fornisce anche alcune comode funzioni per manipolare i layer.

14.3.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 facoltativi

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”

14.3.16. Funzioni mappa

Questo gruppo contiene funzioni per creare o manipolare chiavi e valori di strutture di dati cartografici (noti anche come oggetti dizionario, coppie chiave-valore o array associativi). A differenza di :ref:`list data structure ` dove l’ordine dei valori è importante, l’ordine delle coppie chiave-valore nell’oggetto mappa non è rilevante e i valori sono identificati dalle loro chiavi.

14.3.16.1. from_json

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]

14.3.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” }

14.3.16.3. json_to_map

Crea una mappa da una stringa formattata in json.

Sintassi

json_to_map(string)

Argomenti

  • string - la stringa in ingresso

Esempi

  • json_to_map('{"qgis":"rocks"}') → { “qgis”: “rocks” }

14.3.16.4. 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” }

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

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

14.3.16.7. map_concat

Restituisce una mappa con tutte le entità delle mappe fornite. Se due mappe contengono la stessa chiave, viene restituito il valore della seconda mappa.

Sintassi

map_concat(map1, map2, …)

Argomenti

  • map - una mappa

Esempi

  • map_concat(map('1','one', '2','overridden'),map('2','two', '3','three')) → { “1”: “one”, “2”: “two”, “3”: “three” }

14.3.16.8. map_delete

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

14.3.16.9. map_exist

Restituisce true se la chiave data 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

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

14.3.16.11. 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” }

14.3.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»”

14.3.16.13. map_to_json

Fondere gli elementi della mappa in una stringa formattata json.

Sintassi

map_to_json(map)

Argomenti

  • map - la mappa in ingresso

Esempi

  • map_to_json(map('qgis','rocks')) → {«qgis»:»rocks»}

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

14.3.17. Funzioni Matematiche

Questo gruppo contiene funzioni matematiche (ad es. Radice quadrata, seno e coseno).

14.3.17.1. abs

Restituisce il valore assoluto di un numero.

Sintassi

abs(value)

Argomenti

  • value - un numero

Esempi

  • abs(-2) → 2

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

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

14.3.17.4. atan

Restituisce l’inverso dalla tangente di un valore in radianti.

Sintassi

atan(value)

Argomenti

  • value - tan di un angolo in radianti

Esempi

  • atan(0.5) → 0.463647609000806

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

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

14.3.17.7. ceil

Arrotonda un numero per eccesso

Sintassi

ceil(value)

Argomenti

  • value - un numero

Esempi

  • ceil(4.9) → 5

  • ceil(-4.9) → -4

14.3.17.8. clamp

Limita un valore in ingresso in un intervallo specificato.

Sintassi

clamp(minimum, input, maximum)

Argomenti

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

14.3.17.9. cos

Restituisce il coseno di un angolo.

Sintassi

cos(angle)

Argomenti

  • angle - angolo in radianti

Esempi

  • cos(1.571) → 0.000796326710733263

14.3.17.10. degrees

Converte da radianti a gradi.

Sintassi

degrees(radians)

Argomenti

  • radians - valore numerico

Esempi

  • degrees(3.14159) → 180

  • degrees(1) → 57.2958

14.3.17.11. exp

Restituisce l’esponenziale di un valore.

Sintassi

exp(value)

Argomenti

  • value - numero di cui restituire l’esponente

Esempi

  • exp(1.0) → 2.71828182845905

14.3.17.12. floor

Arrotonda un numero per difetto.

Sintassi

floor(value)

Argomenti

  • value - un numero

Esempi

  • floor(4.9) → 4

  • floor(-4.9) → -5

14.3.17.13. inclination

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

Sintassi

inclination(point_a, point_b)

Argomenti

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

14.3.17.14. ln

Restituisce il logaritmo naturale di un valore.

Sintassi

ln(value)

Argomenti

  • value - valore numerico

Esempi

  • ln(1) → 0

  • ln(2.7182818284590452354) → 1

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

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

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

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

14.3.17.19. pi

Restituisce il valore di pi greco per i calcoli.

Sintassi

pi()

Esempi

  • pi() → 3.14159265358979

14.3.17.20. radians

Converte da gradi a radianti

Sintassi

radians(degrees)

Argomenti

  • degrees - valore numerico

Esempi

  • radians(180) → 3.14159

  • radians(57.2958) → 1

14.3.17.21. rand

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 facoltativi

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

14.3.17.22. 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 facoltativi

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

14.3.17.23. round

Arrotonda un numero al numero di cifre decimali.

Sintassi

round(value, [places=0])

[] indica argomenti facoltativi

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

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

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

14.3.17.25. 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 popolazione che varia tra 1000 e 10000 a una dimensione di carattere tra 9 e 20

14.3.17.26. sin

Restituisce il seno di un angolo.

Sintassi

sin(angle)

Argomenti

  • angle - angolo in radianti

Esempi

  • sin(1.571) → 0.999999682931835

14.3.17.27. sqrt

Restituisce la radice quadrata di un valore.

Sintassi

sqrt(value)

Argomenti

  • value - un numero

Esempi

  • sqrt(9) → 3

14.3.17.28. tan

Restituisce la tangente di un angolo.

Sintassi

tan(angle)

Argomenti

  • angle - angolo in radianti

Esempi

  • tan(1.0) → 1.5574077246549

14.3.18. Operatori

Questo gruppo contiene operatori (e.g., +, -, *). Si noti che per la maggior parte delle funzioni matematiche di seguito se uno dei input è NULL il risultato è NULL.

Funzioni

Descrizione

a + b

Somma di due valori (a più b)

a - b

Sottrazione tra due valori (a meno b).

a * b

Moltiplicazione tra due valori (a moltiplicato per b)

a / b

Divisione tra due valori (a diviso per b)

a % b

Resto della divisione di a diviso b (ad esempio, 7 % 2 = 1 o 2 si entra nel 7 tre volte con il resto di 1)

a ^ b

Elevazione a potenza di due valori (ad esempio, 2^2=4 o 2^3=8)

a < b

Confronta due valori e restituisce 1 se il valore di sinistra è inferiore al valore di destra (a è minore di b)

a <= b

Confronta due valori e restiruisce 1 se il valore sinistro è minore o uguale al valore destro

a <> b

Confronta due valori e restituisce 1 se non sono uguali

a = b

Confronta due valori e restituisce 1 se sono uguali

a ! = b

a e b non sono uguali

a > b

Confronta due valori e restituisce 1 se il valore di sinistra è maggiore del valore di destra (a è maggiore di b)

a >= b

Confronta due valori e restituisce 1 se il valore di sinistra è maggiore o uguale al valore di destra

a ~ b

a corrisponde al valore assoluto di b

||

Unisce insieme due valori in una stringa. Se uno dei valori è NULL, il risultato sarà NULL

“\n”

Inserisce una nuova riga in una stringa

LIKE

Restituisce 1 se il primo parametro corrisponde al filtro scelto

ILIKE

Restituisce 1 se il primo parametro corrisponde senza distinzione tra maiuscole e minuscole al filtro scelto (ILIKE può essere usato al posto di LIKE per rendere la corrispondenza senza distinzione tra maiuscole e minuscole)

a IS b

Verifica se due valori sono identici. Restituisce 1 se a è uguale a b

a OR b

Restituisce 1 quando la condizione a o la condizione b è vera

a AND b

Restituisce 1 quando le condizioni a e b sono vere

NOT

Inverte una condizione

«Column_name»

Valore del campo Column_name, fare attenzione a non confondere con l’apice semplice, vedi sotto

“string”

valore stringa, fare attenzione a non confondere con gli apici doppi, vedi sopra

NULL

valore nullo

a IS NULL

a ha valore nullo

a IS NOT NULL

a contiene un valore

a IN (value[,value])

a ha valore contenuto nei valori in lista

a NOT IN (value[,value])

il valore di a non è tra i valori in lista

Alcuni esempi:

  • Unire una stringa e un valore da un nome di colonna:

    'My feature''s id is: ' || "gid"
    
  • Verifica se il campo dell’attributo «description» inizia con la stringa “Hello” nel valore (notare la posizione del carattere %):

    "description" LIKE 'Hello%'
    

14.3.19. Funzioni di Processing

Questo gruppo contiene funzioni che operano su algoritmi di processing.

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

14.3.20. Funzioni Raster

Questo gruppo contiene funzioni che operano sui layer raster.

14.3.20.1. raster_statistic

Restituisce statistiche da un layer raster.

Sintassi

raster_statistic(layer, band, property)

Argomenti

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

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

14.3.20.2. raster_value

Restituisce il valore raster trovato nel punto specificato.

Sintassi

raster_value(layer, band, point)

Argomenti

  • layer - il nome o l’id di un layer raster

  • band - il numero di banda da cui campionare il valore.

  • point - geometria di punti (per le geometrie multi parte che hanno più di una parte, verrà restituito un valore NULL)

Esempi

  • raster_value('dem', 1, make_point(1,1)) → 25

14.3.21. Funzioni relative ai record e agli attributi

Questo gruppo contiene funzioni che operano sugli identificativi dei record.

14.3.21.1. attribute

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

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

14.3.21.3. $currentfeature

Restituisce l’elemento corrente da valutare. Questo può essere usato con la funzione “attribute” per valutare i valori degli attributi dell’elemento corrente.

Sintassi

$currentfeature

Esempi

  • attribute( $currentfeature, 'name' ) → valore memorizzato nell’attributo “nome” per l’elemento corrente

14.3.21.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 facoltativi

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.

14.3.21.5. get_feature

Restituisce il primo elemento di un layer che corrisponde ad un dato valore di attributo.

Sintassi

get_feature(layer, attribute, value)

Argomenti

  • layer - nome o ID del layer

  • attribute - nome dell’attributo

  • value - valore dell’attributo da accoppiare

Esempi

  • get_feature('streets','name','main st') → primo elemento trovato nel layer «streets» con valore «main st» nel campo «name»

14.3.21.6. get_feature_by_id

Restituisce l’elemento con un id su un layer.

Sintassi

get_feature_by_id(layer, feature_id)

Argomenti

  • layer - layer, nome layer o id layer

  • feature_id - l’id dell’elemento che si vuole acquisire

Esempi

  • get_feature_by_id('streets', 1) → l’elemento con l’id 1 nel layer «streets»

Ulteriori informazioni: $id

14.3.21.7. $id

Restituisce l’id dell’elemento della riga corrente.

Sintassi

$id

Esempi

  • $id → 42

14.3.21.8. is_selected

Restituisce True se un’elemento è selezionato. Può essere usato con zero, uno o due argomenti, vedi sotto per i dettagli.

Nessun parametro

Se chiamata senza parametri, la funzione restituisce vero se l’elemento corrente nel layer corrente è selezionato.

Sintassi

is_selected()

Esempi

  • is_selected() → True se l’elemento corrente nel layer corrente è selezionato.

“feature” come parametro

Se chiamata solo con un parametro “feature”, la funzione restituisce true se l’elemento specificato dal layer corrente è selezionato.

Sintassi

is_selected(feature)

Argomenti

  • feature - L’elemento che dovrebbe essere controllato per la selezione.

Esempi

  • is_selected(@atlas_feature) → True se un elemento selezionato sul layer corrente è l’elemento attivo dell’atlante.

  • is_selected(get_feature(@layer, 'name', 'Main St.'))) → True se l’elemento univoco denominato «Main St.» sul layer corrente è selezionato.

  • is_selected(get_feature_by_id(@layer, 1)) → True se l’elemento con l’id 1 sul layer corrente è selezionato.

Due parametri

Se la funzione è chiamata sia con un layer che con un elemento, restituirà true se l’elemento specificato dal layer specificato è selezionato.

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 dell’edificio 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 id 1 sul layer «streets» è selezionato.

14.3.21.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 facoltativi

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.

14.3.21.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 facoltativi

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

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

Argomenti

  • value - Il valore che dovrebbe essere risolto. Molto probabilmente un campo.

  • fieldName - Il nome del campo per il quale dovrebbe essere caricata la configurazione del widget. (Opzionale)

Esempi

  • represent_value("field_with_value_map") → Descrizione per il valore

  • represent_value('static value', 'field_name') → Descrizione per il valore statico

Ulteriori informazioni: widget types

14.3.21.12. 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 facoltativi

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

14.3.21.13. uuid

Genera un Universally Unique Identifier (UUID) per ogni riga usando il metodo Qt QUuid::createUuid. Ogni UUID è lungo 38 caratteri.

Sintassi

uuid()

Esempi

  • uuid() → “{0bd2f60f-f157-4a6d-96af-d4ba4cb366a1}”

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

14.3.23. Funzioni Stringa

Questo gruppo contiene le funzioni che operano sulle stringhe (ad esempio sostituisci, converti in maiuscolo).

14.3.23.1. ascii

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

14.3.23.2. char

Restituisce il carattere associato a un codice unicode.

Sintassi

char(code)

Argomenti

  • code - un numero di codice unicode

Esempi

  • char(81) → “Q”

14.3.23.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's id is
    

14.3.23.4. format

Formatta una stringa usando gli argomenti forniti.

Sintassi

format(string, arg1, arg2, …)

Argomenti

  • string - Una stringa con segnaposto per gli argomenti. Usa %1, %2, ecc. per i segnaposto. I segnaposto possono essere ripetuti.

  • arg - qualsiasi tipo. Qualsiasi numero di argomenti.

Esempi

  • format('This %1 a %2','is', 'test') → “This is a test”

14.3.23.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 facoltativi

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 “Mon” a “Sun”)

    dddd

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

    M

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

    MM

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

    MMM

    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 o A

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

    ap o a

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

  • language - lingua (minuscola, due o tre lettere, codice lingua ISO 639) usata per formattare la data in una stringa personalizzata

Esempi

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

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

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

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

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

14.3.23.6. format_number

Restituisce un numero formattato con il separatore locale per le migliaia. Inoltre tronca le cifre decimali al numero di posizioni fornite.

Sintassi

format_number(number, places, [language])

[] indica argomenti facoltativi

Argomenti

  • number - numero da formattare

  • places - intero che rappresenta il numero di posizioni decimali a cui troncare la stringa.

  • language - lingua (minuscolo, due o tre lettere, ISO 639 language code) usata per formattare il numero in una stringa

Esempi

  • format_number(10000000.332,2) → “10,000,000.33”

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

14.3.23.7. left

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”

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

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

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

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

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

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

14.3.23.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 della mappa fornite sostituite dai valori associati.

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”

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

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

  • puntino - stringa da cercare

Esempi

  • strpos('HELLO WORLD','WORLD') → 7

  • strpos('HELLO WORLD','GOODBYE') → 0

14.3.23.18. substr

Restituisce una parte di una stringa.

Sintassi

substr(string, start, [length])

[] indica argomenti facoltativi

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”

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

14.3.23.20. to_string

Converte un numero in stringa.

Sintassi

to_string(number)

Argomenti

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

Esempi

  • to_string(123) → “123”

14.3.23.21. trim

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”

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

14.3.23.23. wordwrap

Restituisce una stringa avvolta in un numero massimo/minimo di caratteri.

Sintassi

wordwrap(string, wrap_length, [delimiter_string])

[] indica argomenti facoltativi

Argomenti

  • string - la stringa da avvolgere

  • wrap_length - un intero. Se wrap_length è positivo, il numero rappresenta il numero massimo ideale di caratteri da avvolgere; se è negativo, il numero rappresenta il numero minimo di caratteri da avvolgere.

  • delimitatore_stringa - Stringa delimitatrice opzionale per avvolgere una nuova linea.

Esempi

  • wordwrap('UNIVERSITY OF QGIS',13) → “UNIVERSITY OF<br>QGIS”

  • wordwrap('UNIVERSITY OF QGIS',-3) → “UNIVERSITY<br>OF QGIS”

14.3.24. Espressioni utente

Questo gruppo contiene le espressioni salvate come user expressions.

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

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_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

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

item_id

L’ID utente dell’oggetto layout (non necessariamente univoco)

item_uuid

L’ID univoco dell’oggetto layout

layer

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

layout_pagewidth

La larghezza della pagina attiva nel layout (in mm)

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_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

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

with_variable

Consente di impostare una variabile da utilizzare all’interno di un’espressione ed evitare di ricalcolare ripetutamente lo stesso valore

zoom_level

Livello di zoom del tassello visualizzato (derivato dalla corrente scala della mappa). Normalmente nell’intervallo [0, 20].

Alcuni esempi:

  • Restituire la coordinata X del centro di un oggetto della mappa nel layout:

    x( map_get( item_variables( 'map1'), 'map_extent_center' ) )
    
  • Restituire, per ogni elemento nel layer corrente, il numero di aeroporti sovrapposti:

    aggregate( layer:='airport', aggregate:='count', expression:="code",
                   filter:=intersects( $geometry, geometry( @parent ) ) )
    
  • Ottenere l’object_id del primo punto agganciato di una linea:

    with_variable(
      'first_snapped_point',
      array_first( @snapping_results ),
      attribute(
        get_feature_by_id(
          map_get( @first_snapped_point, 'layer' ),
          map_get( @first_snapped_point, 'feature_id' )
        ),
        'object_id'
      )
    )
    

14.3.26. Funzioni recenti

Questo gruppo contiene le funzioni usate di recente. A seconda del contesto di utilizzo (selezione di elementi, calcolatore di campi, generica), le espressioni applicate di recente vengono aggiunte alla lista corrispondente (fino a dieci espressioni), ordinate dalla più alla meno recente. Questo rende facile recuperare e riapplicare rapidamente le espressioni usate in precedenza.