Non l'ho testato e potrebbe essermi sfuggito qualche errore:
prova un po'
-------------------------
select 'Creazione indice spaziale su ', 'nodes_all','geom',
coalesce(checkspatialindex('nodes_all','geom'),CreateSpatialIndex('nodes_all','geom'));
select dropgeotable('_templines');
create table _templines(pk_uid integer primary key autoincrement, id integer);
select addgeometrycolumn('_templines','geom',(SELECT cast(srid as
integer) FROM geometry_columns WHERE lower(f_table_name) =
lower('strade') AND lower(f_geometry_column) = lower('geom')),
'multilinestring', 'xy');
insert into _templines (id, geom)
SELECT a.pk AS id,
casttomulti(ST_Split( a.geom, (select
casttomultipoint(st_collect(b.geom)) from "points_snapped" as b where
b.rowid in (select rowid from spatialindex where f_table_name =
'points_snapped' and f_geometry_column = 'geom' and search_frame =
a.geom)))) as geom
from "strade" a;
select dropgeotable('lines_split');
select ElementaryGeometries( '_templines' , 'geom' , 'lines_split' ,
'out_pk' , 'out_multi_id' , 1, ) as num, ' lines splitted' as label;
select createspatialindex('lines_split','geom');
select dropgeotable('_templines');
select UpdateLayerStatistics('lines_split');
-------------------------
Ciao,
Maurizio
Il 27/05/18, pigreco<pigrecoinfinito@gmail.com> ha scritto:
Buona domenica a tutti,
ho un problema che non riesco a risolvere, utilizzo spatialite 4.5 tramite
spatialite_gui 2.1.0 devel su macchina win10 64b
allego il database db_03.sqlite [0] con due geotabelle:
- nodes_all : tabella con geometria POINT 3045 XY
- strade: tabella con geometria LINESTRING 3045 XY
il mio obiettivo è quello di dividere le strade in corrispondenza dei punti,
cosa che riesco a fare per numero di punti e linee limitato, per questo db
non riesco e vorrei capire perché lo script, da me realizzato, non funziona
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');
PS: lo step1 dura parecchio, circa 12 minuti (perdonatemi!)
Grazie
[0] https://mega.nz/#!VcAnzIzI!SVJUVxoB_rGHrUPtMgpxC5WZDpf0so2CawCRlEchtxU
-----
https://pigrecoinfinito.wordpress.com/
--
Sent from:
http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/
_______________________________________________
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