Convertir una línea a polígono

13

Tengo un shapefile con áreas de la ciudad, pero desafortunadamente el shapefile solo contiene líneas simples. El archivo de forma se ve así:

ingrese la descripción de la imagen aquí

Quiero convertir esas líneas en un archivo de forma de polígono de área en QGIS. Lo probé con la herramienta "Líneas a polígonos" (Vector> Herramientas de geometría> Líneas a polígonos), pero no funcionó correctamente. Después de usar esta herramienta, el archivo de forma se ve así:

ingrese la descripción de la imagen aquí

¿Hay alguna otra forma de convertir el archivo de forma de línea en un archivo de forma de polígono de área en QGIS?

Por cierto, estoy usando QGIS 2.14.3 Essen.

Mark White
fuente
2
Obtuve algo similar la última vez que usé esa herramienta. Pude obtener polígonos usando la herramienta poligonalizar.
johns
Gracias por su respuesta, ¿dónde puedo encontrar la herramienta de poligonalización?
Mark White el
Polygonize se puede encontrar aquí: caja de herramientas de procesamiento, geoalgoritmos QGIS, herramientas de geometría vectorial.
klewis
Lo intenté, pero cuando ejecuto el poligonalizador me sale un archivo de forma vacío :-(
Mark White
¿Puedes subir el archivo de forma a Dropbox o similar?
AndreJ

Respuestas:

16

La Polygonizeherramienta de la caja de herramientas Procesamiento todavía funciona bien para mí en líneas simples:

ingrese la descripción de la imagen aquí

Sin embargo, es necesario que las líneas se crucen o compartan vértices comunes. Y las líneas no deben tener auto intersección.

Es posible que deba ajustar los vértices de las esquinas para que funcione. Por lo general, establezco la tolerancia de ajuste a 10 píxeles en el vértice.

AndreJ
fuente
1
Yo también enfrenté el mismo problema al convertir líneas en polígonos. La herramienta "Polygonize" resolvió el problema. gis.stackexchange.com/a/211794/62237
Sjs
7

Solo una pista si no puedes encontrar la Polygonizeherramienta. En mi instalación de QGIS 2.18.3 (Windows) no pude encontrar la Polygonizeherramienta en Vector geometry toolsel cuadro de herramientas. Me tomó un tiempo darme cuenta de que necesitaba instalar la python-shapelybiblioteca con OSGeo4W (gracias Nick Hopton: Perfect Polygons en QGIS ).

Nicolo
fuente
¡Gracias! Estuve confundido por mucho tiempo porque QGIS en Windows tiene una herramienta de poligonalización que es solo para rásteres. Otro paso que puede o no ser necesario es habilitar los Geoalgoritmos de QGIS en "Procesamiento >> Opciones >> Proveedores"
matt wilkie
Gracias por esta respuesta Pensé que me estaba volviendo loco al no encontrarlo nunca más ...
Gisnside
3

Mirando su imagen, supongo que cada línea no abarca completamente un área, las líneas solo actúan como cercas y no se vuelven a conectar al principio. Sus polígonos se están creando desde los extremos de las líneas, por lo que la herramienta 'líneas a polígonos' funciona bien, son los datos los que son el problema.

Me temo que lo único que puedes hacer es pensar en digitalizar una nueva capa de polígonos. Afortunadamente, QGIS lo ha hecho realmente fácil con la herramienta de digitalización de trazas (un icono de imán) que está disponible en 2.14

Caballero
fuente
0

Si no hay agujeros, crearía una capa de cero con un solo polígono lo suficientemente grande como para cubrir toda su área. Luego lo intersectaría con el resultado de las líneas a los polígonos y lo dividiría aún más según sea necesario.

lynxlynxlynx
fuente
0

Probado en QGIS 2.18 y QGIS 3.4

Puedo sugerir el uso de un a "Virtual Layer"través Layer > Add Layer > Add/Edit Virtual Layer....

Supongamos que tenemos cinco características de línea "lines", vea la imagen a continuación.

Ejemplo

Con la siguiente consulta, es posible lograr el resultado.

SELECT l.id, l.NAME, MakePolygon(AddPoint(l.geometry,StartPoint(l.geometry)))
FROM lines AS l
GROUP BY l.id

La capa virtual de salida se verá así

Resultado_1

Como ya fue mencionado por @AndreJ, las líneas se intersectarán o compartirán vértices comunes. Y las líneas no deben tener auto intersección. En términos de limpieza de la topología de la capa, puedo sugerir explorar el v.cleanconjunto de herramientas GRASS.


En caso de que las líneas tengan auto-intersección, puede usar un ConvexHull con la siguiente consulta

SELECT l.id, l.NAME, ConvexHull(AddPoint(l.geometry,StartPoint(l.geometry)))
FROM lines AS l
GROUP BY l.id

Caso

Salida


Referencias

Taras
fuente
0

Si las polilíneas se superponen, la Polygonizeherramienta no puede manejarlo de la siguiente manera:

ingrese la descripción de la imagen aquí

Sin embargo, la Lines to polygonsherramienta funciona como se espera de la siguiente manera:

ingrese la descripción de la imagen aquí

M.Reza
fuente