Name

ST_ClusterIntersectingWin — Fonction Window qui renvoie un identifiant de cluster pour chaque géométrie en entrée, en regroupant les géométries en entrée en ensembles connectés.

Synopsis

integer ST_ClusterIntersectingWin(geometry winset geom);

Description

Une fonction window qui construit des clusters connectés de géométries qui se croisent. Il est possible de parcourir toutes les géométries d'un cluster sans quitter le cluster. La valeur de retour est le numéro du cluster à laquelle participe l'argument géométrie, ou null pour les entrées nulles.

Disponibilité : 3.4.0

Exemples

WITH testdata AS (
  SELECT id, geom::geometry FROM (
  VALUES  (1, 'LINESTRING (0 0, 1 1)'),
          (2, 'LINESTRING (5 5, 4 4)'),
          (3, 'LINESTRING (6 6, 7 7)'),
          (4, 'LINESTRING (0 0, -1 -1)'),
          (5, 'POLYGON ((0 0, 4 0, 4 4, 0 4, 0 0))')) AS t(id, geom)
)
SELECT id,
  ST_AsText(geom),
  ST_ClusterIntersectingWin(geom) OVER () AS cluster
FROM testdata;

 id |           st_astext            | cluster
----+--------------------------------+---------
  1 | LINESTRING(0 0,1 1)            |       0
  2 | LINESTRING(5 5,4 4)            |       0
  3 | LINESTRING(6 6,7 7)            |       1
  4 | LINESTRING(0 0,-1 -1)          |       0
  5 | POLYGON((0 0,4 0,4 4,0 4,0 0)) |       0