23 votos

¿Cómo puedo combinar/colapso de cerca y en paralelo las líneas de carretera (por ejemplo. un doble calzada) en una sola línea?

Tengo un shapefile de OSM que contiene todos los caminos dentro de una ciudad. Carreteras más grandes (como la doble calzada), parecen tener 2 líneas paralelas. Me gustaría colapso / combinar aquellos en 1 línea para que yo pueda exportar y procesar muy bien en externo aplicación 3D (2 superposición de carreteras va a ser complicado y va a mirar raro en 3D).

¿Cómo puedo lograr esto, ya sea con QGIS o PostGIS? No estoy preocupado acerca de una ligera pérdida de precisión (dentro de un par de metros) y le gusta el resultado, de una sola línea entre (lo ideal es que el centro de la actual, de líneas paralelas.

Gracias.

(aquí es un ejemplo del doble que las líneas de carretera que quiero combinar)

enter image description here

2voto

lewis Puntos 1178

ESRI tiene un colapso de la autovía a la línea central de la herramienta. Usted puede obtener un hoteles de la versión para su uso con OSM. De lo contrario, usted podría seleccionar funciones y guardar como una nueva capa. Elimina seleccionados de la capa que se utiliza para la exportación. Búfer de característica dentro de la gama de uno de los lados de la calzada, que incluye el segundo carril. Combinación de shapefile con el original, conectar cualquier parte rota de la topología. Si usted puede y código o script que podría promedio de una línea central entre los carriles en un nodo por seg por nodo coincidente y de salida de una línea central programaticaly y, a continuación, programaticaly eliminado las características seleccionadas se utiliza para el proceso de producción, verificación y reparación de la topología, y su hecho.

He encontrado una arcpy código de ejemplo estoy incluyendo, cómo encontrar el enlace está más abajo en los comentarios.

atribuido a ESRI ARCGis Ayuda

# Name: CollapseDualLinesToCenterline_Example.py
# Description: Creates street centerlines from a street casing coverage.
# Requirements: ArcInfo Workstation

# Import system modules
import arcpy
from arcpy import env

# Set environment settings
env.workspace = "C:/data"

# Set local variables
inCover = "streets"
outCover = "C:/output/centerlines"
maximumWidth = 50

# Execute CollapseDualLinesToCenterline
arcpy.CollapseDualLinesToCenterline_arc(inCover, outCover, maximumWidth, "")

1voto

Mike Puntos 1113

Usted podría tratar de usar Mike Migurski del Skeletron. Es una herramienta de código abierto que se utiliza para cosas tales como su Terreno de estilo de mapa.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X