PostGIS: como mesclar recursos contíguos que compartilham os mesmos valores de atributos?

9

Eu tenho uma grande tabela PostGIS armazenando recursos de linha.

Gostaria de mesclar recursos que estejam conectados entre si e que tenham valores de atributo idênticos. Aqui está um exemplo do que eu gostaria de alcançar.

  • Os recursos mais extremos (preto e azul) não são mesclados porque não são contíguos, mesmo que seus valores de atributo sejam os mesmos
  • Os recursos verde e vermelho são mesclados porque correspondem às duas condições
  • O amarelo do recurso é deixado como antes.

Como você conseguiria isso com uma consulta SQL? insira a descrição da imagem aqui

wiltomap
fonte

Respostas:

7

Você pode fazer isso com ST_ClusterIntersecting :

SELECT attr, unnest(ST_ClusterIntersecting(geom))
FROM lines
GROUP by attr;
dbaston
fonte
Obrigado @dbaston! Vou tentar nos próximos dias e informá-lo.
Wiltomap 12/04/16
A função ST_ClusterIntersecting()está disponível no PostGIS 2.2 ... Existe uma solução com uma versão mais antiga? Estou no PostGIS 2.1.8 e não posso atualizar o PostGIS no momento.
Wiltomap:
Nada que eu considerasse bom ... é na verdade essa situação que me motivou a escrever ST_ClusterIntersecting. Alguns pré-2.2 ideias estão em gis.stackexchange.com/q/94203/18189
dbaston