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.

stachu
fonte

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 .

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

Jon Bringhurst
fonte