ST_ClusterWithinWin — Fensterfunktion, die eine Cluster-ID für jede Eingabegeometrie zurückgibt, Clustering anhand des Trennungsabstands.
integer ST_ClusterWithinWin(
geometry winset geom, float8 distance)
;
Eine Fensterfunktion, die für jede Eingabegeometrie eine Clusternummer zurückgibt. Bei der Clusterbildung werden die Geometrien 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_ClusterWithinWin ist gleichbedeutend mit der Ausführung von ST_ClusterDBSCAN mit minpoints => 0
.
Verfügbarkeit: 3.4.0
Diese Methode unterstützt kreisförmige Strings und Kurven.
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