LRS (Linear Reference System) è un metodo di riferimento spaziale dove i luoghi lungo una linea sono descritti in termini di misurazioni rispetto a un punto preciso, come le pietre miliari lungo la strada.
Si immagini il seguente scenario:
Si vogliono generare automaticamente 3 diversi layer per ogni nuovo intervento aggiunto, ovvero aggiungendo solamente una nuova riga alla tabella dei lavori (tabella non spaziale):
I layer di base per questo lavoro sono solamente fiumi
e tabella_lavori
.
È importante che le due tabelle degli attributi abbiano un campo comune che
identifica il fiume, in questo esempio nome_fiume
per il layer fiumi
e
route
per la tabella tabella_lavori
.
I layer virtuali sono stati introdotti diverso tempo fa in QGIS e permettono di lanciare query SQL a tutti gli effetti su qualunque tipologia di dato. Quindi anche se i layer in input sono degli shapefile, si possono creare layer virtuali senza nessun problema.
Il grande vantaggio? I layer virtuali si comportano come le viste di un database: quindi al cambiamento di valori e attributi dei layer sorgenti, le viste si aggiornano di cosenguenza.
Un altro grande vantaggio? Le viste sono delle interrogazioni di tabelle esistenti quindi non viene occupato spazio nuovo su disco.
Utilizzando una combinazione delle funzioni ST_Line_Interpolate_Point e ST_Length otteniamo i tre layer virtuali che ci interessano.
Con una corretta e furba gestione dei moduli personalizzati di QGIS possiamo
quindi aggiungere una riga alla tabella_lavori
e avremo un aggiornamento
continuo dei layer virtuali di nostro interesse: