Somma lunghezze nel poligono↵
Sommare le feature di un layer lineare che ricadono dentro poligoni, e ‘appendere’ i valori nella tabella attributi del layer poligonale.
Esiste una geo-algoritmo in processing (somma lunghezze linee) che fa questo lavoro in modo brillante ma crea un altro strato.
Un modo rapido per evitare la creazione di un nuovo layer è quello di utilizzare il calcolatore di campi:
- creare un nuovo campo 'tot_lungh' nel layer poligonale;
- popolarlo utilizzando la seguente espressione:
caso in cui i due layer hanno stesso EPSG:
aggregate(layer:='linee', aggregate:='sum',expression:=length(intersection(geometry(@parent),$geometry )), filter:=intersects( $geometry,geometry(@parent)))
caso in cui i due layer hanno DIVERSO EPSG:
aggregate(layer:='strade', aggregate:='sum',
expression:=length(intersection(transform(geometry(@parent),'EPSG:4326','EPSG:32633'),$geometry)),
filter:=intersects( $geometry,transform(geometry(@parent),'EPSG:4326','EPSG:32633')))
risultato:
NB: la piccola differenza tra le lunghezze è imputabile alla trasformazione di EPSG!!! La prima tabella è relativa al vettore poligonale la seconda, lunghezze delle linea, deriva dal geo-algoritmo in processing.
il geopackage è scaricabile [qui](../prova_tu/dati_esempi.zip Funzioni e variabili utilizzate: