このトピックでは、ST_ClusterWithin関数について説明します。 この関数は、GeometryCollectionオブジェクトの配列を返します。各オブジェクトは、指定された距離以下で区切られた一連のジオメトリオブジェクトを表します。
構文
geometry[] ST_ClusterWithin (ジオメトリセットg、float8距離);
パラメーター
パラメーター | 説明 |
g | 指定するジオメトリオブジェクト。 |
距離 | クラスタリングに使用する距離。 |
説明
指定する距離は、空間参照識別子 (SRID) を使用して表されるデカルト距離です。
例
- デフォルトのパラメーター設定を保持したままGeometryCollectionオブジェクトの配列を取得します。
SELECT ST_AsText(unnest(ST_ClusterWithin(geom,1))) から (選択ARRAY['LINESTRING (0) 0,0 1)'::geometry、 'LINESTRING (2 3,3 3)'::geometry、 'LINESTRING (0 1,2 3)'::geometry、 'POINT (-1 -1)'::geometry] as geom) as test; st_astext --------------------------------------------------------------- GEOMETRYCOLLECTION(LINESTRING(0 0,0 1) 、LINESTRING(2 3,3 3) 、LINESTRING(0 1,2 3)) GEOMETRYCOLLECTION (ポイント (-1 -1)) (2行)
- クラスタリングの距離を2に設定したGeometryCollectionオブジェクトの配列を取得します。
SELECT ST_AsText(unnest(ST_ClusterWithin(geom,2))) から (選択ARRAY['LINESTRING (0) 0,0 1)'::geometry、 'LINESTRING (2 3,3 3)'::geometry、 'LINESTRING (0 1,2 3)'::geometry、 'POINT (-1 -1)'::geometry] as geom) as test; st_astext --------------------------------------------------------------- GEOMETRYCOLLECTION(LINESTRING(0 0,0 1) 、LINESTRING(2 3,3 3) 、LINESTRING(0 1,2 3) 、POINT(-1 -1)) (1行)