Estou tentando usar o QGIS 2.14 para conectar uma rede de estradas a uma grade hexagonal, mas estou obtendo artefatos estranhos.
Eu criei uma grade hexagonal com MMQGIS , as células são aproximadamente 20 x 23 m. Eu tampei a rede rodoviária em 1m e a densifiquei para que haja um nó a cada poucos metros. Você pode ver o que estou tentando alcançar abaixo. Como você pode ver, posso fazê-lo funcionar em alguns casos: -
- azul é a estrada densificada (uma linha em buffer)
- vermelho é a versão 'hexificada' - é isso que eu quero encontrar
- o cinza é a grade hexagonal
Em seguida, usei o novo recurso Geometrias de snap para encaixar os nós no canto hexagonal mais próximo. Os resultados são promissores, mas parece haver alguns casos extremos em que a linha se expande para preencher o hexágono (ou parte dele): -
O motivo do buffer é que as geometrias de Snap não permitem que você faça snap em uma camada cuja geometria é diferente. Por exemplo, você não pode encaixar nós em uma camada LINE para pontos em uma camada POINT). Parece ser o mais feliz encaixar POLYGON em POLYGON.
Suspeito que as estradas se expandem quando um lado da linha da estrada com buffer salta para um lado da célula hexadecimal e o outro lado pula para o outro lado da célula hexadecimal. No meu exemplo, as estradas que cruzam oeste-leste em um ângulo agudo parecem ser as piores.
Coisas que eu tentei, sem sucesso: -
- protegendo a rede rodoviária por uma pequena quantidade, permanecendo um polígono, mas é muito fino.
- densificar as células hexadecimais (para que haja nós ao longo das bordas, não apenas nos cantos)
- variando a distância máxima de encaixe (isso tem o maior efeito, mas não consigo encontrar um valor ideal)
- usando camadas LINE, não POLYGONs
Acho que, se eu mudar para o uso de apenas camadas de linha, ele funcionará por um tempo e travará. Parece salvar seu trabalho à medida que avança - algumas linhas foram parcialmente processadas.
Alguém sabe de outra maneira de ajustar pontos em uma linha para o ponto mais próximo em outra camada de linha / polígono, idealmente sem precisar usar o postgres / postgis (embora uma solução com o postgis também seja bem-vinda)?
EDITAR
Para quem quiser experimentar, coloquei um projeto inicial do QGIS aqui no Dropbox . Isso inclui as camadas de grade hexadecimal e de densidade. (A rede rodoviária é do OSM, portanto, pode ser baixada usando o QuickOSM, por exemplo, se você precisar fazer com que o original subestime as estradas).
Observe que está no OSGB (epsg: 27700) que é um UTM localizado para o Reino Unido, com unidades em metros.