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 …

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:

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

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.

../../../_images/function_list.png

La scheda Espressioni

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

Restituisce tutte le stringhe aggregate da un campo o un’espressione unita da un delimitatore

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

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

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

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


Alcuni esempi

  • Restituisce un valore se la prima condizione è vera, altrimenti un altro valore

    CASE WHEN "software" LIKE '%QGIS%' THEN 'QGIS' ELSE 'Other' END
    

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

Funzioni personalizzate

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

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

Estrae la parte dell’anno da una data o datetime o il numero di anni da un intervallo


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)

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.

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

Funzioni Generali

Questo gruppo contiene funzioni assortite generali.

Funzioni

Descrizione

env

Acquisisce una variabile d’ambiente e restituisce il suo contenuto in formato stringa. Se la variabile non viene trovata, verrà restituito NULL.

eval

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

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

Restituisce il valore memorizzato all’interno di una variabile specificata. Vedi funzioni variabili di seguito

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.

Funzioni Geometria

Questo gruppo contiene funzioni che operano su caratteristiche geometriche (ad es. Lunghezza, 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

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)

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

Restituisce fondamentalmente una misura di quanto sono simili o dissimili 2 geometrie, con una distanza inferiore che indica geometrie più simili.

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

line_merge

Restituisce una geometria (Multi-)LineString, in cui tutte le LineString connesse dalla geometria in input sono state unite in una singola linestring.

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

Crea una geometria lineare da una serie di geometrie punto

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_regular_polygon

Crea un poligono regolare

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

Restituisce un punto proiettato da un punto di partenza utilizzando una distanza e rilevamento (azimut) in radianti (vedi anche 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_min

Restituisce la coordinata X minima di una geometria. I calcoli sono nel Sistema di riferimento spaziale di questa geometria

x_max

Restituisce la coordinata X massima 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_min

Restituisce la coordinata Y minima di una geometria. I calcoli sono nel Sistema di riferimento spaziale di questa geometria

y_max

Restituisce la coordinata Y massima 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:

  • Puoi manipolare la geometria corrente con la variabile $geometry per creare un buffer o ottenere il punto sulla superficie:

    buffer( $geometry, 10 )
    point_on_surface( $geometry )
    
  • 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
    

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.


Alcuni esempi

  • Seleziona la scala della “Mappa 0” nel layout di stampa corrente:

    map_get( item_variables('Map 0'), 'map_scale')
    

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.

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

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

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

Restituisce il coseno di un angolo in radianti

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

Restituisce il seno di un angolo in radianti

sqrt

Restituisce la radice quadrata di un valore

tan

Restituisce la tangente di un angolo

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 restituisce 1 se il valore di sinistra è minore o uguale al valore di destra

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 «column name»

Valore del nome della colonna del campo, fare attenzione a non essere confuso con i semplici apici, vedi sotto

“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


Nota

Informazioni sulla concatenazione dei campi

Puoi concatenare le stringhe utilizzando o || o +. Quest’ultimo ha anche il significato di somma. Quindi, se si dispone di un numero intero (campo o valore numerico) questo può essere causa di errore. In questo caso, si dovrebbe usare ||. Se concatenate due valori di stringa, è possibile utilizzare entrambi.

Alcuni esempi:

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

    'My feature''s id is: ' || "gid"
    'My feature''s id is: ' + "gid" => triggers an error as gid is an integer
    "country_name" + '(' + "country_code" + ')'
    "country_name" || '(' || "country_code" || ')'
    
  • Testare se il campo di attributo «descrizione» inizia con la stringa «Hello» (notare la posizione del carattere %):

    "description" LIKE 'Hello%'
    

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

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

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)

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

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

Restituisce una stringa posta a capo ad un massimo/minimo numero di caratteri

Funzioni Variabili

Questo gruppo contiene variabili dinamiche relative all’applicazione, al file di progetto e ad altre impostazioni. Significa che alcune funzioni potrebbero non essere disponibili in base al 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 utilizzare queste funzioni in un’espressione, dovrebbero essere precedute da un carattere @ (ad esempio, @row_number). Riguardano:

Funzioni

Descrizione

algorithm_id

Restituisce l’ID univoco di un algoritmo

atlas_feature

Restituisce la geometria atlante corrente (come oggetto geometria)

atlas_featureid

Restituisce l’ID della geometria atlante corrente

atlas_featurenumber

Restituisce il numero dell’oggetto corrente dell’atlante nel layout

atlas_filename

Restituisce il nome del file atlante corrente

atlas_geometry

Restituisce la geometria dell’elemento corrente dell’atlante

atlas_layerid

Restituisce l’ID del layer corrente di copertura dell’atlante.

atlas_layername

Restituisce il nome del layer corrente di copertura dell’atlante.

atlas_pagename

Restituisce il nome della pagina atlante corrente

atlas_totalfeatures

Restituisce il numero totale di geometrie nell’atlante

canvas_cursor_point

Restituisce l’ultima posizione del cursore sulla mappa nelle coordinate geografiche del progetto

cluster_color

Restituisce il colore dei simboli all’interno di un gruppo, o NULL se i simboli hanno colori misti.

cluster_size

Restituisce il numero di simboli contenuti in un gruppo

current_feature

Restituisce l’oggetto attualmente in fase di modifica nel modulo attributo o nella riga della tabella.

current_geometry

Restituisce la geometria dell’oggetto attualmente in fase di modifica nel modulo o nella riga della tabella.

geometry_part_count

Restituisce il numero di parti nella geometria dell’oggetto visualizzato

geometry_part_num

Restituisce il numero della parte della geometria corrente dell’oggetto che sarà visualizzato

geometry_point_count

Restituisce il numero di punti nella parte della geometria visualizzata

geometry_point_num

Restituisce il numero del punto corrente nella parte della geometria visualizzata

grid_axis

Restituisce l’annotazione corrente dell’asse del reticolo (ad esempio “X” per longitudine, “y” per latitudine)

grid_number

Restituisce il valore corrente dell’annotazione del reticolo

item_id

Restituisce l’ID utente dell’oggetto del layout (non necessariamente univoco)

item_uuid

Restituisce l’ID univoco dell’oggetto del layout

layer

Restituisce il layer corrente

layer_id

Restituisce l’ID del layer corrente

layer_name

Restituisce il nome del layer corrente

layout_dpi

Restituisce la risoluzione della composizione di stampa (DPI)

layout_name

Restituisce il nome del layout

layout_numpages

Restituisce il numero di pagine nel layout

layout_page

Restituisce il numero di pagina dell’oggetto corrente nel layout

layout_pageheight

Restituisce l’altezza della pagina attiva nel layout (in mm)

layout_pagewidth

Restituisce la larghezza della pagina attiva nel layout (in mm)

map_crs

Restituisce il sistema di riferimento delle coordinate della mappa corrente

map_crs_definition

Restituisce la definizione completa del sistema di riferimento delle Coordinate della mappa corrente

map_extent

Restituisce la geometria che rappresenta l’estensione corrente della mappa

map_extent_center

Restituisce il punto centrale della mappa

map_extent_height

Restituisce l’altezza corrente della mappa

map_extent_width

Restituisce la larghezza corrente della mappa

map_id

Restituisce l’ID della destinazione della mappa corrente. Questo sarà “canvas” per la visualizzazione della mappa e l’ID dell’oggetto per le visualizzazioni in mappa del layout

map_layer_ids

Restituisce l’elenco degli ID dei layer visibili nella mappa

map_layers

Restituisce l’elenco dei layer visibili nella mappa

map_rotation

Restituisce la rotazione corrente della mappa

map_scale

Restituisce la scala corrente della mappa

map_units

Restituisce le unità di misura della mappa

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

Restituisce l’abstract del progetto, tratto dai metadati del progetto

project_author

Restituisce l’autore del progetto, tratto dai metadati del progetto

project_basename

Restituisce il nome di base del nome del file del progetto corrente (senza percorso ed estensione)

project_creation_date

Restituisce la data di creazione del progetto, ricavata dai metadati del progetto

project_crs

Restituisce il sistema di riferimento delle Coordinate del progetto

project_crs_definition

Restituisce la definizione completa del sistema di riferimento delle Coordinate del progetto

project_filename

Restituisce il nome del file del progetto corrente

project_folder

Restituisce la cartella del progetto corrente

project_home

Restituisce il percorso della cartella per il progetto corrente

project_identifier

Restituisce l’identificatore del progetto, tratto dai metadati del progetto

project_keywords

Restituisce le parole chiave del progetto, tratte dai metadati del progetto

project_path

Restituisce il percorso completo (incluso il nome del file) del progetto corrente

project_title

Restituisce il titolo del progetto corrente

qgis_locale

Restituisce la lingua corrente di QGIS

qgis_os_name

Restituisce il nome corrente del sistema operativo, ad esempio «windows», «linux» o «osx»

qgis_platform

Restituisce la piattaforma QGIS, ad esempio “desktop” o “server”

qgis_release_name

Restituisce il nome della versione corrente di QGIS

qgis_short_version

Restituisce la stringa della versione corrente di QGIS

qgis_version

Restituisce la stringa della versione corrente di QGIS

qgis_version_no

Restituisce il numero di versione corrente di QGIS

snapping_results

Dà accesso ai risultati dell’aggancio durante la digitalizzazione di una geometria (disponibile solo nella funzionalità di aggiunta)

symbol_angle

Restituisce l’angolo del simbolo utilizzato per la visualizzazione dell’elemento (valido solo per i simboli marker)

symbol_color

Restituisce il colore del simbolo utilizzato per la visualizzazione dell’elemento

user_account_name

Restituisce il nome corrente dell’account utente nel sistema operativo

user_full_name

Restituisce il nome corrente dell’utente nel sistema operativo

row_number

Memorizza il numero della riga corrente

value

Restituisce 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


Alcuni esempi:

  • Restituisce la coordinata X di un oggetto della mappa da inserire in un’etichetta nel layout:

    x( map_get( item_variables( 'map1'), 'map_extent_center' ) )
    
  • Restituisce per ogni geometria del layer corrente il numero di aeroporti che si sovrappongono:

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

Funzioni recenti

Questo gruppo contiene le funzioni utilizzate di recente. A seconda del contesto del suo utilizzo (selezione delle geometrie, calcolatore di campo, generico), ogni espressione applicata viene aggiunta alla lista corrispondente (fino a dieci espressioni), ordinata dalla più recente alla meno recente. Questo aiuta a recuperare e riapplicare rapidamente qualsiasi espressione usata in precedenza.

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.

../../../_images/function_editor.png

La scheda Editor delle funzioni

Per creare una nuova funzione:

  1. Premi il pulsante signPlus New File.

  2. 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 `.

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

  4. Premi il pulsante start Salva e Carica Funzioni. La funzione scritta viene aggiunta all’albero delle funzioni nella scheda Espressione, di default nel gruppo Custom.

  5. Goditi la tua nuova funzione.

  6. Se la funzione necessita di richiede miglioramenti, abilita la scheda Editor delle Funzioni, fai le modifiche e premi nuovamente il pulsante start 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:

../../../_images/customFunction.png

Funzione personalizzata aggiunta alla scheda Espressione

Ulteriori informazioni sulla creazione di codice Python possono essere trovate nel PyQGIS cookbook.