La idea principal
Puedes crear líneas con el siguiente principio: supongo que todas las líneas paralelas se dibujan en la misma dirección (de arriba a abajo o de abajo a arriba). Encuentra el punto final de cada línea y conéctalo con el punto final de la línea siguiente. Toma el punto medio de esta línea (centroide). Este es el punto de partida de cada línea media.
Ahora simplemente proyecte este punto hacia el fondo, utilizando la longitud de su línea existente y su acimut (ángulo).
En este caso, incluso con distancias variables entre las líneas, se obtendrá en cada caso una línea media perfecta.
La aplicación
Para ello puede utilizar las expresiones de QGIS. Utilice la función "Generador de geometría" o el "Geometría por expresión" , ver aquí para más detalles . En ambos casos, la expresión sigue siendo la misma. Hay algunos elementos adicionales para obtener las líneas correctas: las líneas sólo deben crearse para las líneas del tipo row
y no para el último row
línea:
if (
"type" = 'row' and
attribute (
get_feature_by_id (
@layer,
$id+1
),
'type'
) = 'row'
,
with_variable (
'centroid',
centroid (
make_line(
end_point (
$geometry
),
end_point (
geometry (
get_feature_by_id (
@layer,
$id+1
)
)
)
)
),
make_line (
@centroid,
project (
@centroid ,
-length (
$geometry
),
radians (
main_angle($geometry)
)
)
)
),
''
)
Captura de pantalla: las líneas negras punteadas se crean con la expresión de arriba y el Generador de Geometría, basándose en las líneas rojas:
0 votos
He borrado el
pyqgis
-etiqueta porque no se proporcionó ningún código