PostGIS: comment fusionner des fonctionnalités contiguës partageant les mêmes valeurs d'attributs?

9

J'ai une grande table PostGIS stockant des fonctionnalités de ligne.

Je voudrais fusionner des fonctionnalités qui sont toutes deux connectées les unes aux autres et ont donné des valeurs d'attribut identiques. Voici ci-dessous un exemple de ce que j'aimerais réaliser.

  • Les fonctionnalités les plus extrêmes (noires et bleues) ne sont pas fusionnées car elles ne sont pas contiguës même si leurs valeurs d'attribut sont les mêmes
  • Les fonctionnalités verte et rouge sont fusionnées car elles correspondent aux deux conditions
  • Le jaune est laissé comme avant.

Comment pourriez-vous y parvenir avec une requête SQL? entrez la description de l'image ici

wiltomap
la source

Réponses:

7

Vous pouvez le faire avec ST_ClusterIntersecting :

SELECT attr, unnest(ST_ClusterIntersecting(geom))
FROM lines
GROUP by attr;
dbaston
la source
Merci @dbaston! Je vais l'essayer dans les prochains jours et je vous le ferai savoir.
wiltomap
La fonction ST_ClusterIntersecting()est disponible à partir de PostGIS 2.2 ... Existe-t-il une solution avec une ancienne version? Je suis sur PostGIS 2.1.8 et je ne peux pas mettre à jour PostGIS pour le moment.
wiltomap
Rien de ce que je considérerais bon ... c'est en fait cette situation qui m'a motivé à écrire ST_ClusterIntersecting. Certaines idées pré-2.2 sont disponibles sur gis.stackexchange.com/q/94203/18189
dbaston