ST_ClusterWithin
Name
ST_ClusterWithin — Aggregate function that clusters geometries by separation distance.
Synopsis
geometry[]
ST_ClusterWithin
(
geometry set
g
, float8
distance
)
;
Description
An aggregate function that returns an array of GeometryCollections,
where each collection is a cluster containing some input geometries.
Clustering partitions the input geometries into sets
in which each geometry is within the specified
distance
of at least one other geometry in the same cluster.
Distances are Cartesian distances in the units of the SRID.
ST_ClusterWithin is equivalent to running
ST_ClusterDBSCAN
with
minpoints := 0
.
Availability: 2.2.0
This method supports Circular Strings and Curves.
Examples
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 ST_AsText(unnest(ST_ClusterWithin(geom, 1.4))) FROM testdata; --result st_astext --------- 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))