QGIS relazioni: plugin Actions for relations

A inizio dicembre 2020 è stato rilasciato un nuovo plugin per migliorare l’esperienza con le relazioni di QGIS. L’autore è Denis Rouzaud e fa parte del team OPENGIS.ch :

Il Plugin promette bene e secondo l’autore:

Abbiamo rilasciato un plugin per sfruttare al meglio le relazioni. Da una selezione di feature padre, utilizzando il menu contestuale nella tabella degli attributi o nell’albero dei layer, è possibile elencare facilmente elementi secondari o inserire in batch elementi secondari con gli stessi attributi.


Faccio un test e vediamo come si comporta il plugin:

  1. carico due strati informativi poligonali (RipGeo01012020_g_WGS84, Reg01012020_g_WGS84)
  2. creo una relazione 1:m (padre: RipGeo01012020_g_WGS84, figlio: Reg01012020_g_WGS84
  3. salvo il progetto.

Seleziono (almeno) due feature del layer Padre (RipGeo01012020_g_WGS84) dal menu contestuale (tabella attributi) compaiono due nuove opzioni:

  1. Show Referencing feature in ‘Reg01012020_g_WGS84‘ for relation ‘rel’;
  2. Add features in Referencing layer ‘Reg01012020_g_WGS84‘ for relation ‘rel’;
  1. Con la prima azione apre la tabella attributi del layer figlio con un filtro avanzato attivato in modo da visualizzare solo le righe relative alle feature padre selezionate;
  2. con la seconda azione si apre una maschera inserimento dati (è necessario attivare la modifica del layer figlio):

e gli attributi saranno ripetuti uno per ogni feature padre selezionato:

NOTE FINALI: il plugin è recentissimo e sicuramente ci saranno degli ulteriori sviluppi in quanto attualmente trovo alcuni piccoli bug o migliorie da fare, esempio: partendo dalla tabelle attributi padre, occorre necessariamente selezionare almeno due righe per avere, nel menu contestuale, le due azioni mentre nel menu contestuale del layer presente nella toc, basta selezionare un solo record per far apparire le due azioni:

inoltre è possibile creare altre azioni da Menu Plugins | Actions for Relations:

ma ci sono due icone (la prima serve ad aggiungere azioni e la seconda per eliminarle) incomprensibili e senza suggerimenti; inoltre è possibile aggiungere più azioni ma nei menu contestuali è visibile sola la prima. (tutto risolto)

Inoltre non ho ancora capito come funzionano le azioni presenti qui (risolto):

È un plugin utile ed interessante, lo userò spesso e segnalerò (tra qualche giorno) i bug descritti in questo blog post se non vengono risolti entro qualche giorno. 🙂

EDIT:


RIFERIMENTI

6 pensieri su “QGIS relazioni: plugin Actions for relations

  1. Ciao Totò, seguo con molto interesse la tua attività e volevo farti i complimenti.
    Volevo sottoporti un problema che mi è sorto nell’elaborazione di progetto di Qgis applicato alla mia attività. Ho una serie di elementi lineari (fossi, scoline agricole) nei quali va rilevata la presenza di infestazioni (larve di zanzara); questo rilievo va fatto 5-10 volte all’anno e comunicato a colleghi che poi si occupano di organizzare i trattamenti (devo fornire loro dei .kml). Avevo provato a predisporre un progetto contenente un layer con tutti i fossi rilevati l’anno precedente e metterlo in relazione con una tabella attributi contenente i campi data e una casella controllo per rilevare l’infestazione; ogni fosso può essere controllato più volte, quindi ho messo in relazione 1-m layer e tabella. Con i moduli inserimento è andata bene, riesco a inserire i rilievi. Il problema è che vorrei filtrare la tabella per data e avere evidenziata le feature sul layer dei fossi infestati in quel determinato giorno; ho installato il plugin “selection by relationship” ma non funziona come mi aspettavo. Inoltre ho provato a lavorare con questo progetto in Qfield ma appena provo a inserire un rilevo mi appare la scritta “Impossibile aggiungere figlio. Le chiavi primarie del genitore non sono disponibili”. Mi piacerebbe approfondire la questione, se lo trovi interessante contattami (dario.guidi72@gmail.com)

    Piace a 1 persona

  2. Ciao Totò, ho scoperto da poco il tuo blog e ho iniziato a seguirti anche su telegram.
    Vorrei, se posso, utilizzare questo spazio per chiedere una mano a te e agli utenti del blog in merito a una procedura da implementare su Qgis.
    Dato un layer di punti sovrapposti a un layer di linee, devo visualizzare i punti con una freccia allineata al segmento su cui sono posizionati. Per adesso utilizzo v.split (GRASS) sulle linee, calcolo l’angolo di rotazione della freccia (con questa formula: (atan((xat(-1)-xat(0))/(yat(-1)-yat(0)))) * 180/3.14159 + (180 *(((yat(-1)- yat(0)) < 0) + (((xat(-1)-xat(0)) 0)*2)))) e lo assegno come attributo del punto con il calcolatore campi (plugin refFunctions).
    Purtroppo i punti non sono fissi, per cui il calcolo va ripetuto frequentemente.
    Avresti qualche suggerimento per velocizzare la procedura?
    Idealmente si potrebbe tracciare un buffer circolare (di piccolo diametro) attorno ai punti e determinare l’angolo sul segmento di linea interno al cerchio (in questo modo evitando anche GRASS) ma non so come fare.
    Inoltre vorrei implementare la procedura di calcolo dell’angolo da assegnare al punto dalla maschera di inserimento (attraverso il valore predefinito) in modo da calcolarlo automaticamente all’inserimento del punto.
    Ti faccio i miei complimenti e auguro a tutti i lettori un felice 2021.

    Piace a 1 persona

      1. In realtà è un problema abbastanza semplice e documentato anche in rete, purtroppo non posso allegare un’immagine per rendere meglio l’idea: si tratta di determinare l’angolo di un segmento e trasferirlo al punto più vicino, la complicazione nasce nella necessità di velocizzare la procedura concentrando le istruzioni in un solo comando per evitare di dover fare più passaggi, per questo mi chiedevo se fosse possibile studiare un comando per usare in un solo colpo st_buffer(“punti”,5), ricavare il segmento ottenuto dall’intersezione tra il buffer e le linee e calcolare l’angolo su tale segmento

        Piace a 1 persona

      2. Ciao, scusa se mi ripeto, ma non avendo i dati posso dirti che la soluzione è facile e veloce (parlo in generale non conoscendo i dettagli sui dati). Puoi farlo o con il calcolatore di campi o tramite geo-algoritmi presenti negli strumenti di processing.
        Se hai modo contattami in Telegram e mi passi i dati, cosi cerco di dimostrarti le mie affermazioni.

        "Mi piace"

Rispondi a Dario Guidi Cancella risposta

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 )

Google photo

Stai commentando usando il tuo account Google. 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.