Name

ST_ClusterWithinWin — Fensterfunktion, die eine Cluster-ID für jede Eingabegeometrie zurückgibt, Clustering anhand des Trennungsabstands.

Synopsis

integer ST_ClusterWithinWin(geometry winset geom, float8 distance);

Beschreibung

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.

Beispiele

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