Estoy tratando de usar QGIS 2.14 para ajustar una red de carreteras a una cuadrícula hexagonal, pero obtengo artefactos extraños.
He creado una cuadrícula hexadecimal con MMQGIS , las celdas miden aproximadamente 20 x 23 m. He amortiguado la red de carreteras en 1 my la he densificado para que haya un nodo cada pocos metros. Puedes ver lo que estoy tratando de lograr a continuación. Como puede ver, puedo hacer que funcione en algunos casos:
- azul es el camino densificado (una línea amortiguada)
- rojo es la versión 'hexificada': esto es lo que quiero encontrar
- el gris es la cuadrícula hexadecimal
Luego utilicé la nueva función de geometrías de ajuste para ajustar los nodos a la esquina hexagonal más cercana. Los resultados son prometedores, pero parece haber algunos casos extremos en los que la línea se expande para llenar el hexágono (o parte de él):
La razón del búfer es que las geometrías de ajuste no le permiten ajustar a una capa cuya geometría es diferente. Por ejemplo, no puede ajustar nodos en una capa LINE a puntos en una capa POINT). Parece ser más feliz al conectar POLYGON a POLYGON.
Sospecho que las carreteras se expanden cuando un lado de la línea de la carretera amortiguada salta a un lado de la celda hexagonal, y el otro lado salta al otro lado de la celda hexagonal. En mi ejemplo, las carreteras que cruzan oeste-este en un ángulo agudo parecen ser las peores.
Cosas que he intentado, sin éxito: -
- amortiguando la red de carreteras en una pequeña cantidad, por lo que sigue siendo un polígono pero es muy delgada.
- densificar las celdas hexadecimales (por lo que hay nodos a lo largo de los bordes, no solo en las esquinas)
- variando la distancia máxima de ajuste (esto tiene el mayor efecto, pero parece que no puedo encontrar un valor ideal)
- usando capas LINE, no POLYGONs
Me parece que si cambio a usar solo capas LINE, funciona por un tiempo, luego se bloquea. Parece guardar su trabajo a medida que avanza: algunas líneas se han procesado parcialmente.
¿Alguien sabe de alguna otra manera de ajustar puntos en una línea al punto más cercano en otra línea / capa de polígono, idealmente sin necesidad de usar postgres / postgis (aunque una solución con postgis también sería bienvenida)?
EDITAR
Para cualquiera que quiera probar, he puesto un proyecto QGIS de inicio aquí en Dropbox . Esto incluye las capas Hex Grid y Densified lines. (La red de carreteras es de OSM, por lo que se puede descargar usando QuickOSM, por ejemplo, si necesita obtener el original para descomprimir las carreteras).
Tenga en cuenta que está en OSGB (epsg: 27700) que es un UTM localizado para el Reino Unido, con unidades en metros.