名稱

ST_GeneratePoints — 產生一個多點,包含在多邊形或多重多邊形中的隨機點。

概要

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

描述

ST_GeneratePoints 產生一個多點,包含指定數量的偽隨機點,這些點位於輸入區域內。 可選的 seed 用於重新產生確定性的點序列,並且必須大於零。

可用性:2.3.0

增強功能:3.0.0,添加了 seed 參數

範例

使用隨機 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