名称

ST_GeneratePoints — 生成一个包含在 Polygon 或 MultiPolygon 中的随机点的多点。

概要

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

描述

ST_GeneratePoints 生成一个多点,该多点由给定数量的位于输入区域内的伪随机点组成。 可选的 seed 用于重新生成确定性的点序列,并且必须大于零。

可用性: 2.3.0

增强: 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