本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
ST_AddPoint
ST_AddPoint 返回一个线串几何体,它与添加了点的输入几何体相同。如果提供了索引,则在索引位置添加点。如果索引为 -1 或未提供,则在线串后面附加点。
索引是从零开始的。结果的空间参考系统标识符 (SRID) 与输入几何体的相同。
Syntax
ST_AddPoint(geom1, geom2)
ST_AddPoint(geom1, geom2, index)
Arguments
- geom1
-
一个
GEOMETRY
数据类型的值,或一个计算结果为GEOMETRY
类型的表达式。子类型必须是LINESTRING
。 - geom2
-
一个
GEOMETRY
数据类型的值,或一个计算结果为GEOMETRY
类型的表达式。子类型必须是POINT
。 - index
-
一个
INTEGER
数据类型的值,表示从零开始的索引的位置。
返回类型
GEOMETRY
如果 geom1、geom2 或 index 为 null,则返回 null。
如果 geom1 不是 LINESTRING
,则返回一个错误。
如果 geom2 不是 POINT
,则返回一个错误。
如果 index 超出范围,则返回一个错误。索引位置的有效值为 -1 或为一个介于 0 和 ST_NumPoints(geom1)
之间的值。
Examples
以下 SQL 向线串添加点以使其成为闭合线串。
WITH tmp(g) AS (SELECT ST_GeomFromText('LINESTRING(0 0,10 0,10 10,5 5,0 5)',4326)) SELECT ST_AsEWKT(ST_AddPoint(g, ST_StartPoint(g))) FROM tmp;
st_asewkt ------------------------------------------------ SRID=4326;LINESTRING(0 0,10 0,10 10,5 5,0 5,0 0)
以下 SQL 将点添加到线串中的特定位置。
WITH tmp(g) AS (SELECT ST_GeomFromText('LINESTRING(0 0,10 0,10 10,5 5,0 5)',4326)) SELECT ST_AsEWKT(ST_AddPoint(g, ST_SetSRID(ST_Point(5, 10), 4326), 3)) FROM tmp;
st_asewkt ------------------------------------------------ SRID=4326;LINESTRING(0 0,10 0,10 10,5 10,5 5,0 5)