Name

ST_GeneratePoints — ポリゴン内やマルチポリゴン内にランダムなマルチポイントを生成します。

Synopsis

geometry ST_GeneratePoints(geometry g, integer npoints, integer seed = 0);

説明

ST_GeneratePointsは、入力の面の内側に、与えられた数の疑似乱数によってマルチポイントを生成します。決定的な点列を生成する場合には任意パラメータseedを使います。この際、0より大きい数を指定します。

Availability: 2.3.0

Enhanced: 3.0.0 seedパラメータの追加

乱数シード値に1996を使った、元のポリゴンの上に重なった12個のポイントの生成

SELECT ST_GeneratePoints(geom, 12, 1996)
FROM (
    SELECT ST_Buffer(
        ST_GeomFromText(
        'LINESTRING(50 50,150 150,150 50)'),
        10, 'endcap=round join=round') AS geom
) AS s;

ポリゴンテーブル s があって、ポリゴンごとに12の個別のポイントが返されます。結果は実行するたびに異なります。

SELECT s.id, dp.path[1] AS pt_id, dp.geom
FROM s, ST_DumpPoints(ST_GeneratePoints(s.geom,12)) AS dp;

関連情報

ST_DumpPoints