名称

ST_AddPoint — 向 LineString 添加一个点。

语法

geometry ST_AddPoint(geometry linestring, geometry point);

geometry ST_AddPoint(geometry linestring, geometry point, integer position = -1);

说明

在索引 position 之前向 LineString 添加一个点(使用基于 0 的索引)。如果省略 position 参数或其值为 -1,则将该点追加到 LineString 的末尾。

可用性:1.1.0

此函数支持 3d,不会删除 z 索引。

示例

向 3D 线的末尾添加一个点

SELECT ST_AsEWKT(ST_AddPoint('LINESTRING(0 0 1, 1 1 1)', ST_MakePoint(1, 2, 3)));

    st_asewkt
    ----------
    LINESTRING(0 0 1,1 1 1,1 2 3)

通过仅向未闭合的线添加每条线的起始点到线的末尾,来确保表中的所有线都闭合。

UPDATE sometable
SET geom = ST_AddPoint(geom, ST_StartPoint(geom))
FROM sometable
WHERE ST_IsClosed(geom) = false;

另请参阅

ST_RemovePointST_SetPoint