Crear líneas paralelas a una distancia particular de las líneas que forman parte de un archivo de forma

11

Estoy usando QGIS 2.18. Tengo shapefile que contiene varias líneas. Después de procesar cierto procesamiento de datos, necesito dibujar líneas paralelas a diferentes distancias de las líneas existentes. Por ejemplo, tengo 32 líneas en el archivo de forma existente. Quiero dibujar líneas paralelas a una distancia de 50, 100, 170, 500,400 de la línea ID no. 3, 6,20,25,31 de una vez. ¿Hay algún método o complemento en QGIS para hacer lo mismo?

Jitendra
fuente

Respuestas:

6

Puede usar el complemento QAD , que ofrece comandos similares a CAD en QGIS.

Solo funciona con sistemas de coordenadas proyectadas (por lo que debe proyectar sus datos antes de usarlos) y con el modo de edición habilitado (haga clic con el botón derecho en la capa y seleccione Toggle Editing).

Para su caso, debe hacer clic en el botón Desplazamiento :

ingrese la descripción de la imagen aquí

y siga las instrucciones que aparecerán en la ventana de texto QAD (exactamente como en AutoCAD):

ingrese la descripción de la imagen aquí

Por ejemplo, esta es la salida cuando se utiliza un desplazamiento diferente para dos características diferentes:

ingrese la descripción de la imagen aquí

mgri
fuente
Gracias por su respuesta. ¿Hay algún otro método o complemento para hacer esta tarea sin proyectar datos?
Jitendra
Utilicé un enfoque con datos proyectados, ya que parecía que estaba tratando con medidores ( distancias de 50, 100, 170, 500,400 ... ). Cambiar la proyección es muy simple: haga clic derecho en la capa, luego Save asy finalmente seleccione un Sistema de coordenadas proyectadas. Una vez que haya realizado el desplazamiento, puede volver al Sistema de coordenadas geográficas con la operación inversa ... Debería ser correcto.
mgri
Sin proyectar los datos, debe lidiar con ángulos en lugar de metros y no sé si le resultará más fácil ...
mgri
La herramienta QAD funciona bien. Pero tengo que repetir la tarea para todas las líneas en shapefile manualmente. ¿Hay algún método para leer line_ID y la distancia a la línea leída de la tabla de atributos o exel o archivo CSV automáticamente y dibujar todas las líneas paralelas simultáneamente.
Jitendra
No conozco una herramienta que realice esta tarea, pero puedo intentar dar una solución usando PyQGIS ... ¿Podría ser de su interés?
mgri
6

Si tiene una columna en su tabla de atributos que especifica la distancia entre las líneas paralelas, entonces el siguiente método debería poder hacerlo de una vez:

Puede usar el Single sided buffers (and offset lines) for linesalgoritmo GDAL/OGR > [OGR] Geoprocessingen la caja de herramientas Procesamiento. Deberá establecer la Operación como Curva de compensación e ingresar el nombre de la columna que contiene la distancia en Distancia de búfer (en mi caso, el nombre de la columna es ancho ). También puede establecer qué lado de la línea se dibujará la línea paralela seleccionando Buffer side como right o left.

ingrese la descripción de la imagen aquí

nash
fuente
Gracias por responder. Estoy usando la herramienta OGR según su sugerencia, pero no se ha mostrado nada en el nuevo archivo de forma de salida.
Jitendra
¿Puedes compartir el sistema de proyección en el que está tu archivo de forma? Las capturas de pantalla de la tabla de atributos de la capa de salida pueden ser útiles.
nash
El sistema de proyección de shapefile es EPSG 4326
Jitendra
Entonces, entiendes que las nuevas líneas se crean a una distancia de 50,100,170,500 y 400 que está en la unidad Grados y no metros (¿lo que supongo que quieres?)
nash
Suponiendo que desea la distancia en metros, tendría que convertir su archivo de forma en un sistema de proyección con unidades en metros (por ejemplo, un sistema de proyección UTM de la zona correspondiente). Luego ejecuta el algoritmo.
nash
6

Puede usar "v.parallel", puede encontrar esta herramienta en la caja de herramientas de procesamiento de QGIS.

  1. Seleccione la línea con el número de identificación de línea. 3, 6,20,25,31 Seleccionar lineas

  2. Use "v.parallel", cree una línea paralela a partir de las líneas seleccionadas. Pero, tiene que hacer varias veces para producir diferentes distancias de desplazamiento (50, 100, 170, 500,400). Hay una opción "Lateral", puede asignar la ubicación de las líneas paralelas. "v.paralelo"

  3. Resultado: líneas paralelas (color azul) en el lado izquierdo de las líneas seleccionadas resultado
Cy T
fuente
Gracias Cy Y por la respuesta. He usado el comando v.parallel pero no se ha mostrado nada en el nuevo archivo de forma de salida.
Jitendra
1
p / s: el comando "v.parallel" solo funciona con líneas curvas, no puede funcionar con las líneas rectas que solo tienen dos vértices de línea.
Cy T