[Gfoss] spatialite

Maurizio Trevisani maurizio.trevisani a gmail.com
Dom 27 Maggio 2018 17:08:54 CEST


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 a 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 a 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


Maggiori informazioni sulla lista Gfoss