Name

ST_ClusterIntersecting — Aggregate function that clusters input geometries into connected sets.

Synopsis

geometry[] ST_ClusterIntersecting(geometry set g);

Description

An aggregate function that returns an array of GeometryCollections partitioning the input geometries into connected clusters that are disjoint. Each geometry in a cluster intersects at least one other geometry in the cluster, and does not intersect any geometry in other clusters.

Availability: 2.2.0

Examples

Code
WITH testdata AS
  (SELECT unnest(
           ARRAY['LINESTRING (0 0,1 1)'::geometry,
           'LINESTRING (5 5,4 4)'::geometry,
           'LINESTRING (6 6,7 7)'::geometry,
           'LINESTRING (0 0,-1 -1)'::geometry,
           'POLYGON ((0 0,4 0,4 4,0 4,0 0))'::geometry]) AS geom)

SELECT unnest(ST_ClusterIntersecting(geom)) FROM testdata;
Output
GEOMETRYCOLLECTION(LINESTRING(0 0,1 1),LINESTRING(5 5,4 4),LINESTRING(0 0,-1 -1),POLYGON((0 0,4 0,4 4,0 4,0 0)))
GEOMETRYCOLLECTION(LINESTRING(6 6,7 7))
Figure
Geometry figure for visual-st-clusterintersecting-01