Simplificando polígonos para cadeia de linhas?


16

Gostaria de simplificar alguns polígonos que representam rios em cadeias de linhas. Suponho que os buracos nos polígonos possam ser omitidos. Alguém tem uma boa idéia de como fazê-lo?

Seria bom, se fosse possível fazer isso diretamente no postgis ou por outra ferramenta de código aberto, mas uma breve descrição do algoritmo será suficiente.

Respostas:


13

O que você precisa é chamado de "algoritmo de esqueletização".

Dê uma olhada neste artigo:

Haunert, J.-H., Sester, M., junho de 2008. Área colapsada e linhas centrais de estradas baseadas em esqueletos retos. GeoInformatica 12 (2), 169-191. URL http://dx.doi.org/10.1007/s10707-007-0028-x

Alguns desses algoritmos são desenvolvidos na biblioteca CGAL .


Nenhum dos links funciona mais, Julien: você acha que poderia fornecer um resumo dos algoritmos ou pelo menos referências formais para permitir que as pessoas consultem os documentos?
whuber

Sim, atualizei a resposta com uma referência adequada a um artigo mais recente.
julien

2
Obrigado! (Não é possível adicionar outro
voto positivo



1

Apenas como um aviso, eu nunca tentei isso antes. Seu sucesso dependerá da qualidade dos dados que você possui atualmente.

Então, pense no polígono como uma tira de triângulos. Cada triângulo se conecta a um vértice no lado oposto do corredor com uma aresta. Agora, para cada uma das arestas do corredor, basta colocar um vértice bem no centro. Esses novos vértices são os pontos de sua cadeia de linhas. Provavelmente, você pode mexer na maneira como seleciona o ponto do meio na borda para maior precisão.


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.