Name

ST_ClusterWithin — Aggregatfunktion, die Geometrien nach Trennungsabstand gruppiert.

Übersicht

geometry[] ST_ClusterWithin(geometry set g, float8 distance);

Beschreibung

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.

Beispiele

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_ClusterWithin(geom, 1.4)) FROM testdata;
Ausgabe von Rastern
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-clusterwithin-01