Salve a tutti, sto dedicando questi giorni a familiarizzare con i TRIGGER in PostGIS prendendo spunto da questa[1] guida. Sono riuscito a creare automaticamente un buffer a partire dall'editing di un vettore lineare e quello che voglio fare ora è eseguire un *intersection* tra i buffer e alcuni poligoni. Ho quindi due tabelle principali: *buffer* e *polygons*; l'output dell'intersezione deve confluire in una tabella in cui verranno riportati anche gli id dei poligoni da cui è scaturita l'intersezione(idb per buffer e idp per polygons). La tabella in cui confluiranno questi dati l'ho chiamata *intersection_output*.
Ho scritto quindi questo TRIGGER: > CREATE OR REPLACE FUNCTION intersection_function() RETURNS trigger AS > $BODY$ > BEGIN > SELECT > a.idb, > b.idp, > ST_Intersection(a.geom, b.geom) as geom > FROM > buffer AS a, > polygons AS b > WHERE ST_Intersects(a.geom, b.geom); > RETURN NEW; > END; > $BODY$ > LANGUAGE 'plpgsql'; > CREATE TRIGGER make_intersection > AFTER INSERT ON intersection_output > FOR EACH ROW EXECUTE PROCEDURE intersection_function(); Mi aspetto quindi che ogni volta che creo un poligono, ad esempio con QGIS, nella tabella *buffer*, esso venga intersecato con il o i poligoni, presenti in *polygons*, che vengono coperti dall'area di buffer ed il risultato di questa intersezione deve essere scritto in *intersection_output*. Il problema che riscontro è che la tabella delle intersezioni resta sempre vuota nonostante sia le geometrie di buffer che di polygons siano in 4326. Sicuramente sbaglio io qualcosa ma non mi è chiaro dove. ____ [1] http://www.postgresqltutorial.com/creating-first-trigger-postgresql/ *ing.Massimiliano Moraca* *Analisi, progettazione e sviluppo di soluzioni GIS e WebGIS* *P.IVA*: 08700081212 *CELL*: 333 59 49 583 (*lun - ven 9.00 - 18.00*) *WEB*: www.massimilianomoraca.it * Attività svolta ai sensi della Legge 4 del 14 gennaio 2013, art.1* _______________________________________________ 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. 764 iscritti al 23/08/2019