Name

ST_AddPoint — 将点添加到线串(LineString)。

Synopsis

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-index。

示例

在 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