Spatialite - calcolo lunghezza 3d

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Spatialite - calcolo lunghezza 3d

Falz
ciao a tutti,
gentilmente volevo sapere se è stata implementata la funzione per calcolare la lunghezza 3d delle polilinee, almeno nelle ultime versioni...
Ho provato con spatialite 4.4 scrivendo:

"SELECT
 ST_3DLength(GeomFromText('LINESTRING(0 0 0,1 1 1)'))"
ma ottengo NULL.

Dove sbaglio?
grazie!
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
796 iscritti al 28/12/2017
Reply | Threaded
Open this post in threaded view
|

Re: Spatialite - calcolo lunghezza 3d

pigreco
Ho fatto un rapida prova con spatialite 4.4 e 4.5, stesso risultato:

SELECT
ST_3DLength(GeomFromText('LINESTRINGZ(0 0 0,1 1 1)'))
risultato:
1.732051

NB: devi uisare LINESTRINGZ

saluti

Il giorno 19 gennaio 2018 12:32, <[hidden email]> ha scritto:

> ciao a tutti,
> gentilmente volevo sapere se è stata implementata la funzione per
> calcolare la lunghezza 3d delle polilinee, almeno nelle ultime versioni...
> Ho provato con spatialite 4.4 scrivendo:
>
> "SELECT
>  ST_3DLength(GeomFromText('LINESTRING(0 0 0,1 1 1)'))"
> ma ottengo NULL.
>
> Dove sbaglio?
> grazie!
> _______________________________________________
> [hidden email]
> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
> Questa e' una lista di discussione pubblica aperta a tutti.
> I messaggi di questa lista non hanno relazione diretta con le posizioni
> dell'Associazione GFOSS.it.
> 796 iscritti al 28/12/2017




--
*Ing. Salvatore Fiandaca*
*mobile*.:+39 327.493.8955
*m*: *[hidden email] <[hidden email]>*
*C.F*.: FNDSVT71E29Z103G
*P.IVA*: 06597870820
*membro QGIS Italia - http://qgis.it/ <http://qgis.it/>*
*socio GFOSS.it - *http://gfoss.it/
*blog:*
* https://pigrecoinfinito.wordpress.com/
<https://pigrecoinfinito.wordpress.com/> FB: Co-admin
- https://www.facebook.com/qgis.it/ <https://www.facebook.com/qgis.it/>**
<https://www.facebook.com/qgis.it/> *
*FB: moderatore - **https://www.facebook.com/groups/GisItalia/
<https://www.facebook.com/groups/GisItalia/>**
<https://www.facebook.com/groups/GisItalia/> *
*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.
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
796 iscritti al 28/12/2017
Reply | Threaded
Open this post in threaded view
|

Re: Spatialite - calcolo lunghezza 3d

a.furieri
On Fri, 19 Jan 2018 13:15:57 +0100, Totò Fiandaca wrote:
> Ho fatto un rapida prova con spatialite 4.4 e 4.5, stesso risultato:
>

la ST_3DLength() richiede il supporto della libreria librttopo,
e quindi e' disponibile solo sulle versioni piu' recenti
(appunto: 4.4 o 4.5)


> SELECT
> ST_3DLength(GeomFromText('LINESTRINGZ(0 0 0,1 1 1)'))
> risultato:
> 1.732051
>
> NB: devi uisare LINESTRINGZ
>

forse qua e' opportuno puntualizzare: a differenza di
PostGIS, SpatiaLite segue pedantemente le specifiche OGC,
e queste prevedono che nelle espressioni WKT il tipo
della geometria deve anche dichiarare esplicitamente
le dimensioni supportate.
n.b.: l'anomalia di PostGIS e' largamente giustificata
dal fatto che e' nato prima che OGC formalizzasse
definitvamente le specifiche per il WKT.

giusto alcuni esempi banali:

2D (XY)
-------------------
ST_GeomFromText('LINESTRING(0 0,1 1)')

3D (XYZ)
-------------------
ST_GeomFromText('LINESTRING Z(0 0 0,1 1 1)')

2D + misura (XYM)
-------------------
ST_GeomFromText('LINESTRING M(0 0 0,1 1 1)')

3D + misura (XYZM)
-------------------
ST_GeomFromText('LINESTRING ZM(0 0 0 0,1 1 1 1)')


naturalmente la regola si applica a tutti i tipi
geometrici (POINT, POLYGON etc)

n.b. secondo le specifiche OGC lo stile corretto
e' quello che vede uno spazio tra il nome del
tipo e le dimensioni, quindi p.es. "POLYGON ZM";
spatialite e' piu' tollerante, ed ammette un
numero arbitrario di spazi (anche nessuno) tra
i due elementi: "POLYGONZM" o "POLYGON    ZM"
sono perfetti sinonimi.

ovviamente se c'e' conflitto tra la dichiarazione
tipo+dimensioni ed il numero delle coordinate
effettivamente presenti il parsing dell'espressione
WKT fallira' tornando un bel NULL. esempio:

SELECT ST_GeomFromText('LINESTRING(0 0 0,1 1 1)');
-----------
NULL

ciao Sandro

_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
796 iscritti al 28/12/2017