La idea principal
Puedes crear líneas con el siguiente principio: supongo que todas las líneas paralelas están dibujadas en la misma dirección (de arriba abajo o de abajo arriba). Encuentra el punto final de cada línea y conéctalo al punto final de la siguiente línea. Toma el centro de esta línea (centroide). Este es el punto de partida de cada línea media.
Ahora simplemente proyecta este punto hacia abajo, utilizando la longitud de tu línea existente y su azimut (ángulo).
En este caso, incluso con distancias variables entre las líneas, obtendrás en cada caso una línea media perfecta.
La implementación
Puedes usar expresiones QGIS para esto. Usa el "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 solo deben crearse para las líneas del tipo fila
y no para la última línea de fila
:
if (
"tipo" = 'fila' y
atributo (
obtener_entidad_por_id (
@capa,
$id+1
),
'tipo'
) = 'fila'
,
with_variable (
'centroid',
centroid (
make_line(
punto_final (
$geometry
),
punto_final (
geometría (
obtener_entidad_por_id (
@capa,
$id+1
)
)
)
)
),
make_line (
@centroid,
project (
@centroid ,
-longitud (
$geometry
),
radians (
ángulo_principal($geometry)
)
)
)
),
''
)
Captura de pantalla: las líneas punteadas negras se crean con la expresión de arriba y el Generador de Geometría, basadas en las líneas rojas:
0 votos
Eliminé la etiqueta
pyqgis
porque no se proporcionó ningún código