He visto muchas preguntas que implican dividir una línea con la ayuda de una capa de puntos.
Quiero dividir una línea en fracciones de su longitud.
Por ejemplo, tengo una línea de 400
metros de largo, quiero dividirla en cuatro líneas de 100 metros de largo cada una.
Existe el módulo grass v.split
, pero recibo un mensaje de error cuando lo inicio desde la caja de herramientas qgis:
*"TypeError: object of type 'NoneType' has no len()"*
Así que no estoy seguro si lo hago funcionar si esto sería una solución.
qgis
line
digitizing
Gilles
fuente
fuente
Respuestas:
La función v.split.length de GRASS debe hacer exactamente lo que desea dividiendo la línea en segmentos iguales definidos por el usuario sin la necesidad de una capa de puntos. Aquí hay un ejemplo simple de una línea recta (también funciona en líneas no rectas y múltiples):
Agregué una columna para calcular su longitud usando
$length
la expresión:Usando la función v.split.length de GRASS a través de Processing Toolbox , elegí dividir la línea en segmentos de 25 m que deberían formar un total de 4 partes:
Luego actualicé la columna Longitud de la capa de salida y usé el mismo comando que el anterior para volver a calcular la longitud:
No estoy seguro de por qué está recibiendo el error, ¿podría compartir su capa de línea para que la gente la pruebe?
fuente
Supongamos que hay una capa de polilínea llamada
"lines"
.Puedo sugerir el uso de una "Capa virtual" a través de
Layer > Add Layer > Add/Edit Virtual Layer...
Hay varios casos posibles:
Caso 1. Dividir la línea en segmentos iguales, básicamente de la misma longitud definida por el usuario.
Con la siguiente consulta, es posible lograr el resultado. Para aumentar / disminuir la longitud del segmento, ajuste el
1000 AS step_length
en-- configurations
.La capa virtual de salida tendrá el siguiente aspecto
Nota: Si 'delta' (por ejemplo, el último segmento más corto) no debe ser incluida, a continuación, inserte
WHERE sec_length >= step_length
en-- query
, ver más abajoCaso 2. División de la línea en un cierto número de segmentos.
Con la siguiente consulta, es posible lograr el resultado. Para aumentar / disminuir el número de segmentos, ajuste el
8 AS sections
en-- configurations
.La capa virtual de salida tendrá el siguiente aspecto
fuente