PostGIS: ¿cómo fusionar características contiguas que comparten los mismos valores de atributos?

9

Tengo una gran tabla PostGIS que almacena características de línea.

Me gustaría fusionar características que están conectadas entre sí y han dado valores de atributo idénticos. Aquí hay un ejemplo de lo que me gustaría lograr.

  • Las características externas (negras y azules) no se fusionan porque no son contiguas incluso si sus valores de atributo son los mismos
  • Las características verde y roja se fusionan porque coinciden con ambas condiciones.
  • La característica amarilla se deja como antes.

¿Cómo lograrías eso con una consulta SQL? ingrese la descripción de la imagen aquí

wiltomap
fuente

Respuestas:

7

Puede hacer esto con ST_ClusterIntersecting :

SELECT attr, unnest(ST_ClusterIntersecting(geom))
FROM lines
GROUP by attr;
dbaston
fuente
Gracias @dbaston! Lo intentaré en los próximos días y te lo haré saber.
wiltomap
La función ST_ClusterIntersecting()está disponible desde PostGIS 2.2 ... ¿Existe una solución con una versión anterior? Estoy en PostGIS 2.1.8 y no puedo actualizar PostGIS por el momento.
wiltomap
Nada que considere bueno ... en realidad es esta situación la que me motivó a escribir ST_ClusterIntersecting. Algunas ideas anteriores a la 2.2 están en gis.stackexchange.com/q/94203/18189
dbaston el