PostGIS
Name
ST_ClusterWithinWin — Window function that returns a cluster id for each input geometry, clustering using separation distance.
Description
A window function that returns a cluster number for each input geometry.
Clustering partitions the 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_ClusterWithinWin is equivalent to running
ST_ClusterDBSCAN with minpoints := 0
.
Availability: 3.4.0
This method supports Circular Strings and Curves.
Examples
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_ClusterWithinWin(geom, 1.4) 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