[Gfoss] QspatiaLite 5.0.3

a.furieri a lqt.it a.furieri a lqt.it
Gio 26 Gen 2012 12:57:32 CET


Giusto un paio di chiarimenti di base per quanto
riguarda la corretta gestione delle Spatial Views 
di SpatiaLite; basati su di un esempio facilmente
replicabile, cosi' tutto e' piu' chiaro (spero ...)
useremo spatialite_gui per predisporre il DB.



a) importiamo gli SHP dei confini amministativi ISTAT:

http://www.istat.it/it/files/2011/04/reg2011.zip
http://www.istat.it/it/files/2011/04/prov2011.zip
n.b.: usiamo regioni e province perche' sono meno
numerose, e la query girera' snella e veloce senza 
richiedere ottimizzazioni complicate.



b) a questo punto creiamo la VIEW:
   
CREATE VIEW regioni AS
SELECT r.ROWID AS ROWID, r.cod_reg AS cod_reg, 
  r.nome_reg AS nome_reg, Count(*) AS nro_prov, 
  r.Geometry AS Geometry
FROM reg2011 AS r
JOIN prov2011 AS p ON (p.cod_reg = r.cod_reg)
GROUP BY r.cod_reg;

*** un paio di punti da notare con cura:
*** SQLite esige che tutte le colonne della VIEW
*** abbiano un nome esplicito [.. AS cod_reg]
*** puo' sembrare sciocco, ma solo in questo modo 
*** si ottiene una definizione "pulita".
***
*** ed occorre necessariamente inserire (esplicitamente)
*** il riferimento al ROWID della tavola che contiene
*** la Geometria (altrimenti SpatiaLite non sara' poi
*** in grado di utilizzare lo Spatial Index, se esiste)



c) infine occorre registrare la VIEW nella apposita tavola 
   di metadati (views_geometry_columns):

INSERT INTO views_geometry_columns
  (view_name, view_geometry, view_rowid, 
   f_table_name, f_geometry_column)
VALUES ('province', 'Geometry', 'ROWID', 
  'reg2011', 'Geometry');



d) fatto: potete finalmente aprire QGIS e connettere la 
   VIEW "regioni" che apparira' come qualsiasi altro layer.

====

per quanto mi riguarda personalmente non ho idea se i vari 
plugin per QGIS come Qspatialite e/o DB Manager implementino 
il supporto che consente di definire nel modo corretto le 
Spatial Views di SpatiaLite.
eventualmente contattate i rispettivi sviluppatori e/o 
aprite un ticket su QGIS.

ciao Sandro


Maggiori informazioni sulla lista Gfoss