On Sun, 27 May 2018 02:18:45 -0700 (MST), pigreco wrote:
in particolare lo step4 (script.sql [0]) che ritorna (facendo il Check geometry) due tipologie di geometria (linestring e multilinestring) e quindi
lo step5 non genera nessuna geometria.

--step4
CREATE TABLE "lines_split" AS
SELECT a.pk AS id,
ST_LinesCutAtNodes(st_segmentize(a.geom,6),ST_Union(b.geom)) AS geom
FROM "strade" a, "points_snapped" b
GROUP BY a.pk,a.geom;
SELECT

RecoverGeometryColumn('lines_split','geom',3045,'MULTILINESTRING','XY');


su PostGis una colonna MultiQualcosa puo' contenere indifferentemente
sia le geometrie MultiPart che le geometrie SinglePart dello stesso
tipo, ma SpatiaLite impone vincoli piu' stringenti: o sono tutte
MultiPart o sono tutte SinglePart.

quando, come nel tuo caso, c'e' di mezzo una funzione che puo' tornare
entrambi i tipi c'e' un modo facilissimo per risolvere il problema;
basta chiamare l'appropriato operatore di Cast [1] per trasformare
tutti i SingleQualcosa nel corrispondente MultiQualcosa.
quindi nel tuo caso specifico:

SELECT a.pk AS id, CastToMultiLinestring(
ST_LinesCutAtNodes(st_segmentize(a.geom,6),ST_Union(b.geom))) AS geom
FROM "strade" a, "points_snapped" b
GROUP BY a.pk,a.geom;

vedrai che a questo punto tornera' tutti MultiLinestring, e quindi la
successiva AddGeometryColumn() avra' successo.

ciao Sandro

[1] http://www.gaia-gis.it/gaia-sins/spatialite-sql-latest.html#cast
_______________________________________________
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

Rispondere a