Líneas agregadas basadas en la distancia entre segmentos

12

Tengo un mapa base de VectorTile que estoy optimizando (trabajando para reducir el tamaño de los mosaicos individuales), la mayor parte del tamaño de los mosaicos son los datos del camino (geometría y atributos). Estoy trabajando para simplificar las geometrías de carreteras individuales en función del Nivel de zoom , y también para agregar las carreteras en función de los niveles de zoom.

Las carreteras se almacenan en una tabla Postgis (tabla individual para cada nivel de zoom) y quiero agregar las carreteras en función del nivel de zoom en el que se mostrarán. Por ejemplo, en la tabla Zoom Level 5 quiero agregar las carreteras que están dentro de una cierta distancia entre sí, y hacer una sola línea para los segmentos de carretera: ingrese la descripción de la imagen aquí

Como no es posible distinguir carreteras individuales en ese nivel de zoom: ingrese la descripción de la imagen aquí

¿Cómo puedo agregar las geometrías de carreteras en función de la distancia entre segmentos de carretera?

PD: estoy trabajando en PostGIS y QGIS en Linux, pero estoy abierto a soluciones que utilicen cualquier plataforma o tecnología Open Source

Hasan Mustafa
fuente
¿Las carreteras tienen una identificación común, por ejemplo, dos carriles en el nivel de zoom 5 en la A50 están representados por dos líneas, pero en el nivel 4 por una línea y todos tienen "A50" como su atributo?
AnserGIS
Están representados por dos líneas en todos los niveles de zoom. Las autopistas y autopistas tendrán el atributo común como "M-2" para las autopistas.
Hasan Mustafa

Respuestas:

5

Puede intentar buscar en esta opción del sistema operativo, Skeletron , que:

generaliza colecciones de líneas a un nivel de zoom de mercator esférico específico y precisión de píxeles, usando un buffer de polígono y un diagrama de voronoi

Está basado en un artículo de 1996 de Alnoor Ladak y Roberto B. Martinez, "Derivación automatizada de la técnica de polígonos de Thiessen de centrelinas viales de alta precisión"

Se requieren algunas dependencias:

Dependencias requeridas:
- qhull binary ( http://www.qhull.org )
- shapely 1.2+ ( http://pypi.python.org/pypi/Shapely )
- pyproj ( http://code.google.com/p / pyproj )
- networkx 1.5+ ( http://networkx.lanl.gov )
- StreetNames 0.1+ ( https://github.com/nvkelso/map-label-style-manual/tree/master/tools/street_names )

Nota: Este es un modelo / herramienta más antiguo que se puede aplicar, solo como referencia para explorar.

whyzar
fuente
1
Creo que skeletron podría ser el camino a seguir, pero su respuesta es simplemente una copia del archivo readme y el enlace al sitio web de esri está muerto. Aquí un enlace para mostrar lo que hace para los mapas: kartographie.geo.tu-dresden.de/downloads/ica-gen/workshop2004/… . se ve muy bien, pero cuando trato de usarlo no sabía cómo usarlo. No encontré una documentación, excepto algunos sobornos con el uso o el comando setup.py --help ... Si alguien explica cómo usar esa lib, le doy la recompensa.
Hugo Roussaffa - GeoDatup
También utiliza caminos OSM como entrada hasta donde puedo ver, quiero una solución que pueda funcionar en cualquier tipo de línea. Aún así, realmente amo la ciencia detrás de esto, me encantaría aplicar esto a otros escenarios también.
Hasan Mustafa
He actualizado mi publicación para reflejar sus comentarios, agradezco los comentarios.
whyzar
4

ArcGIS es el más simple si es una opción. Sé que el OP especifica el sistema operativo, pero menciono esto ya que las opciones del sistema operativo no parecen muy útiles en comparación con: http://resources.arcgis.com/en/help/main/10.1/index.html#/Merge_Divided_Roads/00700000000w000000 / /

Las respuestas a esta pregunta ofrecen algunas opciones de código abierto: ¿Cómo puedo fusionar / colapsar líneas de carreteras cercanas y paralelas (por ejemplo, una autovía) en una sola línea?

Si codifica, podría calcular la posición de la coordenada media en una base de vértice, si no, entonces:

  1. amortigua las carreteras con la opción "fusionar todo" en la salida.
  2. Obtener la línea central del polígono.
  3. Divida las líneas en las uniones con JUMP Split Lines en la intersección de otras líneas
  4. Espacial Unir los atributos nuevamente

Tampoco parece haber un buen sistema operativo equivalente a la herramienta ArcGIS 'Polígono a línea central'. Podría sugerir:

a. Crea un diagrama de voronoi y toma el esqueleto.
si. Cree un ráster de distancia euclidiana y extraiga el valor central y conviértalo en una línea

... probablemente algunos otros también.

Finalmente, dependiendo de la escala y la aplicación ... también podría valer la pena eliminar una de las dos líneas: ¿importará la imprecisión?

AnserGIS
fuente
La opción ArcGIS se ve bien, le daré una oportunidad, pero preferiría una solución de sistema operativo. Calcular la posición media de las coordenadas sobre una base de vértice es mi estrategia alternativa. Probaré todos los métodos que ha enumerado y veré si funcionan para mí, ¡gracias!
Hasan Mustafa
La herramienta ArcGIS, 'Combinar caminos divididos (cartografía)', es exactamente lo que estoy buscando, pero todo el procesamiento que estoy haciendo está en Linux, usando Postgres y QGIS, para usar la herramienta que necesitaré para cambiar a Windows .
Hasan Mustafa