名称

ST_AddPoint — 向 LineString 添加一个点。

概要

geometry ST_AddPoint(geometry linestring, geometry point);

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

描述

在索引 position 之前(使用基于 0 的索引)向 LineString 添加一个点。如果省略 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_RemovePoint, ST_SetPoint