ST_ClusterWithin — Aggregatfunktion, die Geometrien nach Trennungsabstand gruppiert.
geometry[] ST_ClusterWithin(
geometry set g, float8 distance)
;
Eine Aggregatfunktion, die ein Array von GeometryCollections zurückgibt, wobei jede Collection ein Cluster ist, das einige Eingabegeometrien enthält. Bei der Clusterbildung werden die Eingabegeometrien in Gruppen unterteilt, in denen jede Geometrie innerhalb des angegebenen Abstands von mindestens einer anderen Geometrie im selben Cluster liegt. Die Abstände sind kartesische Abstände in den Einheiten des SRID.
ST_ClusterWithin ist gleichbedeutend mit der Ausführung von ST_ClusterDBSCAN mit minpoints => 0
.
Verfügbarkeit: 2.2.0
Diese Methode unterstützt kreisförmige Strings und Kurven.
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))