[QGIS-it-user] La funzione $length restituisci il valore cartesiano se richiamata dalla funzione aggregate
Stefano Campus
skampus a gmail.com
Mar 19 Dic 2023 01:19:22 PST
ciao a tutti,
[...]
*Per esempio, se è stato impostato un ellissoide per il progetto, allora la
lunghezza calcolata sarà ellissoidale,*
[...]
ovviamente la lunghezza è *ellissoidica *e non *ellissoidale*.
ho corretto la traduzione.
s.
Il giorno mar 19 dic 2023 alle ore 09:26 Ivano Giuliano via QGIS-it-user <
qgis-it-user a lists.osgeo.org> ha scritto:
> 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 a 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*: *pigrecoinfinito a gmail.com <pigrecoinfinito a 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 a lists.osgeo.org
>> https://lists.osgeo.org/mailman/listinfo/qgis-it-user
>>
> _______________________________________________
> QGIS-it-user mailing list
> QGIS-it-user a lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/qgis-it-user
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.osgeo.org/pipermail/qgis-it-user/attachments/20231219/006fb628/attachment.htm>
Maggiori informazioni sulla lista
QGIS-it-user