On Tue, 5 Jun 2018 12:17:01 +0200, Alessandro Ciali wrote:
Ciao Sandro e ciao a tutti,
la spatial table che ho usato per la geometria funziona correttamente,
l'ho importata da uno shape in un db spatialite direttamente da DB
manager in QGIS.


questa informazione e' del tutto irrilevante.
che la tua View funzioni egragiamente dal mero punto di vista SQL non
implica che lo Spatial Index venga usato in modo consistente dal
data provider, sono due questioni del tutto scorrelate.


La query che ho usato per creare la view è questa:

SELECT p.the_geom, s.pkey_spu, s.ubicazione_prov, s.ubicazione_com,
s."ID_SPU", s."coord_X", s."coord_Y", s.mod_identcoord,
s.desc_modcoord, s.quota_slm, s.modo_quota, s.data_sito, s.note_sito
FROM "Sito_puntuale" s
LEFT JOIN ind_pu p ON p."ID_SPU" = s."ID_SPU"


se non mi passi anche le due CREATE TABLE con cui hai creato sia
"sito_puntuale" che "ind_pu" non posso dirti assolutamente nulla,
perche' mi stai nascondendo il datatype delle colonne, e soprattutto
mi stai nascondendo come sono state definite le PK, che e' l'informazione assolutamente critica che serve per poter dare una valutazione motivata.

hint: se usi spatialite_gui c'e' una comodissima voce di menu
che ti permette di visualizzare direttamente la CREATE TABLE
con cui e' stata creata ciascuna tavola.

altrimenti lo puoi scoprire facilmente tramite questa query SQL:

SELECT sql
FROM sqlite_master
WHERE type = 'table' AND name = '<nome-della-tavola>';


e utilizzando l'opzione "create a view" sempre su db manager, dando
per scontato che la registrasse correttamente. 


quando di fa debugging la prima regola aurea e' di non dare mai nulla
per scontato; occorre sempre verificare.
mi puoi cortesemente dire cosa ti ritorna questa query SQL ?

SELECT *
FROM views_geometry_column
WHERE f_view_name = '<nome-della-tua-view>';


Inoltre non mi è chiara una cosa al punto 3 della tua risposta: se la
spatial view deve contenere necessariamente un  ROWID che corrisponde
al  ROWID della spatial table, come posso costruire spatial views con
relazioni di 1 a N fra spatial table e tabelle semplici? In questo
caso i valori di ROWID si duplicheranno e non saranno più univoci.


il ROWID presente nella Spatial View non ha alcuna necessita' di essere
univoco a livello della View; serve solo ad assicurare che per ciascuna
Geometry della Spatial View il data provider possa risalire correttamente alla voce corrispondente dello Spatial Index che supporta la tavola-madre
che fornisce le Geometries alla View.

ciao Sandro
_______________________________________________
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