Re: [QGIS-it-user] la funzione with_variable per ottimizzare espressioni complesse

2021-05-11 Per discussione Andrea Giudiceandrea
Totò wrote > funziona, ma impiega un tempo enorme E sì, questo dovrebbe dipendere dal fatto che le funzioni di aggregazione, usate normalmente, hanno un meccanismo di cache del risultato che le rende più efficienti in caso di calcolo ripetuto sulle stesse feature. Usate con eval, il mecccanismo

Re: [QGIS-it-user] la funzione with_variable per ottimizzare espressioni complesse

2021-05-11 Per discussione Andrea Giudiceandrea
Andrea Giudiceandrea wrote > Sembra funzionare anche: > with_variable('cucu',array_length(overlay_touches(@layer_name,$id)),maximum(eval(@cucu))=@cucu) > quindi senza che sia necessario rendere l'espressione una stringa (ma > questo non è indicato nel manuale). In realtà mi sa che così non

Re: [QGIS-it-user] la funzione with_variable per ottimizzare espressioni complesse

2021-05-11 Per discussione Andrea Giudiceandrea
Totò wrote > ma quest ultima restituisce sempre 1, in quanto non viene calcolato il > valore maximun(@cucu), ma solo il valore @cucu e quindi risulterebbe @cucu > = > @cucu, cioè uguglianza sempre verificata. > > Non capisco se è un limite della funzione with_variable oppure cosa? Ciao

Re: [QGIS-it-user] la funzione with_variable per ottimizzare espressioni complesse

2021-05-11 Per discussione Totò
Andrea Giudiceandrea wrote > Per esempio la tua espressione dovrebbe poter essere riscritta e > funzionare > in seguente modo: > > with_variable('cucu','array_length(overlay_touches(@layer_name,$id))',maximum(eval(@cucu)) > = eval(@cucu)) > > In questo modo alla variabile @cucu viene assegnata

[QGIS-it-user] la funzione with_variable per ottimizzare espressioni complesse

2021-05-10 Per discussione Totò
L'espressione di sotto permette di selezionare la/le regione/i con più regioni confinanti: maximum( array_length(overlay_touches(@layer_name,$id)) ) = array_length(overlay_touches(@layer_name,$id)) 'array_length(overlay_touches(@layer_name,$id))' è richiamata due volte e quindi ho pensato di