GeoPackage è un formato di file universale creato sulla base di SQLite, per condividere e trasferire dati spaziali vettoriali e raster . È quindi l’alternativa ai formati raster come GeoTIFF e ai vettori come l’obsoleto shapefile .
Vediamo come aggiungere un trigger ad una geo-tabella di un geopackage, questo ci permetterà di velocizzare notevolmente il lavoro.
Supponiamo di tracciare dei punti e di voler compilare un campo in funzione del luogo in cui ricade: per semplicità uso un vettore poligonale (CLC) e un vettore puntuale (punti_test_trigger); di seguito il trigger usato:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CREATE TRIGGER update_liv3 AFTER INSERT | |
ON punti_test_trigger | |
BEGIN | |
update punti_test_trigger set liv3 = | |
(select livello3 from CLC where st_within(new.geometry, geom)) | |
WHERE ROWID=NEW.ROWID; | |
END; |
Animazione:
Il trigger è stato realizzato usando spatialite_gui:

Idea presa da qui
Geopackage per test
Buon lavoro.
interessante!
Quindi i gpkg si possono aprire con spatialite oltre che sqlite.
Un problemino (forse stupido) lo ho quando ho una tabella geom spatialite, caricata in qgis3, ci disegno le features in mappa, ma al momento del salvataggio ho il campo id/pk (pk integer not null primary key,) che si colora a sfondo rosso impedendomi l’ok. Con qgis2.x non c’è questo problema.
Come esce il “Genera automaticamente” nel campo fid? Si può fare con sqlite per qgis3?
saluti e grazie per i tuoi preziosi articoli!
"Mi piace""Mi piace"
Ciao, per il primo problema non saprei dirti, occorre vedere il database; per il secondo quesito si, si puo’ fare occorre aggiungere – al pk – integer PRIMARY KEY autoincrement NOT NULL
saluti
"Mi piace""Mi piace"
Grazie del suggerimento, in effetti avevo due casi:
-pk integer not null primary key, (funziona con qgis2 ma con qgis3 no)
-pk integer primary key autoincrement not null, (funziona in entrambe le versioni).
In pratica qgis3 vuole per forza “autoincrement” altrimenti blocca in partenza il salvataggio a sfondo rosso.
"Mi piace"Piace a 1 persona