名稱

ST_ClusterWithin — 依分離距離將幾何圖形群聚的聚合函數。

概要

geometry[] ST_ClusterWithin(geometry 集合 g, float8 distance);

描述

一個聚合函數,返回一個 GeometryCollection 的陣列,其中每個集合都是一個群集,包含一些輸入的幾何圖形。群聚會將輸入的幾何圖形劃分為多個集合,其中每個幾何圖形都在指定 distance 距離內,至少與同一個群集中的另一個幾何圖形相距 distance 距離。距離是 SRID 單位中的笛卡爾距離。

ST_ClusterWithin 相當於執行 ST_ClusterDBSCAN,其中 minpoints => 0

可用性:2.2.0

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

範例

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 ST_AsText(unnest(ST_ClusterWithin(geom, 1.4))) FROM testdata;

--result

st_astext
---------
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))