Converter uma linha em polígono


13

Eu tenho um shapefile com áreas da cidade, mas infelizmente o shapefile contém apenas linhas únicas. O shapefile fica assim:

insira a descrição da imagem aqui

Eu quero converter essas linhas em um shapefile de área-polígono no QGIS. Eu tentei com a ferramenta "Linhas para polígonos" (Vetor> Ferramentas de geometria> Linhas para polígonos), mas não funcionou corretamente. Depois de usar essa ferramenta, o shapefile fica assim:

insira a descrição da imagem aqui

Existe alguma outra maneira de converter o arquivo de shapefile de linha em um shapefile de polígono de área no QGIS?

A propósito, estou usando o QGIS 2.14.3 Essen.


2
Eu consegui algo parecido na última vez que usei essa ferramenta. Consegui obter polígonos usando a ferramenta polygonize.
johns

Obrigado pela sua resposta, onde posso encontrar a ferramenta poligonizada?
Mark White

A poligonização pode ser encontrada aqui - Caixa de ferramentas de processamento, geoalgoritmos QGIS, ferramentas de geometria vetorial.
precisa saber é

Eu tentei, mas quando eu executar o polygonizer eu recebo um arquivo de forma vazia :-(
Mark White

Você pode enviar o shapefile para o dropbox ou similar?
Andrej

Respostas:


16

A Polygonizeferramenta da caixa de ferramentas Processamento ainda funciona bem para mim em linhas simples:

insira a descrição da imagem aqui

No entanto, é necessário que as linhas se cruzem ou compartilhem vértices comuns. E as linhas não devem ter auto-interseção.

Pode ser necessário ajustar os vértices dos cantos para fazê-lo funcionar. Normalmente, defino a tolerância de snap para 10 pixels no vértice.


1
Eu também enfrentei o mesmo problema ao converter linhas em polígonos. A ferramenta "Poligonizar" resolveu o problema. gis.stackexchange.com/a/211794/62237
Sjs 4/16

7

Apenas uma dica, se você não encontrar a Polygonizeferramenta. Na minha instalação do QGIS 2.18.3 (Windows), não encontrei a Polygonizeferramenta na Vector geometry toolsCaixa de Ferramentas. Demorei um pouco para perceber que eu precisava instalar a python-shapelybiblioteca com OSGeo4W (obrigado Nick Hopton: Perfect Polygons in QGIS ).


Obrigado! Fiquei confuso por um longo tempo porque, fora da caixa, o QGIS no Windows possui uma ferramenta poligonizada que é apenas para rasters. Outro passo que pode ou não ser necessário é permitir QGIS Geoalgorithms sob "Processamento >> Opções >> Fornecedores"
Matt Wilkie

Obrigado por esta resposta. Eu pensei que eu estava ficando louco não encontrá-lo mais ...
gisnside

3

Olhando para a sua imagem, eu assumiria que cada linha não abrange totalmente uma área, as linhas estão apenas atuando como cercas e não se reconectando no início. Seus polígonos estão sendo criados a partir das extremidades das linhas, para que a ferramenta 'linhas para polígonos' esteja funcionando bem, pois os dados são o problema.

Receio que o único que você possa fazer seja digitalizar uma nova camada de polígonos. Felizmente, o QGIS tornou isso muito fácil com a ferramenta de digitalização de traços (um ícone de ímã), disponível na versão 2.14


0

Se não houver furos, eu criaria uma camada de rascunho com um único polígono grande o suficiente para cobrir toda a sua área. Então eu o interceptaria com o resultado de linhas para polígonos e o dividiria ainda mais, conforme necessário.


0

Testado no QGIS 2.18 e QGIS 3.4

Posso sugerir o uso de um "Virtual Layer"meio Layer > Add Layer > Add/Edit Virtual Layer....

Vamos supor que temos cinco recursos de linha "lines", veja a imagem abaixo.

Exemplo

Com a seguinte consulta, é possível alcançar o resultado.

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

A camada virtual de saída será semelhante

Resultado_1

Como já foi mencionado por @AndreJ, as linhas devem se cruzar ou compartilhar vértices comuns. E as linhas não devem ter auto-interseção. Em termos de limpeza da topologia da camada, posso sugerir a exploração do v.cleanconjunto de ferramentas GRASS.


Caso as linhas tenham auto-interseção, você pode usar um ConvexHull com a seguinte consulta

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

Caso

Resultado


Referências:


0

Se as polilinhas se sobrepuserem, a Polygonizeferramenta não poderá lidar com isso da seguinte maneira:

insira a descrição da imagem aqui

No entanto, a Lines to polygonsferramenta funciona conforme o esperado da seguinte maneira:

insira a descrição da imagem aqui

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.