Fusionar líneas con puntos finales ligeramente diferentes en QGIS

22

En QGIS, tengo dos líneas. Los puntos finales están cerca uno del otro, pero no del todo alineados. Me gustaría convertir las dos líneas en una, con los dos puntos finales combinados en puntos medios.

Lo más cerca que he podido llegar es con "Combinar funciones seleccionadas". Eso me da una característica, pero se compone de dos líneas disjuntas: no hay una línea entre los puntos finales.

Estoy buscando algo que se comporte de manera similar a la función Unir rutas de Illustrator (Objeto> Rutas> Unir).

¿QGIS hace eso?

Evan
fuente

Respuestas:

12

Respuesta rápida: no! No existe una herramienta como esa para hacer esa operación directamente en la capa (el complemento "Unir dos líneas" requiere intersección).

Puede hacerlo para una capa muy simple girando las líneas a puntos (extraer nodos) y luego unirlos con points2one (salida de línea), pero esto sería MUCHO más lento que simplemente editar a mano:

  1. Asegúrese de tener el ajuste (Configuración | Opciones de ajuste ...) activado para su capa de línea (5 píxeles me funcionan bien).
  2. Cree una nueva línea de un punto final a otro.
  3. Seleccione las tres líneas (las dos líneas originales + la nueva) y combínelas (Editar | Combinar funciones seleccionadas o botón de barra de herramientas).
Simbamangu
fuente
1
Gracias. Solo tenía unas pocas líneas para fusionar, así que esto fue rápido y fácil. (La respuesta de @Michael Markieta parecía más adecuada para situaciones complejas.)
Evan
14

Puede lograr esto con una combinación de QGIS y GRASS.

  1. Importe su capa vectorial a un conjunto de mapas GRASS (Grass | Archivo> Importar datos vectoriales)
  2. Abra su conjunto de mapas en QGIS (QGIS | Complementos> GRASS> Abrir conjunto de mapas)
  3. Agregue una capa vectorial de su conjunto de mapas GRASS a su proyecto QGIS (QGIS | Complementos> GRASS> Agregar capa vectorial GRASS)
  4. Utilice v.clean.snap (QGIS | Complementos> GRASS> Herramientas de GRASS abiertas> Lista de módulos> v.clean.snap)

Ajuste el 'umbral' de v.clean.snap para lograr un ajuste de vértice adecuado en toda el área de estudio.

Michael Markieta
fuente
10

Supongo que desea unir dos segmentos de línea en una sola línea. ingrese la descripción de la imagen aquí

Así es como lo hice ...

  • Permitir la edición.
  • Active el ajuste (Configuración -> Opciones de ajuste ...) ingrese la descripción de la imagen aquí
  • Seleccione la herramienta de nodo nodo.ingrese la descripción de la imagen aquí
  • Haga doble clic cerca del final de una de las líneas para agregar un nodo. ingrese la descripción de la imagen aquí
  • Arrastre el nodo al final para ajustarlo al final de la otra línea ingrese la descripción de la imagen aquí
  • Selecciona ambas líneas
  • Fusionar sus atributos (no puede hacer una sola línea si tienen atributos diferentes)ingrese la descripción de la imagen aquí
  • Combina las dos característicasingrese la descripción de la imagen aquí

Esto debería resultar en una línea. ingrese la descripción de la imagen aquí

DickShinnery
fuente
Todo muy bien. Pero, ¿qué tal un conjunto de datos de 22,000 líneas? No puedo hacer esto manualmente ...
FaCoffee
3

Si quiere decir que su característica única consiste en una MULTILINESTRING en lugar de una única LINESTRING, entonces puede solucionarlo fácilmente si está utilizando una base de datos Postgis:

update your_table set your_geo_column = ST_LineMerge(your_geo_column);

Si solo desea que la fila 1 haga esto, debe agregar WHERE id = your_row_id, por supuesto.

MRG
fuente
2

También alguien podría intentarlo:

  1. guardar .shp como .dxf
  2. Abra .dxf con DraftSight
  3. unir piezas de polilínea
  4. vuelva a abrir .dxf con qgis y guárdelo como .shp
  5. desde el menú Vector -> Herramientas de geometría -> Líneas a polígonos
chamin
fuente
2

Acabo de hacer esto con QGIS 3.4.0, usando el complemento Unir varias líneas mencionado por tnagel arriba (se instala en el menú Vector> Unir varias líneas). Funcionó bien para unir unos 60 fragmentos de líneas de senderos en aproximadamente 20 líneas de senderos. Cuantos más fragmentos tenga y mayor sea el área que cubren, menos práctico será, ya que tendrá que observar los resultados de los problemas (tnagel puede haber tenido uno de los problemas que describo).

Seleccione las líneas que desea unir, haga clic en el elemento del menú y se unirá a ellas (puede seleccionar tantas líneas como desee, pero ...), incluso si los extremos están a una milla de distancia, obtiene una línea recta desde extremo de uno al extremo del otro que los conecta, así que asegúrese de que sus extremos estén lo suficientemente cerca para que esté satisfecho con los resultados (utilicé la punta en otra publicación para marcar los extremos de mis líneas con marcadores, por lo que fueron fáciles para ver (Propiedades> Simbología> agregar una línea de marcador y hacer que el símbolo sea lo suficientemente grande como para ver fácilmente> seleccione el botón de opción "solo en el último vértice" (y si lo desea, agregue otra línea de marcador con un símbolo diferente y seleccione "al principio vértice solamente ")).

Además, las líneas aparentemente pueden ser direccionales. Por lo tanto, debe observar (por ejemplo) que el extremo sur de la línea A no se unió con el extremo sur de la línea B debajo de él (otra línea recta larga donde no lo desea).

Descubrí que cuando eso sucedía, podía "deshacer" y usar "Línea inversa" en la barra de herramientas de procesamiento avanzado para voltear la dirección de una línea de un extremo al otro (no cambia dónde está la línea, solo voltea el inicio de la línea con el final de la línea), luego une las líneas nuevamente.

Lo bueno de esto es que sus cambios / ediciones se guardan en su capa existente, por lo que no es necesario guardar los resultados como un nuevo archivo de forma (primero haga una copia de seguridad).

Constantemente me sorprende el trabajo realizado por los desarrolladores principales y de complementos de QGIS. Muestra lo que los humanos constructivos inteligentes pueden hacer cuando deciden trabajar juntos. ¡Gracias!

JJD
fuente
0

Usando OpenJUMP (edición Plus):

  1. Archivo> Abrir archivo
  2. Complementos> Topología> Limpieza de topología de red ...
  3. Haga clic derecho en la nueva capa (fija): Guardar conjunto de datos como ...

Este es el resultado: ingrese la descripción de la imagen aquí

Fabiog
fuente
0

En mi caso, las líneas estaban en diferentes capas y con diferentes atributos. Fusioné las capas con mmqgis y luego fusioné las líneas en el siguiente paso con la técnica de ajustar y fusionar líneas.

Herr Eichert
fuente