[QGIS-it-user] La funzione $length restituisci il valore cartesiano se richiamata dalla funzione aggregate

Andrea Giudiceandrea andreaerdna a libero.it
Mar 19 Dic 2023 04:23:18 PST


Il 19/12/2023 09:26, Ivano Giuliano via QGIS-it-user ha scritto:
> Ciao Toto', ho fatto questa verifica :

> Quindi la differenza del valore restituito, sta applicando la funzione 
> $length nello shape .

Ciao Ivano,
grazie per le prove effettuate. Non ho capito però cosa se ne dovrebbe 
dedurre relativamente al fatto che la funzione "$length" (e suppongo 
anche $area e $perimeter), quando usata all'interno della funzione 
"aggregate", si comporta diversamente da come ci si aspetterebbe.

Il giorno mar 19 dic 2023 alle ore 08:14 Totò Fiandaca via QGIS-it-user 
ha scritto:
 >     aggregate(
 >     layer:='testOne',
 >     aggregate:='array_agg',
 >     expression:=$length) [0]
 >
 >     il risultato (/126671,709 m/) è diverso da quello che mi aspetterei
 >     (/126721.310 m/) , in quanto restituisce il valore cartesiano di
 >     /$length/ e non quello ellissoidico, infatti se usassi $length nel
 >     vettore testOne otterrei il valore desiderato.

Ciao Salvatore,
penso che si tratti di un bug, suppongo molto probabilmente dovuto al 
fatto che quando viene valutata la funzione aggregate essa non "passa" 
al motore di valutazione dell'espressione (e suppongo anche al filtro) 
le informazioni relative al CRS del layer e all'ellissoide impostato per 
progetto che sono necessarie affinché la funzione $length possa 
calcolare la lunghezza ellissoidica invece che quella 
planimetrica/cartesiana.


Il 19/12/2023 10:19, Stefano Campus via QGIS-it-user ha scritto:
 > ovviamente la lunghezza è /ellissoidica /e non /ellissoidale/.
 > ho corretto la traduzione.

Ciao Stefano,
grazie. Mi pare che anche la prima frase contenga dei problemi:

Restituisce la lunghezza di una stringa di linee. Se hai bisogno della 
lunghezza di un bordo di un poligono, usa invece $perimetro.

Vedi per esempio: "stringa di linee" (che non ha significato) e 
"$perimetro" (che non esiste).

Vedo anche che per la funzione "length" sono indicati

"Variabile Operatori stringa"
"Variabile geometria"

che però non mi pare corrispondano al significato di "String variant" e 
"Geometry variant".

Inoltre riscontro spesso le incongruenze tra i nomi degli algoritmi di 
processing in QGIS e i nomi degli stessi algoritmi di processing 
indicati nella documentazione.

A presto.

Andrea


Maggiori informazioni sulla lista QGIS-it-user