Potresti provare a utilizzare le funzioni aggregate e intersects di Qgis. Io la utilizzo per far ereditare in automatico il valore di un campo testo (il nome del comune) da un layer poligono (il confine del comune) in campi testo (sempre il nome del comune) presente in altri layer (solitamente layer puntuali). Ma può essere utilizzata anche al volo e una sola volta inserendola nel calcolatore di campi di Qgis.
La funzione è questa:
aggregate(layer:=‘nome del layer da cui prendo il valore (nel tuo caso Regioni)’, aggregate:=‘Max’, expression:=“nome del campo con il valore da copiare (nel tuo caso name)”, filter:=intersects( $geometry, geometry(@parent))).
In pratica verifica che la geometria puntuale ricada all’interno della geometria poligonale e, se vero, inserisce il valore desiderato nel campo di riferimento della geometria puntuale.
Per prima cosa seleziona le geometrie che vuoi aggiornare. Poi apri il calcolatore di campi (il simbolo del pallottoliere) e inserisci la funzione opportunamente aggiornata con il nome dei campi dei tuoi layer nella finestra “espressione”. Metti la spunta su “aggiorna campo esistente” e seleziona il campo di destinazione dei dati (nel tuo caso Regione).
Attenzione a questa fase che è molto delicata perchè poi, quando lancerai la funzione, verranno sovrascritti i dati di quel campo (Regione) di tutti gli oggetti selezionati in precedenza.
Quindi, conclusa la funzione, prima di salvare i dati controlla che nella tabella ci siano i dati desiderati. Salva tutto e il gioco è fatto.
Ho preso questa funzione, se non ricordo male, dai post del blog di Totò Fiandaca (https://pigrecoinfinito.com/) che ringrazio tantissimo perchè fornisce moltissime informazioni sull’utilizzo delle funzionalità più avanzate di Qgis.
Alberto Poggi
---------- Forwarded message ---------
Da: <qgis-it-user-request@lists.osgeo.org>
Date: mar 2 apr 2024 alle ore 21:03
Subject: Digest di QGIS-it-user, Volume 101, Numero 1
To: <qgis-it-user@lists.osgeo.org>
Invia le richieste di iscrizione alla lista QGIS-it-user all’indirizzo
qgis-it-user@lists.osgeo.org
Per iscriverti o cancellarti attraverso il web, visita
https://lists.osgeo.org/mailman/listinfo/qgis-it-user
oppure, via email, manda un messaggio con oggetto `help’ all’indirizzo
qgis-it-user-request@lists.osgeo.org
Puoi contattare la persona che gestisce la lista all’indirizzo
qgis-it-user-owner@lists.osgeo.org
Se rispondi a questo messaggio, per favore edita la linea dell’oggetto
in modo che sia più utile di un semplice “Re: Contenuti del digest
della lista QGIS-it-user…”
Argomenti del Giorno:
- Copiare dal padre (Giovanni Talpone)
Message: 1
Date: Tue, 2 Apr 2024 14:20:47 +0200
From: Giovanni Talpone <giovanni.talpone@gmail.com>
To: qgis-it-user@lists.osgeo.org
Subject: [QGIS-it-user] Copiare dal padre
Message-ID:
<CAP31Rhy+0ztB2gOgPK54a7_408SiN2n_efLu7f1jvoXS7+A3cA@mail.gmail.com>
Content-Type: text/plain; charset=“utf-8”
Ciao, ho girato su molti siti ma non trovo la soluzione per un problema
apparentemente banale.
Ho un layer “Regioni” con un campo “name” che contiene per esempio
‘Lombardia’
Ho un layer figlio “Città” con un campo “Regione” e vorrei un’espressione
tipo:
copy_parent(“nome_campo”). L’unica espressione che ho trovato è aggregate
che però lavora sui figli, non sul padre. @parent non funziona in questo
caso. C’è l’espressione current_parent_value però è riservata a utenti
molto più bravi di me.
Come si fa?
-------------- parte successiva --------------
Un allegato HTML è stato rimosso…
URL: <http://lists.osgeo.org/pipermail/qgis-it-user/attachments/20240402/fc3e22d0/attachment-0001.htm>
Subject: Chiusura del digest
QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-it-user
Fine di Digest di QGIS-it-user, Volume 101, Numero 1