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;