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.

Mark White
fonte
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.

AndreJ
fonte
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 ).

Nicolo
fonte
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

Cavaleiro
fonte
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.

lynxlynxlynx
fonte
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:

Taras
fonte
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

M.Reza
fonte