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

Respostas:


7

Você pode fazer isso com ST_ClusterIntersecting :

SELECT attr, unnest(ST_ClusterIntersecting(geom))
FROM lines
GROUP by attr;

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.