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 _______________________________________________ Gfoss@lists.gfoss.it 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