Quiero desplazar/mover los polígonos en la dirección norte-noroeste y realizar esta tarea 3 veces. Puedo hacerlo manualmente pero sería una aproximación y quiero que coincidan exactamente. Los polígonos son de 100m de largo y 5m de ancho, por lo que se debe mover con 25m tres veces.
Respuestas
¿Demasiados anuncios?Eche un vistazo a la herramienta array (of) translated features
. Puede introducir cuántas veces desea copiar y mover los objetos, así como la distancia a lo largo de los ejes X e Y. Esto último puede requerir algo de trigonometría por su parte para calcular la distancia exacta. Esto último puede requerir algo de trigonometría por tu parte para calcular la distancia exacta, pero una expresión como parte de la anulación definida por datos podría ayudarte.
Utilice la siguiente expresión con Generador de geometría o Geometría por expresión para desplazar polígonos. Uso de la función project()
se puede definir la distancia/ángulo, evitando así la trigonometría. Defina la distancia, la dirección (ángulo, acimut) y el número de veces que deben desplazarse los polígonos.
Desplazar los polígonos 3 veces para 25m (25, 50 y 75 m) en dirección NNW (337,5 grados desde el norte):
collect_geometries(
array_foreach (
generate_series (1,3), -- number of times the polygons are shifted
with_variable(
'shift',
@element,
make_polygon(
make_line(
array_foreach(
generate_series (1, num_points($geometry)),
project(
point_n(nodes_to_points($geometry), @element),
25*@shift, -- distance to shift the polygons
radians(337.5) -- azimuth (angle)/direction the polygons should be shifted
)
)
)
)
)
)
)