[Gfoss] ST_Union e PostGIS

Massimiliano Moraca massimilianomoraca a gmail.com
Mer 13 Dic 2017 18:24:56 CET


Pare quindi che debba per forza fare conoscenza con i TRIGGER.....
Grazie a tutti per le indicazioni :)

Il giorno 13 dicembre 2017 18:18, <a.furieri a lqt.it> ha scritto:

> On Wed, 13 Dec 2017 17:46:13 +0100, Massimiliano Moraca wrote:
>
>> Da premettere che non ho usato(ancora) nessun plugin o tool di QGIS
>> per manipolare il db.
>>
>> I TRIGGER (di cui so 0!) potrebbero ovviare alla creazione delle view?
>>
>>
> si e no: tu hai due problemi distinti e separati.
> 1. far girare le cose sotto SQL; e qua la tua View (proprio quella
>    che hai gia' realizzato) potrebbe risultare decisamente utile.
> 2. riuscrire a convincere QGIS che deve visualizzare determinati
>    dati; qua scattano tutta una serie di vincoli ulteriori, e la
>    presenza di una aggregata crea un sacco di problemi.
>
> insomma, detto con altre parole, a te serve gestire due "layers":
> a. il primo e' un vero e proprio layer/tavola, e su cui andrai a
>    fare INSERT/UPDATE/DELETE
> b. il secondo rappresenta semplicemente l'aggregazione del primo,
>    ad eclusivo beneficio dei processi di visualizzazione di QGIS.
>    definire alcuni opportuni Triggers potrebbe consentirti di
>    rendere totalmente automatico il processo di corretta
>    sincronizzazione tra le due tavole.
>
>
> Mi spiego meglio. Mi sono rassegnato, per ora, a creare le tabelle e
>> non le view: un trigger potrebbe fare in modo che aggiornata la
>> tabella principale(ammesso si possa fare questo distinguo) si attivi
>> automaticamente l'aggiornamento di quella "correlata" all'area
>> aggiornata?
>>
>>
> esattamente: e' proprio cosi'.
> se vuoi entrare piu' in profondita' ti consiglio di studiarti
> il codice SQL dei triggers a supporto dello Spatial Index.
>
> prova a spulciare con SpatiaLite GUI una qualsiasi tavola con
> geometria e Spatial Index; vedrai che ha associati tre triggers
> il cui nome sara' "gii_<tavola>_<geom>" e "giu_<tavola>_<geom>"
>
> come vedrai, il trigger "gii_" intercetta tutte le INSERT sulla
> tavola-madre, ed aggiorna coerentemente lo Spatial Index.
> invece "giu_" intercetta tutte le UPDATE (ma solo nel caso in
> cui la geometria sia realmente variata), ed anche in questo
> caso aggiorna lo SpatialIndex.
>
> ovviamente il tuo caso richiedera' un approccio diverso, ma
> l'idea di fondo e' identica; ogni evento che tocca la
> tavola-madre dovra' riflettersi automaticamente sull'altra
> tavola.
>
>
> Come ho scritto stavo provando con i filtri di QGIS, ma forse Sandro
>> quando parlavi dell'approccio ingannevole di QGIS ti riferivi a
>> questo?
>>
>>
> mi riferivo semplicemente alla mia esperienza diretta maturata sulla
> mailing list di spatialite.
> per il 90% degli utenti (power users Spatial SQL, sviluppatori
> Java/C++/Python etc) il problema delle Spatial Views e delle Views
> "updatable" non si pone proprio, e' qualcosa che non interessa o
> che al massimo viene percepito come un'ardita stravaganza tecnica.
> tutte le domande relative a questi due argomenti arrivano solo
> ed esclusivamente dagli utenti di qgis.
> pare abbastanza ovvio che e' una specie di "bisogno indotto" ;-)
>
> ciao Sandro
>


Maggiori informazioni sulla lista Gfoss