Processing math: 100%

5 votos

Convertir individuales de los segmentos de línea en línea

He grupos de individuos de linestrings segmentos con espacialmente coincidente de inicio y finalización de puntos. Quiero convertir en linestrings como se ve en la imagen:

enter image description here

Este parece que debería ser muy fácil, pero no puedo averiguar cómo hacerlo. ST_Union sólo se devuelve todas las características de todo el conjunto, es decir, cada una de las caracteristicas de ambos grupos en la imagen se convierta en el único multilinestring.

No me tienen en común un campo de identificador para los grupos de linestrings, la única cosa que indica que pertenecen juntos es el hecho de que se toquen unos a otros en sus extremos.

Me estoy perdiendo algo que es obvio aquí?

2voto

Jay Bazuzi Puntos 194

Creo que quiere que ST_LineMerge. No tengo un PostGIS a mano ahora mismo, pero aquí es en Spatialite, la combinación de tres segmentos de línea en un segmento de larga duración y un desprendimiento de segmento corto:

SELECT ST_AsText(ST_LineMerge(
   ST_GeomFromText('MULTILINESTRING ((4 4, 3 7), (1 3, 2 4), (1 3, 3 6))')));
MULTILINESTRING((2 4, 1 3, 3 6), (4 4, 3 7))

puede que tenga que ST_UNION sus características para obtener un MULTILINESTRING a la alimentación.

PostGIS LineMerge doc aquí: https://postgis.net/docs/ST_LineMerge.html

Con coordenadas enteras obviamente, esto funciona bien, pero mirar hacia fuera para la aritmética de punto flotante lo que no unir líneas - no estoy seguro de lo que la tolerancia es para el ajuste de los segmentos junto con este.

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