Salve a tutti,
ho il seguente problema che non riesco a risolvere, cioè non riesco a
visualizzare correttamente in QGIS una spatial view:
ho realizzato un database sqlite [0] con due geotabelle:
1. tabella poligonale (multipolygon)
2. tabella lineare (multilinestring)
effettuo una query per ottenere l'intersezione tra la linea e i poligoni
ottenendo il risultato atteso in spatialite_gui;
dalla query realizzo una spatial view correttamente registrata; passo a qgis
per visualizzare la view e NON vedo nulla anche se la tabella attributi è
visibile e corretta.
questa è la query utilizzata:
select l.ogc_fid||p.ogc_fid as rowid,
CastToMultiLinestring(st_intersection(l.geometry,p.geometry)) as the_geom
from linee l,poligoni p
where st_intersects(l.geometry,p.geometry)=1;
ottenendo #6 righe;
creo spatial view:
create view v_linee as
select l.ogc_fid||p.ogc_fid as
rowid,CastToMultiLinestring(st_intersection(l.geometry,p.geometry))as
the_geom
from linee l,poligoni p
where st_intersects(l.geometry,p.geometry)=1;
INSERT INTO views_geometry_columns
(view_name, view_geometry, view_rowid, f_table_name, f_geometry_column,
read_only)
VALUES ('v_linee', 'the_geom', 'rowid', 'linee', 'geometry',1);
grazie per l'aiuto
[0] MEGA
-----
--
Sent from: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/
On Sat, 7 Apr 2018 08:26:46 -0700 (MST), pigreco wrote:
select l.ogc_fid||p.ogc_fid as rowid,
CastToMultiLinestring(st_intersection(l.geometry,p.geometry)) as the_geom
from linee l,poligoni p
where st_intersects(l.geometry,p.geometry)=1;
regola inviolabile:
la geometria presente in una Spatial View di SpatiaLite
per poter essere visualizzata dal data-provider QGIS deve
sempre coincidere esattamente con una colonna-geometria
presente in una della Tables utilizzate per costruire
la View.
in altri termini, la View non deve mai chiamare nessuna
funzione SQL che possa modificare in qualsiasi modo le
geometrie originali presenti nella Spatial Table su cui
si basa la Spatial View.
rispettare questo vincolo puo' essere sicuramente
considerato come pesantemente restrittivo, ma e'
assolutamente indispensabile perche' altrimenti tutta
quanta la logica degli Spatial Index (cosi' come sono
implementati su SQLite/SpatiaLite) finisce letteralmente
massacrata a pezzi ed iniziano a fioccare "risultati
assolutamente pazzi".
nella tua View ci sono ben due funzioni in cascata
che manipolano la geometria, e quindi e' del tutto
naturale che non potra' mai funzionare come ti aspetti.
ciao Sandro
a.furieri wrote
nella tua View ci sono ben due funzioni in cascata
che manipolano la geometria, e quindi e' del tutto
naturale che non potra' mai funzionare come ti aspetti.
ciao Sandro
Grazie per la rapida risposta, chiara e dettagliata.
-----
https://pigrecoinfinito.wordpress.com/
--
Sent from: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/