Ciao Toto', ho fatto questa verifica :

nella Tabella dello Shape File, *ho creato due nuovi campi* :

len_iv_1 : length($geometry) --- > 126671,70939386162
len_iv_2 : $length --- > 126721,31029232376

*Definizioni: *

$length
Restituisce la lunghezza di una stringa di linee. Se hai bisogno della
lunghezza di un bordo di un poligono, usa invece $perimetro.
La lunghezza calcolata da questa funzione rispetta sia l'impostazione
dell'ellissoide del progetto corrente che le impostazioni
dell'unità di distanza. Per esempio, se è stato impostato un ellissoide per
il progetto, allora la lunghezza calcolata sarà ellissoidale,
e se non è impostato alcun ellissoide, allora la lunghezza calcolata sarà
planimetrica.

length($geometry)
Calcola la lunghezza di un oggetto geometria linea. I calcoli sono sempre
planimetrici nel Sistema di Riferimento Spaziale (SRS) di questa geometria,
e le unità della lunghezza restituita corrisponderanno alle unità dell'SR.
Questo differisce dai calcoli eseguiti dalla funzione $length,
che eseguirà calcoli ellissoidali basati sulle impostazioni di ellissoide e
unità di distanza del progetto.

*Mentre con le espressioni, si hanno i seguenti risultati :*

aggregate(
layer:='testOne',
aggregate:='array_agg',
expression:=$length) [0]

126671,70939386162


aggregate(
layer:='testOne',
aggregate:='array_agg',
expression:=length($geometry))

126671,70939386162


*Caricando il file in DB Sqlite :*

SELECT ST_Length(geometry) AS length
FROM testOne;

il risultato è : 126671,70939386162



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


Ivano

Il giorno mar 19 dic 2023 alle ore 08:14 Totò Fiandaca via QGIS-it-user <
qgis-it-user@lists.osgeo.org> ha scritto:

> Buongiorno,
> scrivo solo per capire se è un comportamento voluto o è un bug quanto in
> oggetto.
>
> descrizione problema:
> ho un layer lineare (testOne) e una tabella (tableOne) senza geometria,
> avvio il *field calc* dalla tabella e scrivo la seguente espressione, per
> aggiornare l'attributo *len*:
>
> 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.
>
> PS. il progetto è impostato correttamente con ellissoide, ovvero siamo al
> corrente che:'La lunghezza calcolata da questa funzione rispetta sia
> l'impostazione dell'ellissoide del progetto corrente che le impostazioni
> dell'unità di distanza'
>
> Allego dati e progetto di esempio.
>
> Testato sia su QGIS 3.28.13 LTR Firenze che su QGIS 3.34.1 Prizren da
> OSGeo4W - win 10 PRO 64b
>
> saluti
>
> https://mega.nz/file/pFQnkYxJ#3zNJR0rzH-a4opip3rgkbJoLrRUlNu7-vwXeiUra_Hs
>
> --
> *Ing. Salvatore Fiandaca*
> *mobile*.:+39 327.493.8955
> *m*: *pigrecoinfin...@gmail.com <pigrecoinfin...@gmail.com>*
> *C.F*.: FNDSVT71E29Z103G
> *P.IVA*: 06597870820
> *membro QGIS Italia - http://qgis.it/ <http://qgis.it/>*
> *socio GFOSS.it - *http://gfoss.it/
> *member OSGeo* - *https://www.osgeo.org/member/fiandaca/*
> <https://www.osgeo.org/member/fiandaca/>
> *blog:*
> * https://pigrecoinfinito.com/ <https://pigrecoinfinito.com/> FB: Co-admin
> - https://www.facebook.com/qgis.it/ <https://www.facebook.com/qgis.it/>**
> <https://www.facebook.com/qgis.it/> *
> *TW:  <http://goog_95411464>**https://twitter.com/totofiandaca
> <https://twitter.com/totofiandaca>*
>
> 43°51'0.54"N  10°34'27.62"E - EPSG:4326
>
> “Se la conoscenza deve essere aperta a tutti,
> perchè mai limitarne l’accesso?”
> R. Stallman
>
> Questo documento, allegati inclusi, contiene informazioni di proprietà di
> FIANDACA SALVATORE e deve essere utilizzato esclusivamente dal destinatario
> in relazione alle finalità per le quali è stato ricevuto. E' vietata
> qualsiasi forma di riproduzione o divulgazione senza l'esplicito consenso
> di FIANDACA SALVATORE. Qualora fosse stato ricevuto per errore si prega
> di informare tempestivamente il mittente e distruggere la copia in proprio
> possesso.
>
>
> _______________________________________________
> QGIS-it-user mailing list
> QGIS-it-user@lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/qgis-it-user
>
_______________________________________________
QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-it-user

Rispondere a