Como limpar um shapefile tão ruim para roteamento?

16

Estou tentando limpar um shapefile para torná-lo utilizável para roteamento com pgrouting, postgis, postgresql.

Aqui um cruzamento parece estar conectado, mas quando aumentamos o zoom…. Não é:

sem zoom 1 zoomed 1

O mesmo aqui :

sem zoom 2 zoom 2

Aqui (é ampliado no máximo), existem 2 maneiras em que parece ser uma e apenas uma está conectada:

ampliada no máximo 2

Estou usando o assign_vertex_id com tolerâncias diferentes e o QGIS e o PostGIS, mas não sei o que usar nele.

hokkos
fonte
Eu me pergunto: esses são realmente erros? Por exemplo, ambas as situações podem ser usadas para representar uma via de mão dupla que se encontra com uma via de mão única. Isso pode ser um problema crítico, porque você não deseja introduzir novos erros em um esforço para eliminar outros!
whuber
Na verdade, é apenas um arquivo de forma horrivelmente ruim, quero um roteamento não direcionado extremamente simples, e o que você vê é muito ampliado.
Hokkos

Respostas:

12

Você pode usar o GRASS para fazer uma limpeza. Eu acho que você precisa quebrar esses vetores, remover duplicatas e depois tirá-los. Para isso existe a ferramenta v.clean com as opções break, rmdupl and snap.

Pablo
fonte
4

No PostGIS, tente ST_SnapToGrid para ajustar os vértices a uma grade virtual. Você precisa de algum trabalho de detetive para determinar qual distância de encaixe usar. Pode ser 0,01 (1 cm) ou 1,0, etc.

Mike T
fonte