ST_GeneratePoints — 生成一个包含在多边形(Polygon)或多重多边形(MultiPolygon)内的随机点的多点对象。
geometry ST_GeneratePoints(geometry g, integer npoints, integer seed = 0);
ST_GeneratePoints 生成一个包含指定数量伪随机点的多点对象,这些点位于输入区域内。可选的 seed 用于重新生成一个确定性的点序列,必须大于零。
可用性:2.3.0
增强:3.0.0,添加种子参数
使用随机种子值 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;