Name

ST_ClusterIntersectingWin — Fensterfunktion, die für jede Eingabegeometrie eine Cluster-ID zurückgibt und die Eingabegeometrien in zusammenhängende Gruppen clustert.

Übersicht

integer ST_ClusterIntersectingWin(geometry winset geom);

Beschreibung

Eine Fensterfunktion, die zusammenhängende Cluster von sich schneidenden Geometrien bildet. Es ist möglich, alle Geometrien in einem Cluster zu durchlaufen, ohne den Cluster zu verlassen. Der Rückgabewert ist die Clusternummer, an der das Geometrieargument beteiligt ist, oder null für Nulleingaben.

Verfügbarkeit: 3.4.0

Beispiele

Return an explicit cluster id for each input geometry. Using the conventional cid alias keeps the geometry column ready for color-by-cluster rendering.

Code
WITH testdata(id, geom) AS (
  VALUES (1, 'LINESTRING (0 0,1 1)'::geometry),
         (2, 'LINESTRING (5 5,4 4)'::geometry),
         (3, 'LINESTRING (6 6,7 7)'::geometry),
         (4, 'LINESTRING (0 0,-1 -1)'::geometry),
         (5, 'POLYGON ((0 0,4 0,4 4,0 4,0 0))'::geometry)
), clustered AS (
  SELECT id,
         geom,
         ST_ClusterIntersectingWin(geom) OVER () AS cid
  FROM testdata
)
SELECT id,
       geom AS geom_wkt,
       cid
FROM clustered
ORDER BY id;
Ausgabe von Rastern
id |            geom_wkt            | cid
----+--------------------------------+-----
  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
Figure
Geometry figure for visual-st-clusterintersectingwin-01