14.2. Espressioni¶
Partendo dagli attributi del layer e da funzioni predefinite o definite dall’utente, la finestra Espressioni offre un modo efficace per manipolare il valore dell’attributo, la geometria e le variabili al fine di modificare dinamicamente lo stile della geometria, il contenuto o la posizione dell’etichetta, il valore per il diagramma, l’altezza di un elemento nel compositore di stampe, selezionare alcune caratteristiche, creare un campo virtuale …
14.2.1. Il Calcolatore di campi¶
La finestra di dialogo principale per la creazione di espressioni Calcolatore di campi è disponibile da molte parti in QGIS e, in particolare, puoi accederci:
selecting features con lo strumento
Seleziona con espressione…;
Modifica attributi per esempio con il
Calcolatore di campi ;
nella manipolazione dei parametri di simbologia, di etichetta o del layout con lo strumento
Sovrascrittura definita dai dati (vedi Impostazione Sovrascrittura definita dai dati);
nel costruire geometry generator un layer di simboli;
nell’attivare alcuni geoprocessing.
Le finestre di dialogo del Costruttore di Espressioni offrono l’accesso a:
Expression tab che, grazie ad un elenco di funzioni predefinite, aiuta a scrivere e controllare l’espressione da utilizzare;
Function Editor tab delle funzioni che consente di ampliare l’elenco delle funzioni creando quelle personalizzate.
Alcuni casi d’uso di espressioni:
Dal Calcolatore Campo, calcolare un campo «pop_density» utilizzando i campi esistenti «total_pop» e «area_km2»:
"total_pop" / "area_km2"
Aggiornare il campo «density_level» con le categorie in base ai valori «pop_density»:
CASE WHEN "pop_density" < 50 THEN 'Low population density' WHEN "pop_density" >= 50 and "pop_density" < 150 THEN 'Medium population density' WHEN "pop_density" >= 150 THEN 'High population density' END
Update a region layer field with the names (comma separated) of contained airports:
aggregate('airport_layer', 'concatenate', "name", within($geometry, geometry(@parent)), ', ')
Applicare uno stile categorizzato a tutte le geometrie in base al fatto che il prezzo medio della casa sia più piccolo o superiore a 10000€ per metro quadrato:
"price_m2" > 10000
Utilizzando lo strumento «Seleziona per espressione …», selezionare tutte le geometrie che rappresentano aree di «Alta densità di popolazione» e il cui prezzo medio di casa è superiore a 10000€ per metro quadrato:
"density_level" = 'High population density' and "price_m2" > 10000
Allo stesso modo, l’espressione precedente potrebbe anche essere utilizzata per definire quali geometrie dovrebbero essere etichettate o mostrate nella mappa.
L’uso delle espressioni offre molte possibilità.
Suggerimento
Utilizzare parametri espliciti per migliorare la lettura dell’espressione
Alcune funzioni richiedono che siano impostati molti parametri. Il motore di espressione supporta l’utilizzo di parametri espliciti. Ciò significa che, invece di scrivere l’espressione criptica clamp( 1, 2, 9)
, puoi usare clamp( min:=1, value:=2, max:=9)
. Ciò consente inoltre l’inserimento di argomenti, ad esempio clamp( value:=2, max:=9, min:=1)
. L’utilizzo di parametri espliciti aiuta a chiarire quali sono gli argomenti di una funzione espressione, utile quando si tenta di interpretare un’espressione in una data successiva!
14.2.2. Lista delle funzioni¶
La scheda Espressione fornisce l’interfaccia principale per scrivere le espressioni utilizzando funzioni, campi del layer e valori. Contiene widget per:
Un’area per comporre espressioni per digitare o copiare espressioni. L’autocompletamento è disponibile per velocizzare la scrittura delle espressioni:
Le variabili, i nomi delle funzioni e dei campi corrispondenti al testo di input sono mostrati di seguito: usare le frecce Up e Down per sfogliare gli elementi e premere Tab per inserireli nell’espressione o semplicemente cliccare sull’elemento desiderato.
I parametri delle funzione vengono visualizzati durante la digitazione.
QGIS controlla anche la correttezza dell’espressione ed evidenzia tutti gli errori utilizzando:
Sottolineatura: per funzioni sconosciute, argomenti errati o non corretti;
Simbolo: per ogni altro errore (es. parentesi mancante, carattere imprevisto) in una singola posizione.
Suggerimento
Documentare le tue espressioni con i commenti
Quando si usa un’espressione complessa, è buona pratica aggiungere testo sia come commento multilinea che come commento in linea per aiutarti a ricordare.
/* Labels each region with its highest (in altitude) airport(s) and altitude, eg 'AMBLER : 264m' for the 'Northwest Artic' region */ with_variable( 'airport_alti', -- stores the highest altitude of the region aggregate( 'airports', 'max', "ELEV", -- the field containing the altitude -- and limit the airports to the region they are within filter := within( $geometry, geometry( @parent ) ) ), aggregate( -- finds airports at the same altitude in the region 'airports', 'concatenate', "NAME", filter := within( $geometry, geometry( @parent ) ) and "ELEV" = @airport_alti ) || ' : ' || @airport_alti || 'm' -- using || allows regions without airports to be skipped )
Sotto l’editor di espressioni, un Output preview mostra il risultato dell’espressione valutata sulla prima geometria del layer. In caso di errore, lo indica ed è possibile accedere ai dettagli con il collegamento ipertestuale fornito.
Un selettore di funzioni visualizza l’elenco di funzioni, variabili, campi…. organizzati in gruppi. Una casella di ricerca è disponibile per filtrare l’elenco e trovare rapidamente una particolare funzione o campo. Facendo doppio clic su un elemento lo aggiunge all’editor di espressioni.
Un pannello di aiuto visualizza la guida per ogni voce selezionata nel selettore di funzione.
Suggerimento
Premi Ctrl+Click quando passi con il mouse sul nome di una funzione in un’espressione per visualizzare automaticamente il suo aiuto nella finestra di dialogo.
Il widget dei valori di un campo mostrato quando un campo è selezionato nel selettore di funzioni aiuta a trovare gli attributi delle caratteristiche. Facendo doppio clic su un valore lo aggiunge all’editor di espressioni.
Suggerimento
Il pannello di destra, che mostra le funzioni di aiuto o i valori del campo, può essere chiuso (invisibile) nella finestra di dialogo. Premi il pulsante Mostra valori o Mostra aiuto per recuperarlo.

Fig. 14.65 La scheda Espressioni¶
14.2.2.1. Funzioni di aggregazione¶
Questo gruppo contiene funzioni che aggregano valori su layer e campi
Funzioni |
Descrizione |
---|---|
aggregate |
Restituisce un valore aggregato calcolato utilizzando le geometrie di un altro layer |
array_agg |
Restituisce un array di valori aggregati da un campo o espressione. |
collect |
Restituisce la geometria a parti multiple di geometrie aggregate da una espressione |
concatenate |
Returns all aggregated strings from a field or expression joined by a delimiter |
concatenate_unique |
Returns all unique aggregated strings from a field or expression joined by a delimiter |
count |
Restituisce il conteggio delle geometrie corrispondenti |
count_distinct |
Restituisce il conteggio di valori distinti |
count_missing |
Restituisce il conteggio di valori mancanti (nulli) |
iqr |
Restituisce l’intervallo inter quartile calcolato da un campo o un’espressione |
majority |
Restituisce la maggioranza aggregata di valori (il valore più comunemente presente) da un campo o da un’espressione |
max_length |
Restituisce la lunghezza massima delle stringhe da un campo o da un’espressione |
maximum |
Restituisce il valore massimo aggregato da un campo o da un’espressione |
mean |
Restituisce il valore medio aggregato da un campo o da un’espressione |
median |
Restituisce il valore della mediana aggregato da un campo o da un’espressione |
min_length |
Restituisce la lunghezza minima delle stringhe da un campo o da un’espressione |
minimum |
Restituisce il valore minimo aggregato da un campo o da un’espressione |
minority |
Restituisce la minoranza dei valori aggregata (valore che si verifica meno comunemente) da un campo o da un’espressione |
q1 |
Restituisce il primo quartile calcolato da un campo o da un’espressione |
q3 |
Restituisce il terzo quartile calcolato da un campo o da un’espressione |
range |
Restituisce l’intervallo di valori aggregato (massimo - minimo) da un campo o un’espressione |
relation_aggregate |
Restituisce un valore aggregato calcolato utilizzando tutte le geometrie figlie corrispondenti da una relazione sul layer |
stdev |
Restituisce il valore della deviazione standard aggregato da un campo o da un’espressione |
sum |
Restituisce il valore sommato aggregato da un campo o da un’espressione |
Esempi:
Restituisce il massimo del campo «Passeggeri» dalle geometrie nel layer raggruppato dal campo «station_class» :
maximum("passengers", group_by:="station_class")
Calcola il numero totale di passeggeri per le stazioni all’interno della geometria Atlante corrente:
aggregate('rail_stations','sum',"passengers", intersects(@atlas_geometry, $geometry))
Restituisce la media del campo «field_from_related_table» per tutte le geometrie figlio corrispondenti usando la relazione “my_relation” dal layer:
relation_aggregate('my_relation', 'mean', "field_from_related_table")
oppure:
relation_aggregate(relation:='my_relation', aggregate := 'mean', expression := "field_from_related_table")
14.2.2.2. Funzioni Array¶
Questo gruppo contiene funzioni per la creazione e la manipolazione di array (noti anche come strutture dati ad elenco). L’ordine dei valori all’interno dell’array è importante, al contrario della “map” data structure, in cui l’ordine delle coppie chiave-valore è irrilevante e i valori vengono identificati dalle loro chiavi.
Funzioni |
Descrizione |
---|---|
array |
Restituisce un array contenente tutti i valori passati come parametro. |
array_all |
Returns true if an array contains all the values of a given array |
array_append |
Restituisce un array con il valore passato aggiunto alla fine. |
array_cat |
Restituisce un array contenente tutti gli array passati concatenati. |
array_contains |
Restituisce vero se un array contiene il valore specificato. |
array_distinct |
Restituisce un array contenente valori distinti dell’array dato. |
array_filter |
Restituisce un array con solo gli elementi per i quali una espressione valuta come vero |
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 |
array_first |
Restituisce il primo valore di un array |
array_foreach |
Restituisce un array con l’espressione data valutata per ogni elemento |
array_get |
Restituisce il valore ennesimo (0 per il primo elemento) di un array. |
array_insert |
Restituisce un array con il valore dato aggiunto nella posizione indicata. |
array_intersect |
Restituisce vero se almeno un elemento dell’array1 esiste in array2. |
array_last |
Restituisce l’ultimo elemento di un array |
array_length |
Restituisce il numero di elementi di un array |
array_prepend |
Restituisce un array con il valore dato aggiunto all’inizio |
array_remove_all |
Restituisce un array con tutti gli elementi del valore passato rimossi. |
array_remove_at |
Restituisce un array con l’indice dato rimosso |
array_reverse |
Restituisce l’array dato con valori dell’array in ordine inverso |
array_slice |
Restituisce i valori dell’array dal parametro start_pos fino a includere il parametro end_pos |
array_sort |
Returns the provided array with its elements sorted |
array_to_string |
Concatena gli elementi di un array in una stringa separata da un delimitatore usando una stringa opzionale per valori mancanti |
generate_series |
Crea un array contenente una sequenza di numeri |
regexp_matches |
Restituisce un array di tutte le stringhe catturate dai gruppi, nell’ordine con cui i gruppi stessi compaiono con l’espressione regolare fornita con una stringa |
string_to_array |
Divide la stringa in un array usando il delimitatore fornito e la stringa opzionale per valori mancanti |
14.2.2.3. Funzioni colore¶
Questo gruppo contiene funzioni per la manipolazione dei colori.
Funzioni |
Descrizione |
---|---|
color_cmyk |
Restituisce una rappresentazione in formato stringa di un colore in base alle componenti ciano, magenta, giallo e nero |
color_cmyka |
Restituisce una rappresentazione in formato stringa di un colore in base ai componenti ciano, magenta, giallo, nero e alfa (trasparenza) |
color_grayscale_average |
Applica un filtro in scala di grigi e restituisce una rappresentazione di stringa da un dato colore |
color_hsl |
Restituisce una rappresentazione in formato stringa di un colore in base agli attributi di tonalità, saturazione e luminosità |
color_hsla |
Restituisce una rappresentazione in formato stringa di un colore in base agli attributi di tonalità, saturazione, luminosità e alfa (trasparenza) |
color_hsv |
Restituisce una rappresentazione in formato stringa di un colore in base agli attributi di tonalità, saturazione e valore |
color_hsva |
Restituisce una rappresentazione in formato stringa di un colore in base agli attributi di tonalità, saturazione, valore e alfa (trasparenza) |
color_mix_rgb |
Restituisce una stringa che rappresenta un colore che mescola i valori di rosso, verde, blu e alfa di due dati colori in base ad un dato rapporto |
color_part |
Restituisce un componente specifico da una stringa di colori, ad esempio il componente rosso o il componente alfa |
color_rgb |
Restituisce una rappresentazione in formato stringa di un colore in base alle componenti rosso, verde e blu |
color_rgba |
Restituisce una rappresentazione in formato stringa di un colore in base alle componenti rosso, verde, blu e alfa (trasparenza) |
create_ramp |
Restituisce una scala di colori a gradiente per una mappa di colori e gradini |
darker |
Restituisce una stringa di colore più scuro (o più chiaro) |
lighter |
Restituisce una stringa di colore più chiara (o più scura) |
project_color |
Restituisce un colore dalla combinazione dei colori del progetto |
ramp_color |
Restituisce una stringa che rappresenta un colore da una scala di colori |
set_color_part |
Imposta un componente di colore specifico per una stringa di colore, ad esempio il componente rosso o il componente alfa |
14.2.2.4. Funzioni Condizionali¶
Questo gruppo contiene funzioni per eseguire controlli condizionali nelle espressioni.
Funzioni |
Descrizione |
---|---|
CASE WHEN … THEN … END |
Valuta un’espressione e restituisce un risultato se è vera. Puoi testare più condizioni |
CASE WHEN … THEN … ELSE … END |
Valuta un’espressione e restituisce un risultato diverso secondo se è vera o falsa. Puoi testare più condizioni |
coalesce |
Restituisce il primo valore non NULL dall’elenco in espressione |
if |
Verifica una condizione e restituisce un risultato diverso a seconda della verifica della condizione |
nullif(value1, value2) |
Returns a null value if value1 equals value2 otherwise it returns value1. This can be used to conditionally substitute values with NULL. |
try |
Tries an expression and returns its value if error-free, an alternative value (if provided) or Null if an error occurs |
Alcuni esempi
Restituisce un valore se la prima condizione è vera, altrimenti un altro valore
CASE WHEN "software" LIKE '%QGIS%' THEN 'QGIS' ELSE 'Other' END
14.2.2.5. Funzioni di conversione¶
Questo gruppo contiene funzioni per convertire un tipo di dati in un altro (ad esempio stringa su intero, intero su stringa).
Funzioni |
Descrizione |
---|---|
to_date |
Converte una stringa in formato data |
to_datetime |
Converte una stringa in formato datetime |
to_dm |
Converte una coordinata in gradi, minuti. |
to_dms |
Converte una coordinata in gradi, minuti, secondi. |
to_int |
Converte una stringa in numero intero |
to_interval |
Converte una stringa in un tipo di intervallo (può essere utilizzata per ricavare giorni, ore, mesi, ecc. da una data) |
to_real |
Converte una stringa in un numero reale |
to_string |
Converte numero in stringa |
to_time |
Converte una stringa in un formato orario |
14.2.2.6. Funzioni personalizzate¶
Questo gruppo contiene funzioni create dall’utente. Vedi Editor delle Funzioni per maggiori dettagli.
14.2.2.7. Funzioni di data e ora¶
Questo gruppo contiene funzioni per la gestione dei dati in formato data e ora.
Funzioni |
Descrizione |
---|---|
age |
Restituisce come intervallo la differenza tra due date o datetime |
day |
Estrae il giorno da una data o un datetime o il numero di giorni da un intervallo |
day_of_week |
Restituisce un numero corrispondente al giorno della settimana per una data o un datetime specificato |
epoch |
Restituisce l’intervallo in millisecondi fra l’epoca unix e la data inserita. |
hour |
Estrae l’ora da un datetime o tempo, o il numero di ore da un intervallo |
minute |
Estrae il minuto da un datetime o tempo, o il numero di minuti da un intervallo |
month |
Estrae la parte del mese da una data o datetime o il numero di mesi da un intervallo |
now |
Restituisce la data e l’ora correnti |
second |
Estrae il secondo da un datetime o time, o il numero di secondi da un intervallo |
week |
Estrae il numero della settimana da una data o datetime, o il numero di settimane da un intervallo |
year |
Extracts the year part from a date or datetime, or the number of years from an interval |
Questo gruppo condivide anche diverse funzioni con i gruppi Funzioni di conversione (to_date, to_time, to_datetime, to_interval) e Funzioni Stringa (format_date).
Alcuni esempi:
Ricava il mese e l’anno di oggi nel formato «numero_mese/anno»:
format_date(now(),'MM/yyyy') -- Returns '03/2017'
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') - to_datetime(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>
Nota
Memorizzazione di formati data e di intervalli di tempo su campi
La capacità di memorizzare le date nei formati date, datatime e time sui campi può dipendere dalla fonte dei dati (ad esempio, gli shapefile accettano il formato date, ma non il formato datetime o time). Di seguito ci sono alcuni suggerimenti per superare questa limitazione:
date, datetime e time possono essere memorizzati nei campi di tipo di testo dopo aver utilizzato la funzione
to_format()
.intervals possono essere memorizzati in campi di numeri interi o decimali dopo aver utilizzato una delle funzioni di estrazione della data (ad esempio,
day()
per ottenere l’intervallo espresso in giorni)
14.2.2.8. Campi e Valori¶
Contiene la lista dei campi di un layer.
Fai doppio clic sul nome di un campo per aggiungerlo all’espressione. Puoi anche digitare il nome del campo (preferibilmente all’interno di virgolette doppie) o il suo alias.
Per recuperare i valori dei campi da utilizzare in un’espressione, seleziona il campo appropriato e, nel widget mostrato, scegli tra 10 Samples e All Unique. I valori richiesti vengono quindi visualizzati e puoi utilizzare la casella Search nella parte superiore dell’elenco per filtrare il risultato. I valori dei campioni sono accessibili anche facendo clic con il tasto destro del mouse su un campo.
Per aggiungere un valore all’espressione che stai scrivendo, fai doppio clic su di essa nell’elenco. Se il valore è di tipo stringa, dovrebbe essere tra virgolette semplici, altrimenti non è necessaria alcuna virgoletta.
14.2.2.9. Files and Paths Functions¶
This group contains functions which manipulate file and path names.
Funzioni |
Descrizione |
---|---|
base_file_name |
Returns the base name of the file without the directory or file suffix. |
file_exists |
Returns true if a file path exists. |
file_name |
Returns the name of a file (including the file extension), excluding the directory. |
file_path |
Returns the directory component of a file path, without the file name |
file_size |
Returns the size (in bytes) of a file. |
file_suffix |
Returns the file extension from a file path. |
is_directory |
Returns true if a path corresponds to a directory. |
is_file |
Returns true if a path corresponds to a file. |
14.2.2.10. Funzioni varie di confronto¶
Questo gruppo contiene funzioni per confronti vari tra valori.
Funzioni |
Descrizione |
---|---|
hamming_distance |
Restituisce il numero di caratteri nelle posizioni corrispondenti all’interno delle stringhe in input in cui i caratteri sono diversi |
levensheim |
Restituisce il numero minimo di caratteri (inserzioni, cancellazioni o sostituzioni) richiesti per cambiare una stringa in un’altra. Misura la somiglianza tra due stringhe |
longest_common_substring |
Restituisce la sottostringa comune più lunga tra due stringhe |
soundex |
Restituisce la rappresentazione Soundex di una stringa |
14.2.2.11. Funzioni Generali¶
This group contains general assorted functions.
Funzioni |
Descrizione |
---|---|
env |
Acquisisce una variabile d’ambiente e restituisce il suo contenuto in formato stringa. Se la variabile non viene trovata, verrà restituito |
eval |
Evaluates an expression which is passed in a string. Useful to expand dynamic parameters passed as context variables or fields. |
is_layer_visible |
Restituisce vero se uno specifico layer è visibile. |
layer_property |
Restituisce una proprietà di un layer o un valore dei suoi metadati. Può essere nome del layer, SR, tipo di geometria, conteggio delle geometrie … |
var |
Returns the value stored within a specified variable. See Variabili below |
with_variable |
Crea e imposta una variabile per qualsiasi codice di espressione che sarà fornito come terzo parametro. Utile per evitare la ripetizione in espressioni in cui lo stesso valore deve essere usato più di una volta. |
14.2.2.12. Funzioni Geometria¶
This group contains functions that operate on geometry objects (e.g. buffer, transform, $area).
Funzioni |
Descrizione |
---|---|
$area |
Restituisce le dimensioni dell’area della geometria corrente |
$geometry |
Restituisce la geometria dell’elemento corrente (può essere utilizzato per l’elaborazione con altre funzioni) |
$length |
Restituisce la lunghezza della geometria lineare corrente |
$perimeter |
Restituisce il perimetro della geometria poligono corrente |
$x |
Restituisce la coordinata X della geometria corrente |
$x_at(n) |
Restituisce la coordinata X dell’ennesimo nodo della geometria corrente |
$y |
Restituisce la coordinata Y della geometria corrente |
$y_at(n) |
Restituisce la coordinata Y dell’ennesimo nodo della geometria corrente |
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 da nord |
area |
Restituisce l’area di una geometria poligono. I calcoli sono nel Sistema di riferimento spaziale di questa geometria |
azimuth |
Restituisce l’azimut a nord come angolo in radianti misurato in senso orario dalla verticale su point_a a point_b |
boundary |
Restituisce la chiusura del confine al bordo della geometria (cioè il confine topologico della geometria - vedi anche Confine). |
bounds |
Restituisce una geometria che rappresenta il rettangolo di delimitazione di una geometria di input. I calcoli si trovano nel sistema di riferimento spaziale di questa geometria (vedi anche Perimetri di delimitazione). |
bounds_height |
Restituisce l’altezza del riquadro di delimitazione di una geometria. I calcoli sono nel Sistema di riferimento spaziale di questa geometria |
bounds_width |
Restituisce la larghezza del riquadro di delimitazione di una geometria. I calcoli sono nel Sistema di riferimento spaziale di questa geometria |
buffer |
Restituisce una geometria che rappresenta tutti i punti la cui distanza da questa geometria è inferiore o uguale alla misura data. I calcoli si trovano nel sistema di riferimento spaziale di questa geometria (vedi anche Buffer). |
buffer_by_m |
Crea un buffer lungo una geometria lineare dove il diametro del buffer varia secondo i valori M ai vertici della linea (vedi anche Variable width buffer (by M value)) |
centroid |
Restituisce il centro geometrico di una geometria (vedi anche Centroidi) |
closest_point |
Restituisce il punto su una geometria che è più vicino a una seconda geometria |
collect_geometries |
Collects a set of geometries into a multi-part geometry object (see also Collect geometries) |
combine |
Restituisce la combinazione di due geometrie |
contains(a,b) |
Restituisce 1 (vero) se e solo se nessun punto di b giace nell’esterno di a, e almeno un punto dell’interno di b si trova all’interno di a |
convex_hull |
Restituisce il poligono convesso di una geometria (rappresenta la geometria minima convessa che racchiude tutte le geometrie all’interno dell’insieme) (vedi anche Convex hull) |
crosses |
Restituisce 1 (vero) se le geometrie fornite hanno in comune alcuni punti interni, ma non tutti |
difference(a,b) |
Restituisce una geometria che rappresenta quella parte di geometria a che non si interseca con la geometria b (vedi anche qgisdifferenza) |
disjoint |
Restituisce 1 (vero) se le geometrie non condividono nessuno spazio |
distance |
Restituisce la distanza minima (in base al Sistema di riferimento spaziale) tra due geometrie in unità proiettate |
distance_to_vertex |
Restituisce la distanza lungo la geometria a un vertice specificato |
end_point |
Restituisce l’ultimo nodo da una geometria (vedi anche Extract specific vertices) |
extend |
Estende l’inizio e la fine di un geometria lineare di una quantità specificata (vedi anche Extend lines) |
exterior_ring |
Restituisce una stringa lineare che rappresenta l’anello esterno di una geometria poligonale o null se la geometria non è un poligono |
extrude(geom,x,y) |
Restituisce una versione estrusa della geometria (Multi-) Curve o (Multi-) Linestring in ingresso con un’estensione specificata da X e da Y |
flip_coordinates |
Restituisce una copia della geometria con le coordinate X e Y scambiate (vedi anche Swap X and Y coordinates) |
force_rhr |
Forces a geometry to respect the Right-Hand-Rule (see also Force right-hand-rule) |
geom_from_gml |
Restituisce una geometria creata da una rappresentazione GML della geometria |
geom_from_wkt |
Restituisce una geometria creata da una rappresentazione Well-Known Text (WKT) |
geom_to_wkt |
Restituisce la rappresentazione Well-Known Text (WKT) della geometria senza i metadati del SRID |
geometry |
Restituisce la geometria di un elemento |
geometry_n |
Restituisce l’ennesima geometria da una raccolta di geometrie, o null se la geometria in input non è una raccolta |
hausdorff_distance |
Returns basically a measure of how similar or dissimilar two geometries are, with a lower distance indicating more similar geometries |
inclination |
Restituisce l’inclinazione misurata dallo zenit (0) al nadir (180) del punto_a al punto_b. |
interior_ring_n |
Restituisce la geometria dell’ennesimo anello interno da una geometria poligonale, oppure null se la geometria non è un poligono |
intersection |
Restituisce una geometria che rappresenta la porzione condivisa di due geometrie (vedi anche Intersection) |
intersects |
Verifica se una geometria interseca un’altra. Restituisce 1 (vero) se le geometrie si intersecano spazialmente (condividono qualsiasi porzione di spazio) e 0 se non lo fanno |
intersects_bbox |
Verifica se il riquadro di delimitazione di una geometria si sovrappone al riquadro di delimitazione di un’altra geometria. Restituisce 1 (vero) se le geometrie intersecano spazialmente (condividono qualsiasi porzione di spazio) nelle loro casella di delimitazione, o 0 se non lo fanno |
is_closed |
Restituisce vero se una linea è chiusa (i punti di inizio e di fine sono coincidenti), falso se una linea non è chiusa o null se la geometria non è una linea |
length |
Restituisce la lunghezza di una geometria lineare (o la lunghezza di una geometria di tipo linestring) |
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. |
line_interpolate_point |
Restituisce il punto interpolato da una distanza specificata lungo una geometria lineare. (vedi anche Interpolate point on line) |
line_locate_point |
Restituisce la distanza lungo una linestring corrispondente alla posizione più vicina alla linestring di una geometria puntuale specificata |
line_merge |
Restituisce una geometria (Multi-)LineString, in cui tutte le LineString connesse dalla geometria in input sono state unite in una singola linestring. |
line_substring |
Restituisce la porzione di geometria di una geometria lineare o curva che ricade tra le distanze iniziali e finali specificate (misurate dall’inizio della linea) (vedi anche: ref:qgislinesubstring) |
m |
Restituisce il valore M di una geometria puntuale |
make_circle |
Crea una geometria circolare basata su punto centrale e raggio |
make_ellipse |
Crea una geometria ellittica basata su punto centrale, assi e azimut |
make_line |
Creates a line geometry from a series or an array of point geometries |
make_point(x,y,z,m) |
Restituisce una geometria puntuale dai valori X e Y (e opzionalmente Z o M) |
make_point_m(x,y,m) |
Restituisce una geometria puntuale dai valori delle coordinate X e Y e M |
make_polygon |
Crea una geometria poligono da un anello esterno e una serie opzionale di geometrie ad anello interne |
make_rectangle_3points |
Creates a rectangle from 3 points |
make_regular_polygon |
Crea un poligono regolare |
make_square |
Creates a square from a diagonal |
make_triangle |
Crea un poligono triangolare |
minimal_circle |
Restituisce il cerchio minimo circoscritto ad una geometria in ingresso (vedi anche Minimum enclosing circles) |
nodes_to_points |
Restituisce una geometria multipunto costituita da ogni nodo della geometria in ingresso (vedere anche qgisextractractractvertices) |
num_geometries |
Restituisce il numero di geometrie in una raccolta di geometrie, o null se la geometria in ingresso non è una raccolta |
num_interior_rings |
Restituisce il numero di anelli interni in un poligono o in una raccolta di geometrie, oppure null se la geometria in input non è un poligono o una raccolta |
num_points |
Restituisce il numero di vertici in una geometria |
num_rings |
Restituisce il numero di anelli (inclusi gli anelli esterni) in un poligono o in una raccolta di geometrie, oppure null se la geometria in input non è un poligono o una raccolta |
offset_curve |
Restituisce una geometria formata dallo spostamento laterale della geometria lineare. Le distanze sono nel sistema di riferimento spaziale di questa geometria. (vedi anche Offset lines) |
order_parts |
Ordina le parti di una MultiGeometry secondo un determinato criterio |
oriented_bbox |
Restituisce una geometria che rappresenta il rettangolo di contorno minimo orientato di una geometria di input (vedi anche Oriented minimum bounding box) |
overlaps |
Verifica se una geometria si sovrappone a un’altra. Restituisce 1 (vero) se le geometrie condividono lo spazio, sono della stessa dimensione, ma non sono completamente contenute l’una all’altra |
perimeter |
Restituisce il perimetro di una geometria poligonale. I calcoli sono nel Sistema di riferimento spaziale di questa geometria |
point_n |
Restituisce un nodo specifico da una geometria (vedi anche Extract specific vertices) |
point_on_surface |
Restituisce un punto che si trova sulla superficie di una geometria (vedi anche: ref:qgispointonsurface) |
pole_of_inaccessibility |
Calcola il punto approssimativo di inaccessibilità di una superficie, che è il punto interno più distante dal confine della superficie (vedi anche Pole of inaccessibility) |
project |
Returns a point projected from a start point using a distance, a bearing (azimuth) and an elevation in radians (see also Project points (Cartesian)) |
relate |
Testa o restituisce la rappresentazione Dimensional Extended 9 Intersection Model (DE-9IM) della relazione tra due geometrie. |
inverti |
Inverte la direzione di una geometria lineare invertendo l’ordine dei suoi vertici (vedi anche Reverse line direction) |
segments_to_lines |
Restituisce una geometria multilinea composta da una linea per ogni segmento della geometria in input (vedi anche Explode lines) |
shortest_line |
Restituisce la linea più breve che unisce due geometrie. La linea risultante inizierà dalla geometria 1 e terminerà alla geometria 2 |
simplify |
Semplifica una geometria eliminando nodi utilizzando una soglia basata sulla distanza (vedi anche Simplify) |
simplify_vw |
Semplifica una geometria eliminando nodi utilizzando una soglia basata sull’area (vedi anche Simplify) |
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 (vedi anche Single sided buffer) |
smooth |
Smussa una geometria aggiungendo altri nodi che arrotondano gli angoli della geometria (vedi anche Smooth) |
start_point |
Restituisce il primo nodo da una geometria (vedi anche Extract specific vertices) |
sym_difference |
Restituisce una geometria che rappresenta le porzioni di due geometrie che non si intersecano (vedi anche Symmetrical difference) |
tapered_buffer |
Crea un buffer lungo una geometria lineare dove il diametro del buffer varia uniformemente sulla lunghezza della linea (vedi anche Tapered buffers) |
touches |
Verifica se una geometria tocca un’altra. Restituisce 1 (vero) se le geometrie hanno almeno un punto in comune, ma i loro interni non si intersecano |
transform |
Restituisce la geometria trasformata dal SR sorgente al SR di destinazione (vedi anche Reproject layer) |
translate |
Restituisce una versione traslata di una geometria. I calcoli sono nel sistema di riferimento spaziale della geometria (vedi anche Translate) |
union |
Restituisce una geometria che rappresenta l’unione dell’insieme dei punti delle geometrie |
wedge_buffer |
Restituisce un buffer a forma di cuneo che ha origine da una geometria puntuale con un angolo e con dei raggi (vedere anche Create wedge buffers) |
within (a,b) |
Verifica se una geometria si trova all’interno di un’altra. Restituisce 1 (vero) se la geometria a è completamente all’interno della geometria b |
x |
Restituisce la coordinata X di una geometria puntuale o la coordinata X del centroide per una geometria non puntuale |
x_max |
Restituisce la coordinata X massima di una geometria. I calcoli sono nel Sistema di riferimento spaziale di questa geometria |
x_min |
Restituisce la coordinata X minima di una geometria. I calcoli sono nel Sistema di riferimento spaziale di questa geometria |
y |
Restituisce la coordinata Y di una geometria puntuale o la coordinata Y del centroide per una geometria non puntuale |
y_max |
Restituisce la coordinata Y massima di una geometria. I calcoli sono nel Sistema di riferimento spaziale di questa geometria |
y_min |
Restituisce la coordinata Y minima di una geometria. I calcoli sono nel Sistema di riferimento spaziale di questa geometria |
z |
Restituisce la coordinata Z di una geometria puntuale |
Alcuni esempi:
Restituire la coordinata X del centroide della geometria corrente
x( $geometry )
Generare un valore in base all’area della geometria:
CASE WHEN $area > 10 000 THEN 'Larger' ELSE 'Smaller' END
You can manipulate the current geometry using the variable
$geometry
to create a buffer or get a point on the geometry’s surface:buffer( $geometry, 10 ) point_on_surface( $geometry )
Given a point feature, generate a closed line (using
make_line
) around the point’s geometry:make_line( -- using an array of points placed around the original array_foreach( -- list of angles for placing the projected points (every 90°) array:=generate_series( 0, 360, 90 ), -- translate the point 20 units in the given direction (angle) expression:=project( $geometry, distance:=20, azimuth:=radians( @element ) ) ) )
14.2.2.13. Funzioni per il Layout¶
Questo gruppo contiene funzioni per manipolare le proprietà degli oggetti del layout di stampa.
Funzioni |
Descrizione |
---|---|
item_variables |
Restituisce una mappa delle variabili da un oggetto del layout dentro il layout. |
An example:
Seleziona la scala della “Mappa 0” nel layout di stampa corrente:
map_get( item_variables('Map 0'), 'map_scale')
14.2.2.14. Layer della Mappa¶
Questo gruppo contiene un elenco dei layer disponibili nel progetto corrente. Questo offre un modo conveniente per scrivere espressioni che si riferiscono a layer multipli, come quando si eseguono query aggrega, attributo o spaziale.
It also provides some convenient functions to manipulate layers.
Funzioni |
Descrizione |
---|---|
decode_uri |
Takes a layer and decodes the uri of the underlying data provider. Available information depends on the data provider type. |
14.2.2.15. 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.
Funzioni |
Descrizione |
---|---|
from_json |
Loads a json-formatted string |
hstore_to_map |
Crea una mappa da una stringa in formato hstore |
json_to_map |
Crea una mappa da una stringa in formato json |
map |
Restituisce una mappa con tutte le chiavi ed i valori passati come coppie di parametri |
map_akeys |
Restituisce tutte le chiavi di una mappa come un array |
map_avals |
Restituisce tutti valori di una mappa come un array |
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. |
map_delete |
Restituisce una mappa con il valore della corrispondente chiave e valore rimossi |
map_exist |
Restituisce vero se la chiave data esiste nella mappa |
map_get |
Restituisce il valore di una mappa, passando la sua chiave |
map_insert |
Restituisce una mappa con una chiave/valore aggiunto |
map_to_hstore |
Combina gli elementi della mappa in una stringa in formato hstore |
map_to_json |
Combina gli elementi della mappa in una stringa in formato json |
to_json |
Creates a json-formatted string from a map, an array or other value |
14.2.2.16. Funzioni Matematiche¶
Questo gruppo contiene funzioni matematiche (ad es. Radice quadrata, seno e coseno).
Funzioni |
Descrizione |
---|---|
abs |
Restituisce il valore assoluto di un numero |
acos |
Restituisce l’arcocoseno di un valore in radianti |
asin |
Restituisce l’arcoseno di un valore in radianti |
atan |
Restituisce l’arcotangente di un valore in radianti |
atan2(y,x) |
Restituisce l’arcotangente di Y/X utilizzando i segni dei due argomenti per determinare il quadrante del risultato |
azimuth(a,b) |
Restituisce l’azimut a nord come angolo in radianti misurato in senso orario dalla verticale sul punto a al punto b |
ceil |
Arrotonda un numero verso l’alto |
clamp |
Limita un valore in ingresso a un intervallo specificato |
cos |
Returns the cosine of an angle in radians |
degrees |
Converte da radianti a gradi |
exp |
Restituisce un valore esponenziale |
floor |
Arrotonda un numero verso il basso |
inclination |
Restituisce l’inclinazione misurata dallo zenit (0) al nadir (180) del punto_a al punto_b. |
ln |
Restituisce il logaritmo naturale dell’espressione immessa |
log |
Restituisce il valore del logaritmo immesso in una data base |
log10 |
Restituisce il valore del logaritmo di base 10 dell’espressione immessa |
max |
Restituisce il valore più grande non nullo in un insieme di valori |
min |
Restituisce il valore più piccolo non nullo in un insieme di valori |
pi |
Restituisce il valore di pi greco per i calcoli |
radians |
Converte da gradi a radianti |
rand |
Restituisce il numero intero casuale nell’intervallo specificato dal parametro minimo e massimo (incluso) |
randf |
Restituisce il numero reale casuale all’interno dell’intervallo specificato dal parametro minimo e massimo (incluso) |
round |
Arrotonda al numero di cifre decimali |
scale_exp |
Trasforma un determinato valore da un dominio di input a un intervallo di output utilizzando una curva esponenziale |
scale_linear |
Trasforma un determinato valore da un dominio di input a un intervallo di output utilizzando l’interpolazione lineare |
sin |
Returns the sine of an angle in radians |
sqrt |
Restituisce la radice quadrata di un valore |
tan |
Returns the tangent of an angle in radians |
14.2.2.17. 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 |
Compares two values and evaluates to 1 if the left value is less than or equal to the right value |
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» |
Value of the field Column_name, take care to not be confused with simple quote, see below |
“string” |
valore stringa, fare attenzione a non essere confuso gli apici doppi, vedi sopra |
NULL |
valore nullo |
a IS NULL |
a ha valore nullo |
a IS NOT NULL |
a contiene un valore |
a IN (value[,value]) |
a ha valore contenuto nei valori in lista |
a NOT IN (value[,value]) |
il valore di a non è tra i valori in lista |
Alcuni esempi:
Unire una stringa e un valore da un nome di colonna:
'My feature''s id is: ' || "gid"
Test if the «description» attribute field starts with the “Hello” string in the value (note the position of the
%
character):"description" LIKE 'Hello%'
14.2.2.18. Processing Functions¶
This group contains functions that operate on processing algorithms.
Funzioni |
Descrizione |
---|---|
parameter |
Returns the value of a processing algorithm input parameter |
14.2.2.19. Funzioni Raster¶
Questo gruppo contiene funzioni che operano sui layer raster.
Funzioni |
Descrizione |
---|---|
raster_statistic |
Restituisce statistiche da un layer raster |
raster_value |
Restituisce il valore della banda raster nel punto dato |
14.2.2.20. Funzioni relative ai record e agli attributi¶
Questo gruppo contiene funzioni che operano sugli identificativi dei record.
Funzioni |
Descrizione |
---|---|
$currentfeature |
Restituisce l’elemento corrente da valutare. Questo può essere usato con la funzione “attribute” per valutare i valori degli attributi dell’elemento corrente. |
$id |
Restituisce l’ID della geometria della riga corrente |
attribute |
Restituisce il valore di uno specifico attributo di una geometria |
attributes |
Returns a map of all attributes from a feature, with field names as map keys |
get_feature |
Restituisce la prima geometria di un layer che corrisponde a un determinato valore di attributo |
get_feature_by_id |
Restituisce la geometria di un layer che corrisponde a un determinato valore di ID |
is_selected |
Restituisce se è stata selezionata una geometria |
num_selected |
Restituisce il numero di geometrie selezionate su un dato layer |
represent_value |
Restituisce il metodo di rappresentazione configurato per un campo (conveniente con alcune tipologie widget) |
sql_fetch_and_increment |
Manage autoincrementing values in SQLite databases |
uuid |
Genera un Identificatore Univoco Universale (UUID) per ogni riga. Ogni UUID è lungo 38 caratteri |
Alcuni esempi:
Restituire la prima geometria nel layer «LayerA» il cui campo «id» ha lo stesso valore del campo «name» della geometria corrente (una specie di jointure) :
get_feature( 'layerA', 'id', attribute( $currentfeature, 'name') )
Calcolare l’area della geometria unita con l’esempio precedente:
area( geometry( get_feature( 'layerA', 'id', attribute( $currentfeature, 'name') ) ) )
14.2.2.21. Funzioni Stringa¶
Questo gruppo contiene le funzioni che operano sulle stringhe (ad esempio sostituisci, converti in maiuscolo).
Funzioni |
Descrizione |
---|---|
char |
Restituisce il carattere associato a un codice Unicode |
concat |
Concatena più stringhe in una |
format |
Formatta una stringa usando gli argomenti forniti |
format_date |
Formatta un tipo data o una stringa in un formato stringa personalizzato |
format_number |
Restituisce un numero formattato con il separatore delle impostazioni internazionali per le migliaia (inoltre tronca il numero al numero di posti forniti) |
left(string, n) |
Restituisce una sottostringa che contiene gli n caratteri più a sinistra della stringa |
length |
Restituisce la lunghezza di una stringa (o la lunghezza di una geometria di tipo linestring) |
lower |
converte una stringa in lettere minuscole |
lpad |
Restituisce una stringa riempita a sinistra alla larghezza specificata, usando il carattere di riempimento |
regexp_match |
Restituisce la prima posizione che corrisponde a un’espressione regolare all’interno di una stringa, o 0 se la sottostringa non viene trovata. |
regexp_replace |
Restituisce una stringa con la parte che soddisfa l’espressione regolare sostituita |
regexp_substr |
Restituisce la parte di una stringa che corrisponde all’espressione regolare fornita |
replace |
Restituisce una stringa con la stringa fornita, l’array o la mappa di stringhe sostituite da una stringa, array di stringhe o valori associati. |
right(string, n) |
Restituisce una sottostringa che contiene gli n caratteri più a destra della stringa |
rpad |
Restituisce una stringa riempita a destra alla larghezza specificata, usando il carattere di riempimento |
strpos |
Restituisce la prima posizione di corrispondenza di una sottostringa dentro un’altra stringa o 0 se la sottostringa non viene trovata. |
substr |
Restituisce una parte di una stringa |
title |
Converte tutte le parole di una stringa in “Titolo maiuscolo” (tutte le parole in minuscolo con la prima lettera maiuscola) |
trim |
Rimuove tutti gli spazi bianchi iniziali e finali (spazi, tabulazioni, ecc.) da una stringa |
upper |
Converte una stringa in lettere maiuscole |
wordwrap |
Returns a string wrapped to a maximum/minimum number of characters |
Informazioni sulla concatenazione dei campi
You can concatenate strings or field values using either ||
or +
operators or the concat
function, with some special characteristics:
The
+
operator also means sum up expression, so if you have an integer (field or numeric value) operand, this can be error prone and you better use the others:'My feature''s id is: ' + "gid" => triggers an error as gid is an integer
When any of the arguments is a NULL value, either
||
or+
will return a NULL value. To return the other arguments regardless the NULL value, you may want to use theconcat
function:"country_name" || NULL => NULL concat('My feature''s id is: ', NULL) => My feature's id is concat("firstname", "nickname", "lastname") => Chuck Norris (if empty nickname) "firstname" + "nickname" + "lastname" => NULL (if one field is empty)
For other cases, do at your convenience:
'My country is ' + "country_name" + ' (' + "country_code" + ')' 'My country is ' || "country_name" || ' (' || "country_code" || ')' concat('My country is ', "country_name", ' (', "country_code", ')') # All the above return: My country is France (FR)
14.2.2.22. Variabili¶
This group contains dynamic variables related to the application, the project file and other settings. The availability of variables depends on the context:
dalla finestra di dialogo Proprietà layer
dal layout di stampa
To use these variables in an expression, they should be preceded by the
@
character (e.g, @row_number
).
Funzioni |
Descrizione |
---|---|
algorithm_id |
The unique ID of an algorithm |
atlas_feature |
The current atlas feature (as feature object) |
atlas_featureid |
The current atlas feature ID |
atlas_featurenumber |
The current atlas feature number in the layout |
atlas_filename |
The current atlas file name |
atlas_geometry |
The current atlas feature geometry |
atlas_layerid |
The current atlas coverage layer ID |
atlas_layername |
The current atlas coverage layer name |
atlas_pagename |
The current atlas page name |
atlas_totalfeatures |
The total number of features in atlas |
canvas_cursor_point |
The last cursor position on the canvas in the project’s geographical coordinates |
cluster_color |
The color of symbols within a cluster, or NULL if symbols have mixed colors |
cluster_size |
The number of symbols contained within a cluster |
current_feature |
The feature currently being edited in the attribute form or table row |
current_geometry |
The geometry of the feature currently being edited in the form or the table row |
fullextent_maxx |
Maximum x value from full canvas extent (including all layers) |
fullextent_maxy |
Maximum y value from full canvas extent (including all layers) |
fullextent_minx |
Minimum x value from full canvas extent (including all layers) |
fullextent_miny |
Minimum y value from full canvas extent (including all layers) |
geometry_part_count |
The number of parts in rendered feature’s geometry |
geometry_part_num |
The current geometry part number for feature being rendered |
geometry_point_count |
The number of points in the rendered geometry’s part |
geometry_point_num |
The current point number in the rendered geometry’s part |
grid_axis |
The current grid annotation axis (eg, “x” for longitude, “y” for latitude) |
grid_number |
The current grid annotation value |
item_id |
The layout item user ID (not necessarily unique) |
item_uuid |
The layout item unique ID |
layer |
The current layer |
layer_id |
The ID of current layer |
layer_name |
The name of current layer |
layout_dpi |
The composition resolution (DPI) |
layout_name |
The layout name |
layout_numpages |
The number of pages in the layout |
layout_page |
The page number of the current item in the layout |
layout_pageheight |
The active page height in the layout (in mm) |
layout_pagewidth |
The active page width in the layout (in mm) |
legend_column_count |
The number of columns in the legend |
legend_filter_by_map |
Indicates if the content of the legend is filtered by the map |
legend_filter_out_atlas |
Indicates if the atlas is filtered out of the legend |
legend_split_layers |
Indicates if layers can be split in the legend |
legend_title |
The title of the legend |
legend_wrap_string |
The character(s) used to wrap the legend text |
map_crs |
The Coordinate reference system of the current map |
map_crs_acronym |
The acronym of the Coordinate reference system of the current map |
map_crs_definition |
The full definition of the Coordinate reference system of the current map |
map_crs_description |
The name of the Coordinate reference system of the current map |
map_crs_ellipsoid |
The acronym of the ellipsoid of the Coordinate reference system of the current map |
map_crs_proj4 |
The Proj4 definition of the Coordinate reference system of the current map |
map_crs_wkt |
The WKT definition of the Coordinate reference system of the current map |
map_extent |
The geometry representing the current extent of the map |
map_extent_center |
The point feature at the center of the map |
map_extent_height |
The current height of the map |
map_extent_width |
The current width of the map |
map_id |
The ID of current map destination. This will be “canvas” for canvas renders, and the item ID for layout map renders |
map_layer_ids |
The list of map layer IDs visible in the map |
map_layers |
The list of map layers visible in the map |
map_rotation |
The current rotation of the map |
map_scale |
The current scale of the map |
map_units |
The units of map measurements |
notification_message |
Contenuto del messaggio di notifica spedito dalla sorgente (disponibile solo per azioni provenienti da notifiche dal sorgente). |
parent |
Si riferisce alla geometria del layer padre, fornendo accesso ai suoi attributi e alla sua geometria quando si filtra una funzione aggregate. |
project_abstract |
The project abstract, taken from project metadata |
project_area_units |
The area unit for the current project, used when calculating areas of geometries |
project_author |
The project author, taken from project metadata |
project_basename |
The basename of current project’s filename (without path and extension) |
project_creation_date |
The project creation date, taken from project metadata |
project_crs |
The Coordinate reference system of the project |
project_crs_arconym |
The acronym of the Coordinate reference system of the project |
project_crs_definition |
The full definition of the Coordinate reference system of the project |
project_crs_description |
The description of the Coordinate reference system of the project |
project_crs_ellipsoid |
The ellipsoid of the Coordinate reference system of the project |
project_crs_proj4 |
The Proj4 representation of the Coordinate reference system of the project |
project_crs_wkt |
The WKT (well known text) representation of the coordinate reference system of the project |
project_distance_units |
The distance unit for the current project, used when calculating lengths of geometries and distances |
project_ellipsoid |
The name of the ellipsoid of the current project, used when calculating geodetic areas or lengths of geometries |
project_filename |
The filename of the current project |
project_folder |
The folder of the current project |
project_home |
The home path of the current project |
project_identifier |
The project identifier, taken from the project’s metadata |
project_keywords |
The project keywords, taken from the project’s metadata |
project_last_saved |
Date/time when project was last saved. |
project_path |
The full path (including file name) of the current project |
project_title |
The title of current project |
project_units |
The units of the project’s CRS |
qgis_locale |
The current language of QGIS |
qgis_os_name |
The current Operating system name, eg “windows”, “linux” or “osx” |
qgis_platform |
The QGIS platform, eg “desktop” or “server” |
qgis_release_name |
The current QGIS release name |
qgis_short_version |
The current QGIS version short string |
qgis_version |
The current QGIS version string |
qgis_version_no |
The current QGIS version number |
row_number |
Memorizza il numero della riga corrente |
snapping_results |
Dà accesso ai risultati dell’aggancio durante la digitalizzazione di una geometria (disponibile solo nella funzionalità di aggiunta) |
scale_value |
The current scale bar distance value |
symbol_angle |
The angle of the symbol used to render the feature (valid for marker symbols only) |
symbol_color |
The color of the symbol used to render the feature |
symbol_count |
The number of features represented by the symbol (in the layout legend) |
symbol_id |
The Internal ID of the symbol (in the layout legend) |
symbol_label |
The label for the symbol (either a user defined label or the default autogenerated label - in the layout legend) |
user_account_name |
The current user’s operating system account name |
user_full_name |
The current user’s operating system user name |
value |
The current value |
with_variable |
Consente di impostare una variabile da utilizzare all’interno di un’espressione ed evitare di ricalcolare ripetutamente lo stesso valore |
Alcuni esempi:
Return the X coordinate of a map item center in layout:
x( map_get( item_variables( 'map1'), 'map_extent_center' ) )
Return, for each feature in the current layer, the number of overlapping airport features:
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.2.2.23. Funzioni recenti¶
This group contains recently used functions. Depending on the context of its usage (feature selection, field calculator, generic), recently applied expressions are added to the corresponding list (up to ten expressions), sorted from more to less recent. This makes it easy to quickly retrieve and reapply previously used expressions.
14.2.3. Editor delle Funzioni¶
Con la scheda Editor delle funzioni, puoi scrivere le tue funzioni nel linguaggio Python. Ciò fornisce un modo pratico e comodo per affrontare esigenze particolari che non sarebbero coperte dalle funzioni predefinite.

Fig. 14.66 La scheda Editor delle funzioni¶
Per creare una nuova funzione:
Inserisci un nome da utilizzare nel modulo che compare e premi OK.
Un nuovo oggetto con il nome da te fornito viene aggiunto nel pannello sinistro della scheda Editor delle funzioni; si tratta di un file
.py
basato sul file del modello predefinito di QGIS e memorizzato nella cartella/python/expressions
sotto la directory attiva :ref:`user profile `.Il pannello di destra mostra il contenuto del file: un template di script python. Aggiorna il codice e il suo aiuto in base alle tue esigenze.
Premi il pulsante
Salva e Carica Funzioni. La funzione scritta viene aggiunta all’albero delle funzioni nella scheda Espressione, di default nel gruppo
Custom
.Goditi la tua nuova funzione.
Se la funzione necessita di richiede miglioramenti, abilita la scheda Editor delle Funzioni, fai le modifiche e premi nuovamente il pulsante
Salva e Carica Funzioni per renderle disponibili nel file, quindi in qualsiasi scheda di espressione.
Le funzioni personalizzate Python sono memorizzate nella directory del profilo utente, il che significa che ad ogni avvio di QGIS, caricherà automaticamente tutte le funzioni definite con il profilo utente corrente. Tieni presente che le nuove funzioni vengono salvate solo nella cartella /python/expressions
e non nel file di progetto. Se condividi un progetto che utilizza una delle tue funzioni personalizzate, dovrai anche condividere il file .py
nella cartella /python/expressions
.
Ecco un breve esempio su come creare proprie funzioni:
from qgis.core import *
from qgis.gui import *
@qgsfunction(args='auto', group='Custom')
def my_sum(value1, value2, feature, parent):
"""
Calculates the sum of the two parameters value1 and value2.
<h2>Example usage:</h2>
<ul>
<li>my_sum(5, 8) -> 13</li>
<li>my_sum("field1", "field2") -> 42</li>
</ul>
"""
return value1 + value2
Il breve esempio crea una funzione my_sum
che ti darà una funzione con due valori. Quando si usa la funzione args='auto'
il numero di argomenti richiesti per la funzione sarà calcolato dal numero di argomenti con cui la funzione è stata definita in Python (minus 2 - feature
, e parent
).
Questa funzione può quindi essere utilizzata nell’espressione:

Fig. 14.67 Funzione personalizzata aggiunta alla scheda Espressione¶
Ulteriori informazioni sulla creazione di codice Python possono essere trovate nel PyQGIS cookbook.