4 votos

¿Cómo simplificar las calles para reducir las vías de circulación separadas?

Las calles de Openstreetmap tienen más detalles de los que necesito. Por ejemplo, no necesito vías separadas para cada sentido de la marcha, sino que sólo quiero mostrar el trazado general de la calle. Ejemplo:

OSM linestrings for a street

Líneas OSM para una calle

Simplified

Cadena(s) de líneas simplificada(s) (aquí es sólo una, pero en el caso de las armas laterales sería > 1)

input:  collection of linestrings
output: collection of linestrings 
simplified lines = f(osm lines)
f = ?

la salida es una colección también, ya que las armas laterales deben seguir estando disponibles.

¿Cómo puedo simplificar mediante programación estas colecciones de cadenas de líneas?

Me gustaría utilizar JTS, NTS, GEOS pero no PostGIS si es posible.

3voto

Joe Puntos 16

Es difícil imaginar cómo se puede alcanzar lo que se desea de forma automática. ¿Quizás borrando una de las calles etiquetadas como de sentido único si existen dos con el mismo nombre y lo suficientemente cerca?

El flujo de trabajo utilizado a menudo comienza a partir de cadenas de líneas unidas, seguidas de almacenamiento en búfer y esqueletización. Esta tesis doctoral es una buena lectura http://paduaresearch.cab.unipd.it/4077/1/Tesi-Savino-2011.pdf También he probado el flujo de trabajo con OpenJUMP 1.7.0 y el plugin Skeletonizer http://kent.dl.sourceforge.net/project/jump-pilot/OpenJUMP_plugins/More%20Plugins/JUMP%20Skeletonizer%20Plugin/skeletonizer-1.0.zip El plugin funciona pero el resultado es una calle larga, no un número reducido de calles cortas. Me pareció necesario leer el manual antes de usar el plugin. Está dentro del zip en la carpeta doc.

-2voto

zxcv Puntos 1682

Hay un ST_Simplify función en Postgis v. 2.0 que debe adaptarse a sus propósitos. Básicamente tiene una tolerancia espacial donde si una característica está dentro de cierta distancia de otra característica, entonces fusionará ambas características en una sola característica. La sintaxis es la siguiente.

ST_Simplify(geometry geomA, float tolerance);

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