ragnetto↵
Dato un layer vettoriale, l'espressione permette di simulare un ragnetto che si sposta nella mappa a partire dal centro della stessa mappa e collegandosi ai primi 8 punti più vicini. (per far seguire il mouse usare la variabile @canvas_cursor_point
al posto di @map_extent_center
)
L'espressione va utilizzata in un layer di stile come generatore di geometrie
.
with_variable(
'center',
transform(@map_extent_center, @map_crs, @layer_crs),
if(
array_contains(
array_slice(
array_agg(
@id,
order_by := distance(@geometry, @center)
), 0, 7
),
@id
),
make_line(@geometry, @center),
NULL
)
)
- riferimento: https://discourse.osgeo.org/t/funziona-male-lespressione-overlay-nearest-edit-no/146923
- ringraziamenti: Andrea Giudiceandrea
Ragnetto insegue puntatore mouse↵
L'espressione è la seguente:
with_variable(
'center',
transform(@canvas_cursor_point, @map_crs, @layer_crs),
if(
array_contains(
array_slice(
array_agg(
@id,
order_by := distance(@geometry, @center)
), 0, 7
),
@id
),
make_line(@geometry, @center),
NULL
)
)
Etichette↵
Per visualizzare le sole etichette degli otto elementi più vicini: attivare l'etichettatura tramite regola e utilizzare la seguente espressione nel filtro:
with_variable(
'center',
transform(@canvas_cursor_point, @map_crs, @layer_crs),
if(
array_contains(
array_slice(
array_agg(
@id,
order_by := distance(@geometry, @center)
), 0, 7
),
@id
),
true,
NULL
)
) is true
Per visualizzare come etichette le relative distanze usare la seguente espressione:
with_variable(
'center',
transform(@canvas_cursor_point, @map_crs, @layer_crs),
if(
array_contains(
array_slice(
array_agg(
@id,
order_by := distance(@geometry, @center)
), 0, 7
),
@id
),
round(length(make_line(@geometry, @center)),2),
NULL
)
) ||' m'
↵
Funzioni e variabili utilizzate: