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;