Geopackage e i trigger

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:


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;

view raw

trigger_WP.sql

hosted with ❤ by GitHub

Animazione:

TRIGGER

Il trigger è stato realizzato usando spatialite_gui:

Immagine 2
spatialite_gui

 

Idea presa da qui

 

Geopackage per test

 

Buon lavoro.

Pubblicità

3 pensieri su “Geopackage e i trigger

  1. 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"

    1. 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"

  2. 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.

    Piace a 1 persona

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.