Vai al contenuto

Gruppo Geometria

Abstract

Questo gruppo contiene funzioni che operano sugli oggetti geometrici es: lunghezza, area.

Area lunghezza Predicati Overlay_* coordinate vari
$area $length contains overlay_contains $x centroid
area length crosses overlay_crosses $y buffer
- $perimeter disjoint overlay_disjoint x
- perimeter intersects overlay_equals y
- - overlaps overlay_intersects z
- - touches overlay_nearest m
- - within overlay_touches -
- - - overlay_within -

$area

Definizione

Restituisce l'area della geometria corrente. L'area calcolata da questa funzione rispetta sia le impostazioni dell'ellissoide del progetto corrente sia delle unità di misura. Per esempio, se è stato impostato un ellissoide per il progetto allora l'area calcolata sarà ellisoidica altrimenti se non è stato impostato alcun ellissoide l'area calcolata sarà planimetrica.

Sintassi:

  • $area

Esempi

* $area → 131196498,619546

Nota bene

se il SR del progetto in cui si sta calcolando l'area ($area) fosse un sistema proiettato (es:EPSG 3003/4; 32632/33/34 ecc..) allora l'unità di misura sarebbe il metro, invece se il SR del progetto fosse EPSG 4326, cioè un sistema geografico, allora l'unità di misura dell'area sarebbe gradi e quindi poco comprensibile e valori piccoli (0.00001).

Attenzione!

in generale $area <> area($geometry)

$geometry

Definizione

Restituisce la geometria dell'elemento attuale. Può essere usato per il processamento con altre funzioni.

Sintassi:

  • $geometry

Esempi

  • geomToWKT( $geometry ) → POINT(6 50)
  • area($geoamtry) → 1234567.89 mq
  • perimeter($geometry) → 25689.25 m

Osservazioni

il $ indica che è relativo all'elemento corrente e non ha bisogno di argomenti.


$length

Definizione

Restituisce la lunghezza di una linestring. Se hai bisogno della lunghezza del bordo di un poligono, utilizza invece $perimeter. La lunghezza calcolata da questa funzione rispetta le impostazioni sia dell'ellissoide sia delle unità di misura del progetto corrente. Per esempio, se è stato impostato un ellissoide per il progetto allora la lunghezza calcolata sarà ellisoidica altrimenti se non è stato impostato alcun ellissoide la lunghezza calcolata sarà planimetrica.

Sintassi:

  • $length

Esempi

* $length → 42.4711 

Attenzione!

Come evidenziano nella definizione della funzione, $length calcola la lunghezza rispettando le impostazioni di progetto:

Occorre cambiare entrambe le impostazioni, sia quelle dell'ellissoide → 'None/Planimetric' sia le Unità di misura per le distanze' → Gradi

Queste modofiche non valgono per l'etichettatura, la lunghezza sarà quella relativa alla geometria e quindi al suo SR.

Osservazioni

il $ indica che è relativo all'elemento corrente e non ha bisogno di argomenti.


$perimeter

Definizione

Restituisce la lunghezza del perimetro della geometria corrente. Il perimetro calcolato da questa funzione rispetta le impostazioni sia dell'ellissoide sia delle unità di misura del progetto corrente. Per esempio, se è stato impostato un ellissoide per il progetto allora il perimetro calcolato sarà ellisoidico altrimenti se non è stato impostato alcun ellissoide il perimetro calcolato sarà planimetrico.

Sintassi:

  • $perimeter

Esempi

- $perimeter → 2545897.26

Nota

Si utilizza SOLO per i poligoni, nel caso di feature lineari $length

Osservazioni

il $ indica che è relativo all'elemento corrente e non ha bisogno di argomenti.


$x

Definizione

Restituisce la coordinata x della geometria corrente.

Sintassi:

  • $x

Esempi

* $x → 12.2568971

Attenzione!

La funzione $x restituisce la coordinata x della geometria corrente purchè sia un POINT altrimenti restituisce NULL (vedi screenshot)

Osservazioni

Per ottenere le coordinate x o y occorre utilizzare una combinazione di funzioni ed: x($geometry) che vale per qualunque tipologia di geometria (point, linestring, polygon)


$x_at

Definizione

Recupera una coordinata x per la geometria dell'elemento corrente.

Sintassi:

  • $x_at(i)

Argomenti:

  • i indice del punto di una linea (indici partono da 0; valori negativi si applicano dall'ultimo indice, partendo da -1)

Esempi

* $x_at(1) → 12.6882843

Osservazioni

Le lineastring hanno un verso e quindi l'indice 0 indica il primo vertice mentre indici negativi significano che la conta inizia dalla l'ultimo vertice: -10 significa il 10-mo vertice partendo dall'ultimo vertice.


$y

Definizione

Restituisce la coordinata y della geometria corrente.

Sintassi:

  • $y

Esempi

* $y → 12.2568971

Attenzione!

La funzione $y restituisce la coordinata y della geometria corrente purchè sia un POINT altrimenti restituisce NULL (vedi screenshot)

Osservazioni

Per ottenere le coordinate x o y occorre utilizzare una combinazione di funzioni es: y($geometry) che vale per qualunque tipologia di geometria (point, linestring, polygon)


$y_at

Definizione

Recupera una coordinata y per la geometria dell'elemento corrente.

Sintassi:

  • $y_at(i)

Argomenti:

  • i indice del punto di una linea (indici partono da 0; valori negativi si applicano dall'ultimo indice, partendo da -1)

Esempi

* $y_at(1) → 2

Osservazioni

Le lineastring hanno un verso e quindi l'indice 0 indica il primo vertice mentre indici negativi significano che la conta inizia dalla l'ultimo vertice: -10 significa il 10-mo vertice partendo dall'ultimo vertice.


angle_at_vertex

Definizione

Restituisce l'angolo della bisettrice (angolo medio) della geometria per un vertice specifico di una geometria di tipo linestring. Gli angoli sono in gradi in senso orario dal nord.

Sintassi:

  • angle_at_vertex(geometry, vertex)

Argomenti:

  • geometry una geometria di tipo linestring
  • vertex indice vertice, partendo da 0

Esempi

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

Attenzione!

Il primo ed ultimo vertice di una lineastring aperta la funzione restituisce il valore dell'angolo e non la bisettrice.


area

Definizione

Restituisce l'area di un oggetto a geometria poligonale. I calcoli sono sempre planimetrici nel Sistema di Riferimento Spaziale (SR) di detta geometria, e l'unità di misura dell'area restituita è conforme all'unità di misura del SR. Ciò differisce dal calcolo eseguito dalla funzione $area, la quale esegue calcoli ellisoidici basati sull'ellissoide del progetto e sulle impostazioni delle unità di misura dell'area.

Sintassi:

  • area(geometry)

Argomenti:

  • geometry oggetto geometria poligono

Esempi

- area($geometry) → 1234.567

Occhio

Se il SR del layer in cui si sta calcolando l'area (area()) fosse un sistema proiettato (es:EPSG 3003/4; 32632/33/34 ecc..) l'unità di misura sarebbe il metro, invece se il SR del layer fosse EPSG 4326, cioè un sistema geografico, allora l'unità di misura dell'area sarebbe in gradi e quindi poco comprensibile e valori piccoli.

Osservazioni

in generale area($geometry) <> $area

Azimuth

Definizione

Restituisce l'azimut dal nord quale angolo in radianti misurato in senso orario dalla verticale del punto_a al punto_b.

Sintassi:

  • azimuth(point_a, point_b)

Argomenti:

  • point_a geometria punto
  • point_b geometria punto

Esempi

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

Attenzione!

Azimuth per definizione restituisce un angolo in radianti, per trasformarlo in gradi usare la funzione degrees()


boundary

Definizione

Restituisce l'area minima della combinazione dei confini della geometria (cioè il confine topologico della geometria). Per esempio, una geometria poligonale avrà un confine costituito dalle linee di ogni anello nel poligono. Alcuni tipi di geometrie non hanno confini, es collezioni di punti o geometrie e pertanto verrà restituito null.

Sintassi:

  • boundary(geometry)

Argomenti:

  • geometry una geometria

Esempi

- geom_to_wkt(boundary(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))'))) → 'LineString(1 1,0 0,-1 1,1 1)'
- geom_to_wkt(boundary(geom_from_wkt('LineString(1 1,0 0,-1 1)'))) → 'MultiPoint ((1 1),(-1 1))'

Osservazioni

funzione molto utile per la tematizzazione aggiungendo un nuovo layer con geometry generator


bounds

Definizione

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

Sintassi:

  • bounds(geometry)

Argomenti:

  • geometry una geometria

Esempi

- bounds($geometry) → perimetro di delimitazione dell'elemento geometrico corrente
- geom_to_wkt(bounds(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))'))) → 'Polygon ((-1 0, 1 0, 1 1, -1 1, -1 0))'

Osservazioni

funzione molto utile per la tematizzazione aggiungendo un nuovo layer con geometry generator


bounds_height

Definizione

Restituisce l'altezza del perimetro di delimitazione di una geometria. I calcoli sono effettuati nel sistema di riferimento spaziale di tale geometria.

Sintassi:

  • bounds_height(geometry)

Argomenti:

  • geometry una geometria

Esempi

- bounds_height($geometry) → altezza del perimetro di delimitazione dell'elemento geometrico corrente
- bounds_height(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))')) → 1

Osservazioni

La funzione restituisce un numero che corrisponde all'altezza del rettangolo di ingombro di una geometria.


bounds_width

Definizione

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

Sintassi:

  • bounds_width(geometry)

Argomenti:

  • geometry una geometria

Esempi

- bounds_width($geometry) → larghezza del perimetro di delimitazione di $geometry

Osservazioni

La funzione restituisce un numero che corrisponde alla larghezza del rettangolo di ingombro di una geometria.


buffer

Definizione

Restituisce una geometria che rappresenta tutti i punti la cui distanza dalla geometria è minore o uguale alla distanza inserita. I calcoli vengono effettuati nel sistema di riferimento spaziale della geometria.

Sintassi:

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

Argomenti:

  • geometry una geometria
  • distance distanza buffer nelle unità del layer
  • segments numero di segmenti da usare per rappresentare un quarto di cerchio quando è utilizzato uno stile di unione arrotondato. Un numero grande risulta in un buffer più morbido, con più nodi.

Esempi

- buffer($geometry, 10.5) → poligono di $geometry bufferizzato di 10.5 unità

Danger

Utilizzando SR proiettati l'unità di misura è il metro, mentre, per SR geografici è il grado, quindi attenzione al valore della distanza.

Osservazioni:

Nota

La Funzione restituisce SEMPRE un poligono sia per geometry POINT, LINESTRING o POLYGON


buffer_by_m

Definizione

Crea un buffer lungo una geometria linestring in cui il diametro del buffer varia in base ai valori m nei vertici della linea.

Sintassi:

  • buffer_by_m(geometry, segments)

Argomenti:

  • geometry la geometria deve essere una (multi) geometria linestring con valori m.
  • segments numero di segmenti per approssimare le curve del quarto di cerchio nel buffer

Esempi

* buffer_by_m(geometry:=geom_from_wkt('LINESTRINGM(1 2 0.5, 4 2 0.2)'),segments:=8) → Un buffer di larghezza variabile che inizia con un diametro di 0,5 e termina con un diametro di 0,2 lungo la linea.

relativa all'esempio di sopra:

Osservazioni:

QGIS - feature


centroid

Definizione

Restituisce il centro geometrico di una geometria.

Sintassi:

  • centroid(geometry)

Argomenti:

  • geometry una geometria

Esempi

* centroid($geometry) → una geometria punto

Osservazioni

La Funzione restituisce SEMPRE una geometry POINT


close_line

Definizione

Restituisce una linestring chiusa della linestring di input aggiungendo il primo punto alla fine della linea, se non è già chiusa. Se la geometria non è una linestring o una MultiLinestring, il risultato sarà NULL.

Sintassi:

  • close_line(geometry)

Argomenti:

  • geometry una geometria linestring

Esempi

* geom_to_wkt(close_line(geom_from_wkt('LINESTRING(0 0, 1 0, 1 1)'))) → LineString (0 0, 1 0, 1 1, 0 0)
* geom_to_wkt(close_line(geom_from_wkt('LINESTRING(0 0, 1 0, 1 1, 0 0)'))) → LineString (0 0, 1 0, 1 1, 0 0)


closest_point

Definizione

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

Sintassi:

  • closest_point(geometry1, _geometry2)

Argomenti:

  • geometry1 geometria sulla quale cercare il punto più vicino
  • geometry geometria dalla quale cercare il punto più vicino

Esempi

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

Osservazioni

Utilizzando il geometry generator per i temi (il layer strade è una unica feature):

  • closest_point( geometry(get_feature('strade', 'reg',19)),$geometry)

Gif animata: geometry 1 è la rete stradale; geometry 2 sono i punti; in rosso i closestpoint


collect_geometries

Definizione

Raccoglie un set di geometrie in un oggetto geometria multiparte.

Variante geometry

Sintassi:

  • collect_geometries(geometry1, geometry2...)

Argomenti:

  • geometry geometria sulla quale cercare il punto più vicino

Esempi

* geom_to_wkt(collect_geometries(make_point(1,2), make_point(3,4), make_point(5,6))) → 'MultiPoint ((1 2),(3 4),(5 6))'

Variante con array

Sintassi:

  • collect_geometries(array)

Argomenti:

  • array array con oggetti geometrici

Esempi

* geom_to_wkt(collect_geometries(array(make_point(1,2), make_point(3,4), make_point(5,6)))) → 'MultiPoint ((1 2),(3 4),(5 6))'

Osservazioni:

screen


combine

Definizione

Restituisce la combinazione di due geometrie.

Sintassi:

  • combine(geometry1, geometry2)

Argomenti:

  • geometry1 una geometria
  • geometry2 una geometria

Esempi

* geom_to_wkt( combine( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 2 1)' ) ) ) → MULTILINESTRING((4 4, 2 1), (3 3, 4 4), (4 4, 5 5))
* geom_to_wkt( combine( geom_from_wkt( 'LINESTRING(3 3, 4 4)' ), geom_from_wkt( 'LINESTRING(3 3, 6 6, 2 1)' ) ) ) → LINESTRING(3 3, 4 4, 6 6, 2 1)


contains

Definizione

Verifica se una geometria ne contiene un'altra. Restituisce vero se e solo se nessun punto di geometry2 giace all'esterno di geometry1 e almeno un punto dell'interno di geometry2 si trova all'interno di geometry1.

Sintassi:

  • contains(geometry1, _geometry2)

Argomenti:

  • geometry1 una geometria
  • geometry2 una geometria

Esempi

* contains( geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))' ), geom_from_wkt( 'POINT(0.5 0.5 )' ) ) → vero
* contains( geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → falso

Osservazioni

Usando algoritmo Seleziona per espressione presente in strumenti di processing oppure icona (Ctrl+F3):

- contains(geometry(get_feature( 'province_rt_rt','pk_uid','46')),$geometry)

dove:

  • geometry1 è geometry(get_feature( 'province_rt_rt','pk_uid','46'))
  • geometry2 è $geometry

seleziono tutti i comuni contains (contenuti) nella provincia con pk_uid46 (Lucca)

PS: potrei anche negare (NOT) l'espressione per selezionare il complementare (tutti i comuni tranne quelli contenuti nella provincia di Lucca).

NOT contains(geometry(get_feature( 'province_rt_rt','pk_uid','46')),$geometry)


convex_hull

Definizione

Restituisce il poligono convesso di una geometria. Rappresenta la minima geometria convessa che racchiude tutte le geometria contenute nell'insieme.

Sintassi:

  • convex_hull(geometry)

Argomenti:

  • geometry una geometria

Esempi

* geom_to_wkt( convex_hull( geom_from_wkt( 'LINESTRING(3 3, 4 4, 4 10)' ) ) ) → POLYGON((3 3,4 10,4 4,3 3))

Osservazioni

La funzione restituisce sempre un poligono.


crosses

Definizione

Verifica se una geometria interseca un'altra. Restituisce vero (1) se le geometrie interessate hanno qualche, ma non tutti, punto interno in comune.

Sintassi:

  • crosses(geometry1, _geometry2)

Argomenti:

  • geometry1 una geometria
  • geometry2 una geometria

Esempi

* crosses( geom_from_wkt( 'LINESTRING(3 5, 4 4, 5 3)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → vero
* crosses( geom_from_wkt( 'POINT(4 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → falso

Osservazioni

Usando algoritmo Seleziona per espressione presente in strumenti di processing oppure icona (Ctrl+F3):

- crosses(geometry(get_feature( 'fiume_arno','nome','ARNO')), $geometry)

dove:

  • geometry1 è geometry(get_feature( 'fiume_arno','nome','ARNO'))
  • geometry2 è $geometry

seleziono tutti i comuni crosses (attraversati) dal fiume ARNO

PS: potrei anche negare (NOT) l'espressione per selezionare il complementare (tutti i comuni tranne quelli attraversati dal fiume ARNO).

NOT crosses(geometry(get_feature( 'fiume_arno','nome','ARNO')), $geometry)


difference

Definizione

Restituisce una geometria che rappresenta la porzione della geometry_a che non interseca la geometry_b.

Sintassi:

  • difference(geometry1, _geometry2)

Argomenti:

  • geometry1 una geometria
  • geometry2 una geometria

Esempi

* geom_to_wkt( difference( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4)' ) ) ) → LINESTRING(4 4, 5 5)

Espressione:

Espressione

-- differenza linea a - linea b
difference( 
make_line(  -- linea a
    start_point(geometry(get_feature_by_id('linea_a',0))), 
    start_point($geometry),
    end_point(geometry(get_feature_by_id('linea_a',0)))),
make_line(  -- linea b
    start_point($geometry), 
    end_point(geometry(get_feature_by_id('linea_a',0))),
    end_point($geometry))
                )
-- NB: -- è importante ordine delle geometrie
-- a - b è diverso da b - a

Espressione

-- differenza linea b - linea a
difference( 
make_line( -- linea b
    start_point($geometry), 
    end_point(geometry(get_feature_by_id('linea_a',0))),
    end_point($geometry)),
make_line(  -- linea a
    start_point(geometry(get_feature_by_id('linea_a',0))), 
    start_point($geometry),
    end_point(geometry(get_feature_by_id('linea_a',0))))
                )
-- NB: -- è importante ordine delle geometrie
-- a - b è diverso da b - a

Esempio di sopra:


disjoint

Definizione

Controlla qualora una geometria non ne interseca spazialmente un'altra. Restituisce true (1) se le geometrie non condividono nessuno spazio comune.

Sintassi:

  • disjoint(geometry1, _geometry2)

Argomenti:

  • geometry1 una geometria *geometry2 una geometria

Esempi

* disjoint( geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0 ))' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → vero
* disjoint( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'POINT(4 4)' )) → falso

Attenzione!

Vero = 1; Falso= 0

Osservazioni

Usando algoritmo Seleziona per espressione presente in strumenti di processing oppure icona (Ctrl+F3):

- disjoint(geometry(get_feature( 'fiume_arno','nome','ARNO')), $geometry)

dove:

  • geometry1 è geometry(get_feature( 'fiume_arno','nome','ARNO'))
  • geometry2 è $geometry

seleziono tutti i comuni disjoint (disgiunti) dal fiume ARNO


distance

Definizione

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

Sintassi:

  • distance(geometry1, _geometry2)

Argomenti:

  • geometry1 una geometria
  • geometry2 una geometria

Esempi

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

--


distance_to_vertex

Definizione

Restituisce la distanza lungo una geometria ad un vertice specificato.

Sintassi:

  • distance_to_vertex(geometry, vertex)

Argomenti:

  • geometry una geometria di tipo linestring
  • vertex indice vertice, partendo da 0; se il valore è negativo, l'indice del vertice selezionato sarà il suo conteggio totale meno il valore assoluto

Esempi

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

--

esempio di sopra:


end_point

Definizione

Restituisce l'ultimo nodo di una geometria.

Sintassi:

  • end_point(geometry)

Argomenti:

  • geometry oggetto geometria

Esempi

* geom_to_wkt(end_point(geom_from_wkt('LINESTRING(4 0, 4 2, 0 2)'))) → 'Point (0 2)'

--

End_point di geometria poligonale:

End_point di geometria lineare:


extend

Definizione

Estende l'inizio e la fine di una geometria di tipo linestring di una quantità specificata. Le linee sono estese usando la direzione di immersione del primo e dell'ultimo segmento nella linea. Le distanze sono espresse nel SR di tale geometria.

Sintassi:

  • extend(geometry, start_distance, end_distance)

Argomenti:

  • geometry una geometria (multi)linestring
  • start_distance distanza alla quale estendere l'inizio della linea
  • end_distance distanza alla quale estendere la fine della linea.

Esempi

* geom_to_wkt(extend(geom_from_wkt('LineString(0 0, 1 0, 1 1)'),1,2)) → 'LineString (-1 0, 1 0, 1 3)'
* geom_to_wkt(extend(geom_from_wkt('MultiLineString((0 0, 1 0, 1 1), (2 2, 0 2, 0 5))'),1,2)) → 'MultiLineString ((-1 0, 1 0, 1 3),(3 2, 0 2, 0 7))'

--


exterior_ring

Definizione

Restituisce una linestring che rappresenta l'anello esterno di una geometria poligonale. Se la geometria non è un poligono, il risultato sarà NULL.

Sintassi:

  • exterior_ring(geometry)

Argomenti:

  • geometry una geometria poligono

Esempi

* geom_to_wkt(exterior_ring(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),( 0.1 0.1, 0.1 0.2, 0.2 0.2, 0.2, 0.1, 0.1 0.1))'))) → 'LineString (-1 -1, 4 0, 4 2, 0 2, -1 -1)'

--


extrude

Definizione

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

Sintassi:

  • extrude(geometry,x, y)

Argomenti:

  • geometry una geometria poligono
  • x estensione x, valore numerico
  • y estensione y, valore numerico

Esempi

* extrude(geom_from_wkt('LineString(1 2, 3 2, 4 3)'), 1, 2) → Polygon ((1 2, 3 2, 4 3, 5 5, 4 4, 2 4, 1 2))
* extrude(geom_from_wkt('MultiLineString((1 2, 3 2), (4 3, 8 3)'), 1, 2) → MultiPolygon (((1 2, 3 2, 4 4, 2 4, 1 2)),((4 3, 8 3, 9 5, 5 5, 4 3)))

Osservazioni

Nell'esempio ho utilizzato la funzione boundary() perché la geometria di ingresso deve essere lineare.


flip_coordinates

Definizione

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

Sintassi:

  • flip_coordinates(geometry)

Argomenti:

  • geometry una geometria

Esempi

* geom_to_wkt(flip_coordinates(make_point(1, 2))) → Point (2 1)

--

Esempio con vettore poligonale (aggiorno la geometry):

il flip è da usare con cautela perché cambia radicalemnte la posizione del vettore


force_rhr

Definizione

Forza una geometria a rispettare la regola della mano destra, in cui l'area delimitata da un poligono si trova a destra del limite. In particolare, l'anello esterno è orientato in senso orario e l'interno in senso antiorario.

Sintassi:

  • force_rhr(geometry)

Argomenti:

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

Esempi

* geom_to_wkt(force_rhr(geometry:=geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1))'))) → Polygon ((-1 -1, 0 2, 4 2, 4 0, -1 -1))

Osservazioni

Ecco un esempio pratico della funzione (presente anche nelgli strumenti fi processing) ovvero un poligono disegnato in senso antiorario viene forzato in senso orario e l'etichettature è visibile correttamente.


geom_from_gml

Definizione

Restituisce una geometria da una rappresentazione GML di una geometria.

Sintassi:

  • geom_from_gml(_gml)

Argomenti:

  • gml Rappresentazione GML di una geometria come stringa

Esempi

* geom_to_wkt(geom_from_gml('<gml:LineString srsName="EPSG:4326"><gml:coordinates>4,4 5,5 6,6</gml:coordinates></gml:LineString>') )  → 'LineString (4 4, 5 5, 6 6)'


geom_from_wkb

Definizione

Restituisce una geometria creata da una rappresentazione binaria ben nota (WKB).

Sintassi:

  • geom_from_wkb(binari)

Argomenti:

  • binari Rappresentazione binaria ben nota (WKB) di una geometria (come BLOB binario)

Esempi

* geom_from_wkb( geom_to_wkb( make_point(4,5) ) ) → un oggetto geometria punto


geom_from_wkt

Definizione

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

Sintassi:

  • geom_from_wkt_text_)

Argomenti:

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

Esempi

* geom_from_wkt( 'POINT(4 5)' ) → un oggetto geometria


geom_to_wkb

Definizione

Restituisce la rappresentazione binaria ben nota (WKB) di una geometria come BLOB binario.

Sintassi:

  • geom_to_wkb(geometry)

Argomenti:

  • geometry una geometria

Esempi

* geom_to_wkb( $geometry ) → BLOB binario contenente un oggetto geometria


geom_to_wkt

Definizione

Restituisce la rappresentazione Well-Known Text (WKT) della geometria senza metadati del SR

Sintassi:

  • geom_to_wkt(geometry)

Argomenti:

  • geometry una geometria

Esempi

* geom_to_wkt( make_point(6, 50) ) → 'POINT(6 50)'
* geom_to_wkt(centroid(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))'))) → 'POINT(0 0.66666667)'
* geom_to_wkt(centroid(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))')), 2) → 'POINT(0 0.67)'


geometry

Definizione

Restituisce la geometria di un elemento.

Sintassi:

  • geometry(feature)

Argomenti:

  • feature un oggetto elemento

Esempi

  • geom_to_wkt( geometry( get_feature( layer, attributeField, value ) ) ) → 'POINT(6 50)'
  • intersects( $geometry, geometry( get_feature( layer, attributeField, value ) ) ) → vero

--

Usando il Select by Expression: selezionare le feature di un layer (quartieri) in funzione di altro layer (test):


geometry_n

Definizione

Restituisce una geometria specifica da una raccolta di geometrie, o null se la geometria in ingresso non è una raccolta.

Sintassi:

  • geometry_n(geometry, index)

Argomenti:

  • geometry raccolta di geometrie
  • index indice della geometria da restituire, dove 1 è la prima geometria nella raccolta

Esempi

* geom_to_wkt(geometry_n(geom_from_wkt('GEOMETRYCOLLECTION(POINT(0 1), POINT(0 0), POINT(1 0), POINT(1 1))'),3)) → 'Point (1 0)'


hausdorff_distance

Definizione

Restituisce la distanza di Hausdorff tra due geometrie. Questa è in sostanza una misura di come le 2 geometrie sono simili o dissimili: una distanza più bassa indica geometrie più simili. La funzione può essere eseguita con un argomento opzionale di densificazione della frazione. Se non viene specificato, viene utilizzata una approssimazione alla distanza standard di Hausdorff. Questa approssimazione è esatta o abbastanza vicina per un grande sottoinsieme di casi utili. Esempi di questi sono:

  • calcolare la distanza tra Linestrings che sono approssimativamente paralleli tra loro e sono sostanzialmente uguali in lunghezza. Ciò si verifica nelle verifica di reti lineari.
  • testare la somiglianza di geometrie.

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

Sintassi:

  • hausdorff_distance(geometry1, geometry2, densify_fraction)

Argomenti:

  • geometry1 una geometria
  • geometry2 una geometria
  • densify_fraction quantità di densificazione della frazione

Esempi

* hausdorff_distance( geometry1:= geom_from_wkt('LINESTRING (0 0, 2 1)'),geometry2:=geom_from_wkt('LINESTRING (0 0, 2 0)')) → 2
* hausdorff_distance( geom_from_wkt('LINESTRING (130 0, 0 0, 0 150)'),geom_from_wkt('LINESTRING (10 10, 10 150, 130 10)')) → 14.142135623
* hausdorff_distance( geom_from_wkt('LINESTRING (130 0, 0 0, 0 150)'),geom_from_wkt('LINESTRING (10 10, 10 150, 130 10)'),0.5) → 70.0

--

Nel caso di geometrie puntuali la hausdorff_distance coincide con la funzione distance, segue un esempio:

Espressione

format_number(
hausdorff_distance( 
transform($geometry,'EPSG:4326','EPSG:3004'), 
transform(geometry(get_feature('fontanelle','n',1)),'EPSG:4326','EPSG:3004'))/1000,4) || ' km'  
|| '\n'|| 
format_number(
distance( 
transform($geometry,'EPSG:4326','EPSG:3004'), 
transform(geometry(get_feature('fontanelle','n',1)),'EPSG:4326','EPSG:3004'))/1000,4) || ' km'

--

In questo esempio confronto due layer: il numero più piccolo indica il poligono più simile a al poligono più grande.


inclination

Definizione

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

Sintassi:

  • inclination(point_a, point_b)

Argomenti:

  • point_a geometria punto
  • point_b geometria punto

Esempi

* inclination( make_point( 5, 10, 0 ), make_point( 5, 10, 5 ) ) → 0.0
* inclination( make_point( 5, 10, 0 ), make_point( 5, 10, 0 ) ) → 90.0
* inclination( make_point( 5, 10, 0 ), make_point( 50, 100, 0 ) ) → 90.0
* inclination( make_point( 5, 10, 0 ), make_point( 5, 10, -5 ) ) → 180.0

--


interior_ring_n

Definizione

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

Sintassi:

  • interior_ring_n(geometry, index)

Argomenti:

  • geometry geometria poligono
  • index Indice dell'anello interno da restituire, dove 1 è il primo anello interno

Esempi

* geom_to_wkt(interior_ring_n(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),(-0.1 -0.1, 0.4 0, 0.4 0.2, 0 0.2, -0.1 -0.1),(-1 -1, 4 0, 4 2, 0 2, -1 -1))'),1)) → 'LineString (-0.1 -0.1, 0.4 0, 0.4 0.2, 0 0.2, -0.1 -0.1))'

Osservazioni

Restituisce una lineastring!!!


intersection

Definizione

Restituisce una geometria che rappresenta la porzione condivisa fra le due geometrie.

Sintassi:

  • intersection(geometry1, geometry2)

Argomenti:

  • geometry1 una geometria
  • geometry2 una geometria

Esempi

* geom_to_wkt( intersection( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4)' ) ) ) → 'LINESTRING(3 3, 4 4)'
* geom_to_wkt( intersection( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'MULTIPOINT(3.5 3.5, 4 5)' ) ) ) → 'POINT(3.5 3.5)'

Espressione

-- intersezione tra le due linee
intersection( 
make_line( -- linea a
    start_point($geometry), 
    end_point(geometry(get_feature_by_id('linea_a',0))),
    end_point($geometry)),
make_line(  -- linea b
    start_point(geometry(get_feature_by_id('linea_a',0))), 
    start_point($geometry),
    end_point(geometry(get_feature_by_id('linea_a',0))))
                )
-- NB: -- l' ordine delle geometrie è indifferente

--


intersects

Definizione

Controlla qualora una geometria ne interseca un'altra. Restituisce true (1) se la geometrie si intersecano spazialmente (condividono una porzione di spazio) altrimenti da false (0).

Sintassi:

  • intersects(geometry1, geometry2)

Argomenti:

  • geometry1 una geometria
  • geometry2 una geometria

Esempi

* intersects( geom_from_wkt( 'POINT(4 4)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → vero
* intersects( geom_from_wkt( 'POINT(4 5)' ), geom_from_wkt( 'POINT(5 5)' ) ) → falso

Osservazioni

Usando algoritmo Seleziona per espressione presente in strumenti di processing oppure icona (Ctrl+F3):

- intersects(geometry(get_feature( 'province_rt_rt','pk_uid','46')),$geometry)

dove:

  • geometry1 è geometry(get_feature( 'province_rt_rt','pk_uid','46'))
  • geometry2 è $geometry

seleziono tutti i comuni intersects (interseca) nella provincia con pk_uid46 (Lucca)

PS: potrei anche negare (NOT) l'espressione per selezionare il complementare (tutti i comuni tranne quelli intersecati con la provincia di Lucca).

NOT intersects(geometry(get_feature( 'province_rt_rt','pk_uid','46')),$geometry)


intersects_bbox

Definizione

Controlla se il perimetro di delimitazione della geometria si sovrappone a quello di un'altra geometria. Restituisce vero (1) se le geometrie intersecano spazialmente il perimetro di delimitazione definito e falso (0) se non lo intersecano.

Sintassi:

  • intersects_bbox(geometry1, geometry2)

Argomenti:

  • geometry1 una geometria
  • geometry2 una geometria

Esempi

* intersects_bbox( geom_from_wkt( 'POINT(4 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → vero
* intersects_bbox( geom_from_wkt( 'POINT(6 5)' ), geom_from_wkt( 'POLYGON((3 3, 4 4, 5 5, 3 3))' ) ) → falso


is_closed

Definizione

Restituisce vero (true) se una linestring è chiusa (i punti di inizio e di fine coincidono), o falso (false) se una linestring non è chiusa. Se la geometria non è una linestring, il risultato sarà NULL.

Sintassi:

  • is_closed(geometry)

Argomenti:

  • geometry una geometria linestring

Esempi

* is_closed(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)')) → falso
* is_closed(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2, 0 0)')) → vero

--


is_empty

Definizione

Restituisce vero se una geometria è vuota (senza coordinate), falso se la geometria non è vuota e NULL se non c'è geometria. Vedi anche is_empty_or_null.

Sintassi:

  • is_empty(geometry)

Argomenti:

  • geometry una geometria

Esempi

* is_empty(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)')) → falso
* is_empty(geom_from_wkt('LINESTRING EMPTY')) → vero
* is_empty(geom_from_wkt('POINT(7 4)')) → falso
* is_empty(geom_from_wkt('POINT EMPTY')) → vero

screen


is_empty_or_null

Definizione

Restituisce vero se una geometria è vuota (senza coordinate), falso se la geometria non è vuota e NULL se non c'è geometria. Vedi anche is_empty_or_null_or_null.

Sintassi:

  • is_empty_or_null(geometry)

Argomenti:

  • geometry una geometria

Esempi

* is_empty_or_null(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)')) → falso
* iis_empty_or_null(geom_from_wkt('POINT(7 4)')) → falso
* is_empty_or_null(geom_from_wkt('POINT EMPTY')) → vero

screen


is_multipart

Definizione

Restituisce vero se la geometria è di tipo Multi.

Sintassi:

  • is_multipart(geometry)

Argomenti:

  • geometry una geometria

Esempi

* is_multipart(geom_from_wkt('MULTIPOINT ((0 0),(1 1),(2 2))')) → vero
* is_multipart(geom_from_wkt('POINT (0 0)')) → falso


is_valid

Definizione

Restituisce vero se una geometria è valida; se è ben formato in 2D secondo le regole **OGC**

Sintassi:

  • is_valid(geometry)

Argomenti:

  • geometry una geometria

Esempi

* is_valid(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2, 0 0)')) → vero
* is_valid(geom_from_wkt('LINESTRING(0 0)')) → falso


length

Definizione

Restituisce il numero di caratteri in una stringa o la lunghezza di una geometria di tipo linestring.

Variabile stringa

Restituisce il numero di caratteri contenuti in una stringa.

Sintassi:

  • length(string)

Argomenti:

  • string stringa della quale calcolare la lunghezza

Esempi

* length('hello') → 5

Variabile geometria

Calcola la lunghezza di un oggetto a geometria lineare. I calcoli sono sempre planimetrici nel Sistema di Riferimento Spaziale (SR) di detta geometria, e l'unità di misura della lunghezza restituita è conforme all'unità di misura del SR. Ciò differisce dal calcolo eseguito dalla funzione $length, la quale esegue calcoli ellissoidici basati sull'ellissoide del progetto e sulle impostazioni delle unità di distanza.

Sintassi:

  • length(geometry)

Argomenti:

  • geometry oggetto geometria linea

Esempi

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


length3D

Definizione

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

Sintassi:

  • length3D(geometry)

Argomenti:

  • geometry oggetto geometria linea

Esempi

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


line_interpolate_angle

Definizione

Restituisce l'angolo parallelo alla geometria ad una distanza specifica lungo una geometria di tipo linestring. Gli angoli sono in gradi in senso orario dal nord.

Sintassi:

  • line_interpolate_angle(geometry, distance)

Argomenti:

  • geometry una geometria di tipo linestring
  • distance distanza lungo la linea a cui interpolare l'angolo

Esempi

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

--


line_interpolate_point

Definizione

Restituisce il punto interpolato ad una specifica distanza lungo una geometria di tipo linestring.

Sintassi:

  • line_interpolate_point(geometry, distance)

Argomenti:

  • geometry una geometria di tipo linestring
  • distance distanza lungo la linea

Esempi

* geom_to_wkt(line_interpolate_point(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),distance:=5)) → 'Point (4 0)'

--


line_locate_point

Definizione

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

Sintassi:

  • line_locate_point(geometry, point)

Argomenti:

  • geometry una geometria di tipo linestring
  • point geometria puntuale per cui ricercare la posizione più vicina sulla linestring

Esempi

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


line_merge

Definizione

Restituisce una geometria di tipo LineString o MultiLineString, dove qualsiasi LineString connessa dalla geometria in ingresso è stata fusa (merge) in una linestring singola. Questa funzione restituirà NULL se la geometria considerata non è una LineString/MultiLineString.

Sintassi:

  • line_merge(geometry)

Argomenti:

  • geometry una geometria di tipo LineString/MultiLineString

Esempi

* geom_to_wkt(line_merge(geom_from_wkt('MULTILINESTRING((0 0, 1 1),(1 1, 2 2))'))) → 'LineString(0 0,1 1,2 2)'
* geom_to_wkt(line_merge(geom_from_wkt('MULTILINESTRING((0 0, 1 1),(11 1, 21 2))'))) → 'MultiLineString((0 0, 1 1),(11 1, 21 2)'

--


line_substring

Definizione

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

Sintassi:

  • line_substring(geometry,start_distance,end_distance)

Argomenti:

  • geometry una geometria lineare o curva
  • start_distance distanza all'inizio della sottostringa
  • end_distance distanza alla fine della sottostringa

Esempi

* geom_to_wkt(line_substring(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),start_distance:=2,end_distance:=6)) → 'LineString (2 0,6 0)'
* line_substring( $geometry,  $length *.1,$length *.6) → <geometria: LineString>

--

Funzione utile per la tematizzazione


m

Definizione

Restituisce il valore m di una geometria puntuale.

Sintassi:

  • m(geometry)

Argomenti:

  • geometry una geometria punto

Esempi

* ( geom_from_wkt( 'POINTM(2 5 4)' ) ) → 4


m_max

Definizione

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

Sintassi:

  • m_max(geometry)

Argomenti:

  • geometry una geometria contenente m valori

Esempi

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


m_min

Definizione

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

Sintassi:

  • m_min(geometry)

Argomenti:

  • geometry una geometria contenente m valori

Esempi

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


main_angle

Definizione

Restituisce l'angolo principale di una geometria (senso orario, in gradi dal Nord), il quale rappresenta l'angolo dell'orientamento del rettangolo minimo che copre completamente la geometria.

Sintassi:

  • main_angle(geometry)

Argomenti:

  • geometry una geometria poligono

Esempi

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

Osservazioni:


make_circle

Definizione

Crea un poligono circolare.

Sintassi:

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

[ ] indica componenti opzionali

Argomenti:

  • center centro del cerchio
  • radius raggio del cerchio
  • segments argomento opzionale per la segmentazione del poligono. Valore predefinito pari a 36

Esempi

* geom_to_wkt(make_circle(make_point(10,10), 5, 4)) → 'Polygon ((10 15, 15 10, 10 5, 5 10, 10 15))'
* geom_to_wkt(make_circle(make_point(10,10,5), 5, 4)) → 'PolygonZ ((10 15 5, 15 10 5, 10 5 5, 5 10 5, 10 15 5))''
* geom_to_wkt(make_circle(make_point(10,10,5,30), 5, 4)) → 'PolygonZM ((10 15 5 30, 15 10 5 30, 10 5 5 30, 5 10 5 30, 10 15 5 30))'


make_ellipse

Definizione

Crea un poligono ellittico.

Sintassi:

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

Argomenti:

  • center centro dell'ellisse
  • semi_major_axis semi-asse maggiore dell'ellisse
  • semi_minor_axis semi-asse minore dell'ellisse
  • azimuth orientazione dell'ellisse
  • segments argomento opzionale per la segmentazione del poligono. Valore predefinito pari a 36

Esempi

* geom_to_wkt(make_ellipse(make_point(10,10), 5, 2, 90, 4)) → 'Polygon ((15 10, 10 8, 5 10, 10 12, 15 10))
* geom_to_wkt(make_ellipse(make_point(10,10,5), 5, 2, 90, 4)) → 'PolygonZ ((15 10 5, 10 8 5, 5 10 5, 10 12 5, 15 10 5))'
* geom_to_wkt(make_circle(make_point(10,10,5,30), 5, 2, 90, 4)) → 'PolygonZM ((15 10 5 30, 10 8 5 30, 5 10 5 30, 10 12 5 30, 15 10 5 30))'


make_line

Definizione

Crea una geometria linea da una serie di geometrie punto.

Sintassi:

  • make_line(point1, point2, …_)

Argomenti:

  • point una geometria punto

Esempi

* geom_to_wkt(make_line(make_point(2,4),make_point(3,5))) → 'LineString (2 4, 3 5)'
* geom_to_wkt(make_line(make_point(2,4),make_point(3,5),make_point(9,7))) → 'LineString (2 4, 3 5, 9 7)'

Array variant

I vertici di linea sono specificati come una matrice di punti.

Sintassi:

  • make_line(array)

Argomenti:

  • array Matrice di punti

Esempi

* geom_to_wkt(make_line(array(make_point(2,4),make_point(3,5),make_point(9,7)))) → 'LineString (2 4, 3 5, 9 7)'

Espressione

make_line(
array(geometry(
    get_feature_by_id('fontanelle_Palermo',$id))),
array(geometry(
    get_feature_by_id('fontanelle_Palermo',not $id%2)))
        ) 


make_point

Definizione

Crea una geometria punto da valori x ed y (e opzionalmente z ed m).

Sintassi:

  • make_point(x, y, z, m)

Argomenti:

  • x coordinata x del punto
  • y coordinata y del punto
  • z coordinata opzionale z del punto
  • m valore m del punto

Esempi

* geom_to_wkt(make_point(2,4,6,8)) → 'PointZM (2 4 6 8)'


make_point_m

Definizione

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

Sintassi:

  • make_point_m_(x, y, m)

Argomenti:

  • x coordinata x del punto
  • y coordinata y del punto
  • m valore m del punto

Esempi

* geom_to_wkt(make_point_m(2,4,6)) → 'PointM (2 4 6)'


make_polygon

Definizione

Crea una geometria poligono da un'anello esterno e opzionalmente da geometrie ad anello interne.

Sintassi:

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

[ ] indica componenti opzionali

Argomenti:

  • outerRing geometria a linea chiusa per l'anello esterno del poligono
  • innerRing geometria a linea chiusa opzionale per anello interno

Esempi

* geom_to_wkt(make_polygon(geom_from_wkt('LINESTRING( 0 0, 0 1, 1 1, 1 0, 0 0 )'))) → 'Polygon ((0 0, 0 1, 1 1, 1 0, 0 0))'
* geom_to_wkt(make_polygon(geom_from_wkt('LINESTRING( 0 0, 0 1, 1 1, 1 0, 0 0 )'),geom_from_wkt('LINESTRING( 0.1 0.1, 0.1 0.2, 0.2 0.2, 0.2 0.1, 0.1 0.1 )'),geom_from_wkt('LINESTRING( 0.8 0.8, 0.8 0.9, 0.9 0.9, 0.9 0.8, 0.8 0.8 )'))) → 'Polygon ((0 0, 0 1, 1 1, 1 0, 0 0),(0.1 0.1, 0.1 0.2, 0.2 0.2, 0.2 0.1, 0.1 0.1),(0.8 0.8, 0.8 0.9, 0.9 0.9, 0.9 0.8, 0.8 0.8))'


make_rectangle_3points

Definizione

Crea un rettangolo da 3 punti.

Sintassi:

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

Argomenti:

  • point1 Primo punto
  • point2 Secondo punto
  • point3 Terzo punto
  • option Un argomento facoltativo per costruire il rettangolo. Di default questo valore è 0. Il valore può essere 0 (distanza) o 1 (proiettato). Distanza opzione: la seconda distanza è uguale alla distanza tra il 2 ° e il 3 ° punto. Opzione proiettata: la seconda distanza è uguale alla distanza della proiezione perpendicolare del terzo punto sul segmento o della sua estensione.

Esempi

* geom_to_wkt(make_rectangle_3points(make_point(0, 0), make_point(0,5), make_point(5, 5), 0))) → 'Polygon ((0 0, 0 5, 5 5, 5 0, 0 0))'
* geom_to_wkt(make_rectangle_3points(make_point(0, 0), make_point(0,5),make_point(5, 3), 1))) → 'Polygon ((0 0, 0 5, 5 5, 5 0, 0 0))'

--


make_regular_polygon

Definizione

Crea un poligono regolare.

Sintassi:

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

[ ] indica componenti opzionali

Argomenti:

  • center centro del poligono regolare
  • radius secondo punto. Il primo se il poligono regolare è inscritto. Il punto intermedio del primo lato se il poligono regolare è circoscritto.
  • number_sides Numero di lati del poligono regolare
  • circle Argomento opzionale per la costruzione del poligono regolare. Il valore predefinito è 0. Il valore può essere 0 (poligono iscritto) o 1 (poligono circoscritto)

Esempi

* geom_to_wkt(make_regular_polygon(make_point(0,0), make_point(0,5), 5)) → 'Polygon ((0 5, 4.76 1.55, 2.94 -4.05, -2.94 -4.05, -4.76 1.55, 0 5))'
* geom_to_wkt(make_regular_polygon(make_point(0,0), project(make_point(0,0), 4.0451, radians(36)), 5)) → 'Polygon ((0 5, 4.76 1.55, 2.94 -4.05, -2.94 -4.05, -4.76 1.55, 0 5))'


make_square

Definizione

Crea un quadrato da una diagonale.

Sintassi:

  • make_square(point1,point2)

Argomenti:

  • point1 Primo punto della diagonale
  • point2 Secondo punto della diagonale

Esempi

* geom_to_wkt(make_square( make_point(0,0), make_point(5,5))) → 'Polygon ((0 0, -0 5, 5 5, 5 0, 0 0))'
* geom_to_wkt(make_square( make_point(5,0), make_point(5,5))) → 'Polygon ((5 0, 2.5 2.5, 5 5, 7.5 2.5, 5 0))'


make_triangle

Definizione

Crea un poligono triangolare

Sintassi:

  • make_triangle(point1,point2,point3)

Argomenti:

  • point1 Primo punto del triangolo
  • point2 Secondo punto del triangolo
  • point3 Secondo punto del triangolo

Esempi

* geom_to_wkt(make_triangle(make_point(0,0), make_point(5,5), make_point(0,10))) → 'Triangle ((0 0, 5 5, 0 10, 0 0))'
* geom_to_wkt(boundary(make_triangle(make_point(0,0), make_point(5,5), make_point(0,10)))) → 'LineString (0 0, 5 5, 0 10, 0 0)'


minimal_circle

Definizione

Restituisce la circonferenza circoscritta minima di una geometria. Rappresenta il cerchio minimo che circoscrive tutte le geometrie presenti in un dataset.

Sintassi:

  • minimal_circle(geometry[, segments=36])

[ ] indica componenti opzionali

Argomenti:

  • geometry una geometria
  • segments argomento opzionale per la segmentazione del poligono. Valore predefinito pari a 36

Esempi

* geom_to_wkt( minimal_circle( geom_from_wkt( 'LINESTRING(0 5, 0 -5, 2 1)' ), 4 ) ) → Polygon ((0 5, 5 -0, -0 -5, -5 0, 0 5))
* geom_to_wkt( minimal_circle( geom_from_wkt( 'MULTIPOINT(1 2, 3 4, 3 2)' ), 4 ) ) → Polygon ((3 4, 3 2, 1 2, 1 4, 3 4))

--


nodes_to_points

Definizione

Restituisce una geometria multi-punti costituita da ogni nodo della geometria in ingresso.

Sintassi:

  • nodes_to_points(geometry[, ignore_closing_nodes=false])

Argomenti:

  • geometry oggetto geometria
  • ignore_closing_nodes argomento opzionale che specifica se includere i nodi duplicati che chiudono linee o poligoni ad anello. Normalmente false, impostare a true per evitare di includere questi nodi duplicati nella raccolta in uscita.

Esempi

* geom_to_wkt(nodes_to_points(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)'))) → 'MultiPoint ((0 0),(1 1),(2 2))'
* geom_to_wkt(nodes_to_points(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1))'),true)) → 'MultiPoint ((-1 -1),(4 0),(4 2),(0 2))'

--


num_geometries

Definizione

Restituisce il numero di geometrie in una raccolta di geometrie, o null se la geometria in ingresso non è una raccolta.

Sintassi:

  • num_geometries(geometry)

Argomenti:

  • geometry raccolta di geometrie

Esempi

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


num_interior_rings

Definizione

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

Sintassi:

  • num_interior_rings(geometry)

Argomenti:

  • geometry geometria in ingresso

Esempi

* num_interior_rings(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),(-0.1 -0.1, 0.4 0, 0.4 0.2, 0 0.2, -0.1 -0.1))')) → 1


num_points

Definizione

Restituisce il numero di vertici in una geometria.

Sintassi:

  • num_points(geometry)

Argomenti:

  • geometry una geometria

Esempi

* num_points($geometry) → numero di vertici in $geometry


num_rings

Definizione

Restituisce il numero di anelli (includendo anche anelli esterni) in un poligono o in una raccolta di geometrie, o null se la geometria in ingresso non è un poligono o una raccolta.

Sintassi:

  • num_rings(geometry)

Argomenti:

  • geometry geometria in ingresso

Esempi

* num_rings(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),(-0.1 -0.1, 0.4 0, 0.4 0.2, 0 0.2, -0.1 -0.1))')) → 2

--


offset_curve

Definizione

Restituisce una geometria formata facendo l'offset di una geometria di tipo linestring a lato. Le distanze sono espresse nel SR di tale geometria.

Sintassi:

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

[ ] indica componenti opzionali

Argomenti:

  • geometry una geometria (multi)linestring
  • distance distanza di offset. Valori positivi saranno bufferizzati a sinistra delle linee, valori negativi a destra
  • segments numero di segmenti da usare per rappresentare un quarto di cerchio quando è utilizzato uno stile di unione arrotondato. Un numero grande risulta in una linea più morbida, con più nodi.
  • join stile di unione per gli angoli, dove 1 = arrotondato, 2 = seghettato e 3 = smussato
  • miter_limit limite sul rapporto di seghettatura usato per angoli molto appuntiti (solamente quando si usano le unioni seghettate)

Esempi

* offset_curve($geometry, 10.5) → linea scostata a sinistra di 10.5 unità
* offset_curve($geometry, -10.5) → linea scostata a destra di 10.5 unità
* offset_curve($geometry, 10.5, segments=16, join=1) → linea scostata a sinistra di 10.5 unità, usando più segmenti per risultare in una curva più morbida
* offset_curve($geometry, 10.5, join=3) → linea scostata a sinistra di 10.5 unità, usando un'unione smussata

Osservazioni

La linea è scostata a sinistra o destra rispetto al verso della linea:


order_parts

Definizione

Ordina le parti di una MultiGeometria secondo un dato criterio

Sintassi:

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

[ ] indica componenti opzionali

Argomenti:

  • geometry una geometria multi-tipo
  • orderby un espressione stringa che definisce il criterio di ordinamento
  • ascending booleano, True per ascendente, False per discendente

Esempi

* order_parts(geom_from_wkt('MultiPolygon (((1 1, 5 1, 5 5, 1 5, 1 1)),((1 1, 9 1, 9 9, 1 9, 1 1)))'), 'area($geometry)', False) → MultiPolygon (((1 1, 9 1, 9 9, 1 9, 1 1)),((1 1, 5 1, 5 5, 1 5, 1 1)))
* order_parts(geom_from_wkt('LineString(1 2, 3 2, 4 3)'), '1', True) → LineString(1 2, 3 2, 4 3)


oriented_bbox

Definizione

Restituisce una geometria che rappresenta il perimetro di delimitazione minimo orientato di una geometria.

Sintassi:

  • oriented_bbox(geometry)

Argomenti:

  • geometry una geometria

Esempi

* geom_to_wkt(oriented_bbox(geom_from_wkt('MULTIPOINT(1 2, 3 4, 3 2)'))) → 'Polygon ((1 2, 2 1, 4 3, 3 4, 1 2))'


overlaps

Definizione

Controlla qualora una geometria si sovrapponga ad un'altra. Restituisce true (1) se le geometrie condividono aree, ma non sono completamente contenute una nell'altra.

Sintassi:

  • overlaps(geometry1, geometry2)

Argomenti:

  • geometry1 una geometria
  • geometry2 una geometria

Esempi

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

Osservazioni

Usando algoritmo Seleziona per espressione presente in strumenti di processing oppure icona (Ctrl+F3):

- overlaps(geometry(get_feature( 'cerchio','id','1')), $geometry)

dove:

  • geometry1 è geometry(get_feature('cerchio','id','1'))
  • geometry2 è $geometry

seleziono tutti i comuni overlaps (sovrapposti) al cerchio in figura.

PS: potrei anche negare (NOT) l'espressione per selezionare il complementare (tutti i comuni tranne quelli sovrapposti con il cerchio).

NOT overlaps(geometry(get_feature('cerchio','id','1')),$geometry)


overlay_contains

Definizione

Restituisce se l'elemento corrente contiene spazialmente almeno un elemento da un layer target o un array di risultati basati su espressioni per gli elementi nel layer target contenuti nell'elemento corrente. Ulteriori informazioni sul predicato GEOS "Contains" sottostante, come descritto nella funzione PostGIS ST_CONTAINS.

Sintassi:

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

[ ] indica componenti opzionali

Argomenti:

  • layer l'altro layer;
  • expression un'espressione opzionale per valutare gli elementi dell'altro layer (se non impostata, la funzione restituisce semplicemente un booleano che indica se c'è almeno una corrispondenza);
  • filter un'espressione opzionale per filtrare gli elementi corrispondenti (se non impostata, verranno restituiti tutti gli elementi);
  • limit un numero intero opzionale per limitare il numero di elementi corrispondenti (se non impostato, verranno restituiti tutti gli elementi);
  • cache imposta su "vero" per creare un indice spaziale locale (il più delle volte, questo è indesiderato, a meno che tu non stia lavorando con un fornitore di dati particolarmente lento);

[ ] indica componenti opzionali

Esempi

* overlay_contains('regions') → true se l'elemento corrente contiene spazialmente una regione
* overlay_contains('regions', filter:= population > 10000) → vero se l'elemento corrente contiene spazialmente una regione con una popolazione maggiore di 10000
* overlay_contains('regions', name) → un array di nomi, per le regioni contenute nell'elemento corrente
* array_to_string(overlay_contains('regions', name)) → una stringa come una lista di nomi separata da virgola, per le regioni contenute nell'elemento corrente
* overlay_contains('regions', name)[0] → una stringa con il nome della regione contenuta nell'elemento corrente
* array_sort(overlay_contains(layer:='regions', expression:="name", filter:= population > 10000)) → un array ordinato di nomi, per le regioni contenute nell'elemento corrente e con una popolazione superiore a 10000
* overlay_contains(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → un array di geometrie (in WKT), per un massimo di due regioni contenute nell'elemento corrente


overlay_crosses

Definizione

Restituisce se l'elemento corrente attraversa spazialmente almeno un elemento di un layer target o un array di risultati basati su espressioni per gli elementi nel layer target attraversati dall'elemento corrente. Ulteriori informazioni sul predicato GEOS "Crosses" sottostante, come descritto nella funzione PostGIS ST_Crosses.

Sintassi:

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

[ ] indica componenti opzionali

Argomenti:

  • layer l'altro layer;
  • expression un'espressione opzionale per valutare gli elementi dell'altro layer (se non impostata, la funzione restituisce semplicemente un booleano che indica se c'è almeno una corrispondenza);
  • filter un'espressione opzionale per filtrare gli elementi corrispondenti (se non impostata, verranno restituiti tutti gli elementi);
  • limit un numero intero opzionale per limitare il numero di elementi corrispondenti (se non impostato, verranno restituiti tutti gli elementi);
  • cache imposta su "vero" per creare un indice spaziale locale (il più delle volte, questo è indesiderato, a meno che tu non stia lavorando con un fornitore di dati particolarmente lento);

[ ] indica componenti opzionali

Esempi

* overlay_crosses('regions') → true se l'elemento corrente attraversa spazialmente una regione
* overlay_crosses('regions', filter:= population > 10000) → vero se l'elemento corrente attraversa spazialmente una regione con una popolazione maggiore di 10000
* overlay_crosses('regions', name) → un array di nomi, per le regioni attraversate dall'elemento corrente
* array_to_string(overlay_crosses('regions', name)) → una stringa come una lista di nomi separata da virgola, per le regioni attraversate dall'elemento corrente
* overlay_crosses('regions', name)[0] → una stringa con il nome della prima regioni attraversata dall'elemento corrente
* array_sort(overlay_crosses(layer:='regions', expression:="name", filter:= population > 10000)) → un array ordinato di nomi, per le regioni attraversate dall'elemento corrente e con una popolazione superiore a 10000
* overlay_crosses(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → un array di geometrie (in WKT), per un massimo di due regioni attraversate dall'elemento corrente


overlay_disjoint

Definizione

Restituisce se l'elemento corrente è spazialmente disgiunto da tutti gli elementi di un layer target, o un array di risultati basati su espressione per gli elementi nel layer target che sono disgiunti dall'elemento corrente. Ulteriori informazioni sul sottostante predicato GEOS "Disjoint", come descritto nella funzione PostGIS ST_Disjoint.

Sintassi:

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

[ ] indica componenti opzionali

Argomenti:

  • layer l'altro layer;
  • expression un'espressione opzionale per valutare gli elementi dell'altro layer (se non impostata, la funzione restituisce semplicemente un booleano che indica se c'è almeno una corrispondenza);
  • filter un'espressione opzionale per filtrare gli elementi corrispondenti (se non impostata, verranno restituiti tutti gli elementi);
  • limit un numero intero opzionale per limitare il numero di elementi corrispondenti (se non impostato, verranno restituiti tutti gli elementi);
  • cache imposta su "vero" per creare un indice spaziale locale (il più delle volte, questo è indesiderato, a meno che tu non stia lavorando con un fornitore di dati particolarmente lento);

[ ] indica componenti opzionali

Esempi

* overlay_disjoint('regions') → true se l'elemento corrente è spazialmente disgiunto da tutte le regioni
* overlay_disjoint('regions', filter:= population > 10000) → vero se l'elemento corrente è spazialmente disgiunto da tutte le regioni con una popolazione maggiore di 10000
* overlay_disjoint('regions', name) → un array di nomi, per le regioni spazialmente disgiunte dall'elemento corrente
* array_to_string(overlay_disjoint('regions', name)) → una stringa come una lista di nomi separata da virgola, per le regioni spazialmente disgiunte dall'elemento corrente
* overlay_disjoint('regions', name)[0] → una stringa con il nome della regione spazialmente disgiunte dall'elemento corrente
* array_sort(overlay_disjoint(layer:='regions', expression:="name", filter:= population > 10000)) → un array ordinato di nomi, per le regioni spazialmente disgiunte dall'elemento corrente e con una popolazione superiore a 10000
* overlay_disjoint(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → un array di geometrie (in WKT), per un massimo di due regioni spazialmente disgiunte dall'elemento corrente


overlay_equals

Definizione

Restituisce se l'elemento corrente è spazialmente uguale ad almeno un elemento da un layer target o un array di risultati basati su espressioni per gli elementi nel layer target che sono spazialmente uguali all'elemento corrente. Ulteriori informazioni sul predicato GEOS "Equals" sottostante, come descritto nella funzione PostGIS ST_Equals.

Sintassi:

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

[ ] indica componenti opzionali

Argomenti:

  • layer l'altro layer;
  • expression un'espressione opzionale per valutare gli elementi dell'altro layer (se non impostata, la funzione restituisce semplicemente un booleano che indica se c'è almeno una corrispondenza);
  • filter un'espressione opzionale per filtrare gli elementi corrispondenti (se non impostata, verranno restituiti tutti gli elementi);
  • limit un numero intero opzionale per limitare il numero di elementi corrispondenti (se non impostato, verranno restituiti tutti gli elementi);
  • cache imposta su "vero" per creare un indice spaziale locale (il più delle volte, questo è indesiderato, a meno che tu non stia lavorando con un fornitore di dati particolarmente lento);

[ ] indica componenti opzionali

Esempi

* overlay_equals('regions') → true se l'elemento corrente è spazialmente uguale ad una regione
* overlay_equals('regions', filter:= population > 10000) → vero se l'elemento corrente è spazialmente uguale ad una regione con una popolazione maggiore di 10000
* overlay_equals('regions', name) → un array di nomi, per le regioni spazialmente uguali all'elemento corrente
* array_to_string(overlay_equals('regions', name)) → una stringa come lista di nomi separati da virgole, per le regioni spazialmente uguali all'elemento corrente
* overlay_equals('regions', name)[0] → una stringa con il nome della regione spazialmente uguale all'elemento corrente
* array_sort(overlay_equals(layer:='regions', expression:="name", filter:= population > 10000)) → un array ordinato di nomi, per le regioni spazialmente uguali all'elemento corrente e con una popolazione superiore a 10000
* overlay_equals(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → un array di geometrie (in WKT), per un massimo di due regioni spazialmente uguali all'elemento corrente


overlay_intersects

Definizione

Restituisce se l'elemento corrente interseca spazialmente almeno un elemento da un layer target o un array di risultati basati su espressioni per gli elementi nel layer target intersecati dall'elemento corrente. Ulteriori informazioni sul predicato GEOS "Intersects" sottostante, come descritto nella funzione PostGIS ST_INTERSECTS.

Sintassi:

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

[ ] indica componenti opzionali

Argomenti:

  • layer l'altro layer;
  • expression un'espressione opzionale per valutare gli elementi dell'altro layer (se non impostata, la funzione restituisce semplicemente un booleano che indica se c'è almeno una corrispondenza);
  • filter un'espressione opzionale per filtrare gli elementi corrispondenti (se non impostata, verranno restituiti tutti gli elementi);
  • limit un numero intero opzionale per limitare il numero di elementi corrispondenti (se non impostato, verranno restituiti tutti gli elementi);
  • cache imposta su "vero" per creare un indice spaziale locale (il più delle volte, questo è indesiderato, a meno che tu non stia lavorando con un fornitore di dati particolarmente lento);

[ ] indica componenti opzionali

Esempi

* overlay_intersects('regions') → true se l'elemento corrente interseca spazialmente una regione
* overlay_intersects('regions', filter:= population > 10000) → vero se l'elemento corrente interseca spazialmente una regione con una popolazione maggiore di 10000
* overlay_intersects('regions', name) → un array di nomi, per le regioni intersecate dall'elemento corrente
* array_to_string(overlay_intersects('regions', name)) → una stringa come una lista di nomi separata da virgola, per le regioni intersecate dall'elemento corrente
* overlay_intersects('regions', name)[0] → una stringa con il nome della regione intersecata dall'elemento corrente
* array_sort(overlay_intersects(layer:='regions', expression:="name", filter:= population > 10000)) → un array ordinato di nomi, per le regioni intersecate dall'elemento corrente e con una popolazione maggiore di 10000
* overlay_intersects(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → un array di geometrie (in WKT), per un massimo di due regioni intersecate dall'elemento corrente


overlay_nearest

Definizione

Restituisce se l'elemento corrente ha elementi da un layer target entro una data distanza o un array di risultati basati su espressioni per gli elementi nel layer di target entro una distanza dall'elemento corrente. Nota: questa funzione può essere lenta e consuma molta memoria per layer con molte feature.

Sintassi:

  • overlay_contains(layer[,expression][,filter][,limit=1][,max_distance][,cache])

[ ] indica componenti opzionali

Argomenti:

  • layer l'altro layer;
  • expression un'espressione opzionale per valutare gli elementi dell'altro layer (se non impostata, la funzione restituisce semplicemente un booleano che indica se c'è almeno una corrispondenza);
  • filter un'espressione opzionale per filtrare gli elementi corrispondenti (se non impostata, verranno restituiti tutti gli elementi);
  • limit un numero intero opzionale per limitare il numero di elementi corrispondenti (se non impostato, verranno restituiti tutti gli elementi);
  • max_distance una distanza opzionale per limitare la ricerca di elementi corrispondenti. Se non impostato, verranno usati tutti gli elementi nel layer di destinazione.
  • cache imposta su "vero" per creare un indice spaziale locale (il più delle volte, questo è indesiderato, a meno che tu non stia lavorando con un fornitore di dati particolarmente lento);

[ ] indica componenti opzionali

Esempi

* overlay_nearest('airports') → true se il layer "airports" ha almeno un elemento
* overlay_nearest('airports', max_distance:= 5000) → vero se è presente un aeroporto entro una distanza di 5000 unità di mappa dall'elemento corrente
* overlay_nearest('airports', name) → il nome dell'aereoporto più vicino all'elemento corrente, come array
* array_to_string(overlay_nearest('airports', name)) → il nome dell'aereoporto più vicino all'elemento corrente, come stringa
* overlay_nearest(layer:='airports', expression:= name, max_distance:= 5000) → il nome dell'aereoporto più vicino entro una distanza di 5000 unità di mappa dall'elemento corrente, come array
* overlay_nearest(layer:='airports', expression:="name", filter:= "Use"='Civilian', limit:=3) → un array di nomi, per un massimo di tre aeroeporti civili più vicini ordinati per distanza
* overlay_nearest(layer:='airports', expression:="name", limit:= -1, max_distance:= 5000) → un array di nomi, per tutti gli aeroporti entro una distanza di 5000 unità di mappa dall'elemento corrente, ordinato per distanza.

Esempio 45: http://hfcqgis.opendatasicilia.it/it/latest/esempi/linea_min_distanza2.html


overlay_touches

Definizione

Restituisce se l'elemento corrente tocca spazialmente almeno un elemento da un layer target o un array di risultati basati su espressioni per gli elementi nel layer target toccati dall'elemento corrente. Leggi ulteriori informazioni sul predicato GEOS "Touches", come descritto nella funzione PostGIS ST_TOUCHES.

Sintassi:

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

[ ] indica componenti opzionali

Argomenti:

  • layer l'altro layer;
  • expression un'espressione opzionale per valutare gli elementi dell'altro layer (se non impostata, la funzione restituisce semplicemente un booleano che indica se c'è almeno una corrispondenza);
  • filter un'espressione opzionale per filtrare gli elementi corrispondenti (se non impostata, verranno restituiti tutti gli elementi);
  • limit un numero intero opzionale per limitare il numero di elementi corrispondenti (se non impostato, verranno restituiti tutti gli elementi);
  • cache imposta su "vero" per creare un indice spaziale locale (il più delle volte, questo è indesiderato, a meno che tu non stia lavorando con un fornitore di dati particolarmente lento);

[ ] indica componenti opzionali

Esempi

* overlay_touches('regions') → true se l'elemento corrente tocca spazialmente una regione
* overlay_touches('regions', filter:= population > 10000) → vero se l'elemento corrente tocca spazialmente una regione con una popolazione maggiore di 10000
* overlay_touches('regions', name) → un array di nomi, per le regioni tocacte dall'elemento corrente
* string_to_array(overlay_touches('regions', name)) → una stringa come lista di nomi separati da virgole, per le regioni toccate dall'elemento corrente
* overlay_touches('regions', name)[0] → una stringa con il nome della regione toccata dall'elemento corrente
* array_sort(overlay_touches(layer:='regions', expression:="name", filter:= population > 10000)) → un array ordinato di nomi, per le regioni toccate dall'elemento attuale e con una popolazione superiore a 10000
* overlay_touches(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → un array di geometrie (in WKT), per un massimo di due regioni toccate dall'elemento corrente


overlay_within

Definizione

Restituisce se l'elemento corrente è spazialmente all'interno di almeno un elemento da layer destinazione, o un array di risultati basati su espressione per gli elementi nel layer destinazione che contengono l'elemento corrente. Ulteriori informazioni sul sottostante predicato GEOS "Within", come descritto nella funzione PostGIS ST_WITHIN.

Sintassi:

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

[ ] indica componenti opzionali

Argomenti:

  • layer l'altro layer;
  • expression un'espressione opzionale per valutare gli elementi dell'altro layer (se non impostata, la funzione restituisce semplicemente un booleano che indica se c'è almeno una corrispondenza);
  • filter un'espressione opzionale per filtrare gli elementi corrispondenti (se non impostata, verranno restituiti tutti gli elementi);
  • limit un numero intero opzionale per limitare il numero di elementi corrispondenti (se non impostato, verranno restituiti tutti gli elementi);
  • cache imposta su "vero" per creare un indice spaziale locale (il più delle volte, questo è indesiderato, a meno che tu non stia lavorando con un fornitore di dati particolarmente lento);

[ ] indica componenti opzionali

Esempi

* overlay_within('regions') → true se l'elemento corrente è spazialmente all'interno di una regione
* overlay_within('regions', filter:= population > 10000) → vero se l'elemento corrente è spazialmente all'interno di una regione con una popolazione maggiore di 10000
* overlay_within('regions', name) → un array di nomi, per le regioni contenenti l'elemento corrente
* array_to_string(overlay_within('regions', name)) → una stringa come lista di nomi separati da virgole, per le regioni che contengono l'elemento corrente
* overlay_within('regions', name)[0] → una stringa con il nome della regione che contengono l'elemento corrente
* array_sort(overlay_within(layer:='regions', expression:="name", filter:= population > 10000)) → un array ordinato di nomi, per le regioni contenenti l'elemento corrente e con una popolazione superiore a 10000
* overlay_within(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → un array di geometrie (in WKT), per un massimo di due regioni contenenti l'elemento corrente


perimeter

Definizione

Calcola il perimetro di un oggetto a geometria poligonale. I calcoli sono sempre planimetrici nel Sistema di Riferimento Spaziale (SR) di detta geometria, e l'unità di misura della lunghezza restituita è conforme all'unità di misura del SR. Ciò differisce dal calcolo eseguito dalla funzione $perimeter, la quale esegue calcoli ellissoidali basati sull'ellissoide del progetto e sulle impostazioni delle unità di misura della distanza.

Sintassi:

  • perimeter(geometry)

Argomenti:

  • geometry oggetto geometria poligono

Esempi

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


point_n

Definizione

Restituisce un nodo specifico da una geometria.

Sintassi:

  • point_n(geometry, index)

Argomenti:

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

Esempi

* geom_to_wkt(point_n(geom_from_wkt('POLYGON((0 0, 4 0, 4 2, 0 2, 0 0))'),2)) → 'Point (4 0)'

--


Esempi correlati:

esempio nro 4 - Come aggiungere la quota Z alla tabella attributi


point_on_surface

Definizione

Restituisce un punto garantendo che sia giacente sulla superficie della geometria.

Sintassi:

  • point_on_surface(geometry)

Argomenti:

  • geometry una geometria

Esempi

* point_on_surface($geometry) → una geometria punto

--


pole_of_inaccessibility

Definizione

Calcola il polo dell'inaccessibilità approssimato per una superficie, che è il punto interno più distante dal contorno della superficie. Questa funzione usa l'algoritmo 'polylabel' (Vladimir Agafonkin, 2016), che è un approccio iterativo garantito per trovare il vero polo dell'inaccessibilità all'interno di una tolleranza specificata. Tolleranze più precise richiedono più iterazioni e sarà necessario più tempo per il calcolo.

Sintassi:

  • pole_of_inaccessibility(geometry, tolerance)

Argomenti:

  • geometry una geometria
  • tolerance distanza massima tra il punto restituito e la vera posizione del polo

Esempi

* geom_to_wkt(pole_of_inaccessibility( geom_from_wkt('POLYGON((0 1,0 9,3 10,3 3, 10 3, 10 1, 0 1))'), 0.1)) → 'Point(1.55, 1.55)'

--


project

Definizione

Restituisce un punto proiettato da un punto di partenza usando una distanza e una direzione di immersione (azimut) in radianti.

Sintassi:

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

[ ] indica componenti opzionali

Argomenti:

  • point punto di partenza
  • point distanza da proiettare
  • azimuth azimuth in radianti in senso orario, dove 0 corrisponde a nord
  • elevation angolo di inclinazione in radianti

Esempi

* project(make_point(1, 2), 3, radians(270)) → Point(-2, 2)

--


relate

Definizione

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

Variabile di relazione

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

Sintassi:

  • relate(geometry, geometry) )

Argomenti:

  • geometry una geometria
  • geometry una geometria

Esempi

* relate( geom_from_wkt( 'LINESTRING(40 40,120 120)' ), geom_from_wkt( 'LINESTRING(40 40,60 120)' ) ) → 'FF1F00102'

Variabile di corrispondenza del modello

Testa se la relazione DE-9IM tra due geometrie corrisponde a un pattern specificato: restituisc true Vero, false Falso.

Sintassi:

  • relate( geometry, geometry, pattern)

Argomenti:

  • geometry una geometria
  • geometry una geometria
  • pattern Tratteggio DE-9IM da far corrispondere

Esempi

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

Link utili:


reverse

Definizione

Inverte il verso di una linestring invertendo l'ordine dei sui vertici.

Sintassi:

  • reverse(geometry)

Argomenti:

  • geometry una geometria

Esempi

* geom_to_wkt(reverse(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)'))) → 'LINESTRING(2 2, 1 1, 0 0)'

--


rotate

Definizione

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

Sintassi:

  • rotate( geometry, rotation[, center])

[ ] indica componenti opzionali

Argomenti:

  • geometry una geometria
  • rotation rotazione oraria in gradi
  • center punto centrale di rotazione. Se non specificato, viene utilizzato il centro del perimetro di delimitazione della geometria.

Esempi

* rotate($geometry, 45, make_point(4, 5)) → la geometria ruotava di 45 gradi in senso orario attorno al punto (4, 5)
* rotate($geometry, 45) → la geometria ruotava di 45 gradi in senso orario attorno al centro del riquadro di delimitazione

screen


segments_to_lines

Definizione

Restituisce una geometria multi linea consistente in una linea per ogni segmento nella geometria in ingresso.

Sintassi:

  • segments_to_lines( geometry)

Argomenti:

  • geometry oggetto geometria

Esempi

* geom_to_wkt(segments_to_lines(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)'))) → 'MultiLineString ((0 0, 1 1),(1 1, 2 2))'


shortest_line

Definizione

Restituisce la linea più corta che unisce la geometria 1 alla geometria 2. La linea risultante partirà dalla geometria 1 e finirà nella geometria 2.

Sintassi:

  • shortest_line( geometry1, geometry2)

Argomenti:

  • geometry1 geometria dalla quale cercare la linea più corta
  • geometry2 geometria verso la quale cercare la linea più corta

Esempi

* geom_to_wkt(shortest_line(geom_from_wkt('LINESTRING (20 80, 98 190, 110 180, 50 75 )'),geom_from_wkt('POINT(100 100)'))) → LineString(73.0769 115.384, 100 100)

--

shortestline


simplify

Definizione

Semplifica una geometria rimuovendo nodi usando una soglia basata sulla distanza (cioè, l'algoritmo Douglas Peucker). L'algoritmo mantiene grandi deviazioni nelle geometrie e riduce il numero di vertici in segmenti quasi rettilinei.

Sintassi:

  • simplify(simplify_vw(geometry, tolerance)

Argomenti:

  • geometry una geometria
  • tolerance deviazione massima dai segmenti rettilinei per i punti da rimuovere

Esempi

* geom_to_wkt(simplify(geometry:=geom_from_wkt('LineString(0 0, 5 0.1, 10 0)'),tolerance:=5)) → 'LineString(0 0, 10 0)'


simplify_vw

Definizione

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

Sintassi:

  • simplify_vw(geometry, tolerance)

Argomenti:

  • geometry una geometria
  • tolerance una misura dell'area massima creata da un nodo per il nodo da rimuovere

Esempi

* geom_from_wkt('LineString(0 0, 5 0, 5.01 10, 5.02 0, 10 0)'),tolerance:=5)) → 'LineString(0 0, 10 0)'

--


single_sided_buffer

Definizione

Restituisce una geometria formata facendo un buffer solo da un lato di una geometria di tipo linestring. Le distanze sono espresse nel SR di tale geometria.

Sintassi:

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

[ ] indica componenti opzionali

Argomenti:

  • geometry una geometria (multi)linestring
  • distance distanza di buffer. Valori positivi saranno bufferizzati a sinistra delle linee, valori negativi a destra
  • segments numero di segmenti da usare per rappresentare un quarto di cerchio quando è utilizzato uno stile di unione arrotondato. Un numero grande risulta in un buffer più morbido, con più nodi.
  • join stile di unione per gli angoli, dove 1 = arrotondato, 2 = seghettato e 3 = smussato
  • miter_limit limite sul rapporto di seghettatura usato per angoli molto appuntiti (solamente quando si usano le unioni seghettate)

Esempi

* single_sided_buffer($geometry, 10.5) → linea bufferizzata a sinistra di 10.5 unità
* single_sided_buffer($geometry, -10.5) → linea bufferizzata a destra di 10.5 unità
* single_sided_buffer($geometry, 10.5, segments:=16, join:=1) → linea bufferizzata a sinistra di 10.5 unità, usando più segmenti per risultare in un buffer più morbido
* single_sided_buffer($geometry, 10.5, join:=3) → linea bufferizzata a sinistra di 10.5 unità, usando un'unione smussata

--


smooth

Definizione

Smussa una geometria con l'aggiunta di ulteriori nodi che arrotondano gli angoli nella geometria.

Sintassi:

  • smooth( geometry, iterations=1, offset=0.25, min_length=1, max_angle=180)

Argomenti:

  • geometry una geometria
  • iterations Numero di iterazioni di smussatura da applicare. Valori più alti fanno risultare geometria più morbide, ma più complesse.
  • offset valore tra 0 e 0.5 che controlla quanto la geometria smussata segua strettamente la geometria originale. Valori più piccoli risultano in una lisciatura più stretta, valori più grandi risultano in una lisciatura più larga.
  • min_length lunghezza minima dei segmenti ai quali applicare la smussatura. Questo parametro può essere usato per evitare di posizionare nodi aggiuntivi eccessivi nei segmenti più corti della geometria.
  • max_angle angolo massimo (0-180) da applicare al nodo per la smussatura. Abbassando intenzionalmente l'angolo massimo si abbassa l'arrotondamento sugli angoli della geometria. Per esempio, un valore di 80 gradi preserverà l'angolo nella geometria.

Esempi

- geom_to_wkt(smooth(geometry:=geom_from_wkt('LineString(0 0, 5 0, 5 5)'),iterations:=1,offset:=0.2,min_length:=-1,max_angle:=180)) → 'LineString (0 0, 4 0, 5 1, 5 5)'


start_point

Definizione

Restituisce il primo nodo di una geometria.

Sintassi:

  • start_point( geometry)

Argomenti:

  • geometry oggetto geometria

Esempi

* geom_to_wkt(start_point(geom_from_wkt('LINESTRING(4 0, 4 2, 0 2)'))) → 'Point (4 0)'

Start_point di geometria poligonale:

Start_point di geometria lineare:


sym_difference

Definizione

Restituisce una geometria che rappresenta la porzione di due geometrie che non si interseca.

Sintassi:

  • sym_difference( geometry1, geometry2)

Argomenti:

  • geometry1 una geometria
  • geometry2 una geometria

Esempi

* geom_to_wkt( sym_difference( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 8 8)' ) ) ) → LINESTRING(5 5, 8 8)

Espressione

-- differenza simmetrica tra le due linee
sym_difference( 
make_line(  -- linea a
    start_point(geometry(get_feature_by_id('linea_a',0))), 
    start_point($geometry),
    end_point(geometry(get_feature_by_id('linea_a',0)))),
make_line(  -- linea b
    start_point($geometry), 
    end_point(geometry(get_feature_by_id('linea_a',0))),
    end_point($geometry))
                )
-- NB: -- l' ordine delle geometrie è indifferente

--


tapered_buffer

Definizione

Crea un buffer lungo una geometria della linea in cui il diametro del buffer varia in modo uniforme sulla lunghezza della linea.

Sintassi:

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

[ ] contrassegna componenti opzionali

Argomenti:

  • geometry input geometry. Deve essere una (multi) geometria della linea.
  • start_width larghezza del buffer all'inizio della linea,
  • end_width larghezza del buffer alla fine della riga.
  • segments numero di segmenti per approssimare le curve del quarto di cerchio nel buffer

Esempi

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

--

QGIS - feature


touches

Definizione

Verifica se una geometria tocca un'altra. Restituisce vero (1) se le geometrie hanno almeno un punto in comune, ma i loro interni non si intersecano.

Sintassi:

  • touches( geometry1, geometry2)

Argomenti:

  • geometry1 una geometria
  • geometry2 una geometria

Esempi

* touches( geom_from_wkt( 'LINESTRING(5 3, 4 4)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → 1
* touches( geom_from_wkt( 'POINT(4 4)' ), geom_from_wkt( 'POINT(5 5)' ) ) → 0

Nota bene:

--

Osservazioni

Usando algoritmo Seleziona per espressione presente in strumenti di processing oppure icona (Ctrl+F3):

- touches(geometry(get_feature( 'province_rt_rt','pk_uid','46')),$geometry)

dove:

  • geometry1 è geometry(get_feature( 'province_rt_rt','pk_uid','52'))
  • geometry2 è $geometry

seleziono tutti i comuni touches (toccati) dalla provincia con pk_uid46 (Siena)

PS: potrei anche negare (NOT) l'espressione per selezionare il complementare (tutti i comuni tranne quelli toccati dalla provincia di Siena).

NOT touches(geometry(get_feature( 'province_rt_rt','pk_uid','52')),$geometry)


transform

Definizione

Restituisce la geometria trasformata da un SR sorgente ad un SR di destinazione.

Sintassi:

  • transform( geometry, source_auth_id, dest_auth_id)

Argomenti:

  • geometry una geometria
  • source_auth_id ID del SR sorgente
  • dest_auth_id ID del SR destinazione

Esempi

* geom_to_wkt( transform( $geometry, 'EPSG:2154', 'EPSG:4326' ) ) → POINT(0 51)

--


translate

Definizione

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

Sintassi:

  • translate( geometry, dx, dy)

Argomenti:

  • geometry una geometria
  • dx delta x
  • geomdyetry delta y

Esempi

* translate($geometry, 5, 10) → una geometria dello stesso tipo come l'originale

--


union

Definizione

Restituisce una geometria che rappresenta l'insieme dei punti dell'unione delle geometrie.

Sintassi:

  • union( geometry1, geometry2)

Argomenti:

  • geometry1 una geometria
  • geometry2 una geometria

Esempi

* geom_to_wkt( union( geom_from_wkt( 'POINT(4 4)' ), geom_from_wkt( 'POINT(5 5)' ) ) ) → MULTIPOINT(4 4, 5 5)

Espressione

-- unione delle due linee
union( 
make_line(  -- linea a
    start_point(geometry(get_feature_by_id('linea_a',0))), 
    start_point($geometry),
    end_point(geometry(get_feature_by_id('linea_a',0)))),
make_line(  -- linea b
    start_point($geometry), 
    end_point(geometry(get_feature_by_id('linea_a',0))),
    end_point($geometry))
                )
-- NB: -- l' ordine delle geometrie è indifferente

--


wedge_buffer

Definizione

Restituisce un buffer a forma di cuneo che origina da una geometria del punto.

Sintassi:

  • wedge_buffer( geometry, azimuth, width, outer_radius[,inner_radius=0.0])

[ ] contrassegna componenti opzionali

Argomenti:

  • geometry punto centrale (origine) del buffer. Deve essere una geometria puntuale.
  • azimuth (in gradi) per il centro del cuneo da puntare.
  • width buffer w larghezza (in gradi). Si noti che il cuneo si estenderà fino a metà della larghezza angolare su entrambi i lati della direzione dell'azimut.
  • outer_radius raggio esterno per i buffers
  • inner_radius raggio interno opzionale per i buffers

Esempi

* wedge_buffer(center:=geom_from_wkt('POINT(1 2)'),azimuth:=90,width:=180,outer_radius:=1) → Un buffer a forma di cuneo centrato sul punto (1,2), rivolto verso est, con una larghezza di 180 gradi e raggio esterno di 1.

--


within

Definizione

Controlla qualora una geometria sia interna ad un'altra. Restituisce 1 (vero) se la geometria a è completamente contenuta nella_ geometria b_.

Sintassi:

  • within( geometry1, geometry2)

Argomenti:

  • geometry1 una geometria
  • geometry2 una geometria

Esempi

* within( geom_from_wkt( 'POINT( 0.5 0.5)' ), geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))' ) ) → 1
* within( geom_from_wkt( 'POINT( 5 5 )' ), geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0 ))' ) ) → 0

Osservazioni

Usando algoritmo Seleziona per espressione presente in strumenti di processing oppure icona (Ctrl+F3):

- within($geometry,geometry(get_feature( 'province_rt_rt','pk_uid','53')))

dove:

  • geometry1 è $geometry
  • geometry2 è geometry(get_feature( 'province_rt_rt','pk_uid','53'))

seleziono tutti i comuni within (contenuti) nella provincia con pk_uid53 (Grosseto)

PS: potrei anche negare (NOT) l'espressione per selezionare il complementare (tutti i comuni tranne quelli contenuti nella provincia di Grosseto).

NOT within($geometry,geometry(get_feature( 'province_rt_rt','pk_uid','53')))

Altro esempio con condizione sulle etichette

Espressione

CASE WHEN within( $geometry,
geometry(get_feature('poligono','id',1))) = 1
THEN 'INTERNO'
ELSE 'NON INTERNO'
END


x

Definizione

Restituisce la minima coordinata x di una geometria punto, o la coordinata x del centroide di una geometria non puntuale.

Sintassi:

  • x( geometry)

Argomenti:

  • geometry una geometria

Esempi

* x( geom_from_wkt( 'POINT(2 5)' ) ) → 2
* x( $geometry ) → coordinata x del centroide dell'elemento corrente

--


x_max

Definizione

Restituisce la coordinata x massima di una geometria. I calcoli sono effettuati nel sistema di riferimento spaziale di tale geometria.

Sintassi:

  • x_max( geometry)

Argomenti:

  • geometry una geometria

Esempi

* x_max( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 4

--


x_min

Definizione

Restituisce la coordinata x minima di una geometria. I calcoli sono effettuati nel sistema di riferimento spaziale di tale geometria.

Sintassi:

  • x_min( geometry)

Argomenti:

  • geometry una geometria

Esempi

* x_min( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 2

--


y

Definizione

Restituisce la coordinata y minima di una geometria puntuale, o la coordinata y del centroide di una geometria non puntuale.

Sintassi:

  • y( geometry)

Argomenti:

  • geometry una geometria

Esempi

* y( geom_from_wkt( 'POINT(2 5)' ) ) → 5
* y( $geometry ) → coordinata y del centroide dell'elemento corrente

--


y_max

Definizione

Restituisce la coordinata y massima di una geometria. I calcoli sono effettuati nel sistema di riferimento spaziale di tale geometria.

Sintassi:

  • y_max( geometry)

Argomenti:

  • geometry una geometria

Esempi

* y_max( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 8

--


y_min

Definizione

Restituisce la coordinata y minima di una geometria. I calcoli sono effettuati nel sistema di riferimento spaziale di tale geometria.

Sintassi:

  • y_min( geometry)

Argomenti:

  • geometry una geometria

Esempi

* y_min( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 5

--


z

Definizione

Restituisce la coordinata z di una geometria puntuale.

Sintassi:

  • z( geometry)

Argomenti:

  • geometry una geometria punto

Esempi

* z( geom_from_wkt( 'POINTZ(2 5 7)' ) ) → 7


z_max

Definizione

Restituisce la coordinata z massima di una geometria.

Sintassi:

  • z_max( geometry)

Argomenti:

  • geometry una geometria con z coordinata

Esempi

* z_max( geom_from_wkt( 'POINT ( 0 0 1 )' ) ) → 1
* z_max( geom_from_wkt( 'MULTIPOINT ( 0 0 1 , 1 1 3 )' ) ) → 3
* z_max( make_line( make_point( 0,0,0 ), make_point( -1,-1,-2 ) ) ) → 0
* z_max( geom_from_wkt( 'LINESTRING( 0 0 0, 1 0 2, 1 1 -1 )' ) ) → 2
* z_max( geom_from_wkt( 'POINT ( 0 0 )' ) ) → NULL


z_min

Definizione

Restituisce la coordinata z minima di una geometria.

Sintassi:

  • z_min( geometry)

Argomenti:

  • geometry una geometria con z coordinata

Esempi

* z_min( geom_from_wkt( 'POINT ( 0 0 1 )' ) ) → 1
* z_min( geom_from_wkt( 'MULTIPOINT ( 0 0 1 , 1 1 3 )' ) ) → 1
* z_min( make_line( make_point( 0,0,0 ), make_point( -1,-1,-2 ) ) ) → -2
* z_min( geom_from_wkt( 'LINESTRING( 0 0 0, 1 0 2, 1 1 -1 )' ) ) → -1
* z_min( geom_from_wkt( 'POINT ( 0 0 )' ) ) → NULL

Back to top