Ciao a tutti,
pongo un quesito: Come faccio a visualizzare la geometria virtuale LINEARE generata da una tabella POINT con makeline()? Ho provato così, manca l'ultimo passo: "create table punti (pk integer primary key, nome text); select addgeometrycolumn('punti','geom',32632,'POINT',2); create view virtual_lines as select a.rowid as rowid, st_astext(makeline(a.geom, b.geom)) as wkt, st_length(makeline(a.geom, b.geom)) as lunghezza, makeline(a.geom, b.geom) as geom from punti a, punti b; select * from virtual_lines; --fin qui OK finchè è tabellare, ma la geometria in mappa?" --problema geometria virtuale da visualizzare insert into views_geometry_columns (view_name, view_geometry, view_rowid, f_table_name, f_geometry_column, read_only) values ('virtual_lines', 'the_geom', 'rowid', 'QUALE_TABELLA??', 'geom',1); --con postgis è facile (st_makeline(a.geom, b.geom))::geometry(LineString,32632) as geom Ringrazio e buon weekend! Simone _______________________________________________ [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 |
On Fri, 7 Sep 2018 13:26:53 +0200 (CEST), [hidden email]
wrote: > Ciao a tutti, > pongo un quesito: > Come faccio a visualizzare la geometria virtuale LINEARE generata da > una tabella POINT con makeline()? > > Ho provato così, manca l'ultimo passo: > > "create table punti > (pk integer primary key, > nome text); > select addgeometrycolumn('punti','geom',32632,'POINT',2); > > create view virtual_lines as > select > a.rowid as rowid, > st_astext(makeline(a.geom, b.geom)) as wkt, > st_length(makeline(a.geom, b.geom)) as lunghezza, > makeline(a.geom, b.geom) as geom > from punti a, punti b; > > select * from virtual_lines; > --fin qui OK finchè è tabellare, ma la geometria in mappa?" > Simone, SpatiaLite non e' PostGIS, e soprattutto SQLite non e' PostgreSQL; ci sono alcuni punti specifici in cui l'architettura rende assolutamente impossibili alcune operazioni. nello specifico, le Spatial Views di SpatiaLite non possono assolutamente _MAI_ rielaborare in nessun modo le Geometrie, perche' altrimenti impazzisce letteramente lo Spatial Index (che su SQLite e' implementato in modo decisamente esotico). quindi, una View come la tua, che genera "al volo" dei segmenti a partire da punti tramite la funzione MakeLine() non potra' mai diventare in nessun modo una Spatial View visualizzabile su una mappa. > --problema geometria virtuale da visualizzare > insert into views_geometry_columns > (view_name, view_geometry, view_rowid, f_table_name, > f_geometry_column, read_only) > values ('virtual_lines', 'the_geom', 'rowid', 'QUALE_TABELLA??', > 'geom',1); > > --con postgis è facile > (st_makeline(a.geom, b.geom))::geometry(LineString,32632) as geom > per l'appunto; c'eri gia' arrivato da solo al punto critico. QUALE TABELLA ?? nel tuo caso non esiste la tavola di origine, proprio perche' la geometria viene "prodotta al volo"; e quindi non la puoi assolutamente registrare su views_geometry_columns. puoi pero' provare una strategia alternativa; invece di usare una View puoi usare una Table vera e propria: basta solo che invece di chiamare: create view virtual_lines as select ... blah blah .... tu chiami al suo posto: create table virtual_lines as select ... blah blah .... poi ovviamente dovrai completare l'operazione chiamando: SELECT RecoverGeometryColumn() e magari anche: SELECT CreateSpatialIndex() e' sicuramente piu' macchinoso, e probabilmente richiede di cancellare e ricreare la tavola ad intervalli fissi, ma alla fine in genere e' una metodologia che produce risultati abbastanza soddisfacenti. 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 |
Free forum by Nabble | Edit this page |