In questo articolo continuo a parlare del plugin (RefFunction) di Enrico Ferreguti ed in particolare di una funzione molto utile da usare nel calcolatore di campi. Il plugin è stato recentemente aggiornato per QGIS 3.0.
La funzione che approfondiremo è geomnearest( targetLayer , targetField ) facendo un esempio molto richiesto.
- help da QGIS
Esempio tipico richiesto:
dati due layer, come popolare un campo (del primo layer) in funzione della geometria più vicina di un altro layer (secondo layer)?
entrando ancora nello specifico:
dato un layer puntuale e un layer lineare, entrambi shapefile, come popolare un campo (del layer puntuale) con un attributo presente nel secondo layer (layer lineare) usando come criterio la vicinanza?
questa funzione ci permette di popolare il field ‘strada’ del layer ‘caditoie’ prendendo il nome della strada più vicina al punto, ecco come:
il field ‘strade’ del layer ‘caditoie’: popolato con l’espressione:
geomnearest( ‘strada’, ‘nome’)
il risultato:
- risultato
Note finali: il plugin si chiama refFunctions e si installa come tutti i plugin; dopo l’installazione troverete le nuove funzioni nel calcolatore di campi.
NB: entrambi i layer devono avere stesso SR (Sistema di Riferimento)
Supportate QGIS, ECCO COME
Mettete un LIKE alla pagina QGIS ITALIA
ottimo! grazie mille!
"Mi piace""Mi piace"
Grazie a te per aver lasciato un commento!!!
"Mi piace""Mi piace"
Perfetto grazie, funziona!
"Mi piace"Piace a 1 persona
Totò, …permettimi un suggerimento …la dritta “il plugin si chiama refFunctions e si installa come tutti i plugin ecc…” mettila all’inizio dell’articolo, così che uno, come prima cosa, si installa il plugin, e poi segue passo passo il tuo chiarissimo e utilissimo tutorial. Messa alla fine invece, rende più difficoltoso intuire come fare per poter usufruire dell’applicativo e si naviga alla cieca. Sono sciocchezze ma semplificano la vita 😉
"Mi piace""Mi piace"
Grazie del suggerimento;
ho appena aggiunto il nome del plugin!!
ciao!!!
"Mi piace""Mi piace"
Buongiorno a tutti. In un modello creato tramite model builder, vorrei poter inserire il valore ‘targetlayer’ come variabile. Mi spiego meglio, inserendo due later come file di input, vorrei poter assegnare il valore di un campo in base alla vicinanza dei due layer tramite geomnearest, il problema è che non riesco a inserire la variabile “nome layer” nella funzione geomnearest tramite model builder e di conseguenza non mi riconosce il target layer. Quindi vorrei creare una variabile che prenda il nome del layer (dopo averli caricati in QGIS) e che riesca a far funzionare la funzione. Come posso fare?
grazie
Marco
"Mi piace"Piace a 1 persona
Ciao, non ho ben capito il problema, ma esistono delle variabili per richiamare i layer: @layer, @layer_ids ecc..
"Mi piace""Mi piace"