名稱

ST_ClusterWithinWin — 視窗函式,返回每個輸入幾何圖形的叢集 ID,使用分離距離進行叢集。

概要

integer ST_ClusterWithinWin(geometry winset geom, float8 distance);

描述

一個視窗函式,為每個輸入幾何圖形返回一個叢集編號。叢集將幾何圖形分割成集合,其中每個幾何圖形與同一叢集中至少一個其他幾何圖形的距離在指定的 distance 內。距離是 SRID 單位中的笛卡爾距離。

ST_ClusterWithinWin 等效於使用 minpoints => 0 執行 ST_ClusterDBSCAN

可用性:3.4.0

此方法支援圓形字串和曲線。

範例

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