ST_SetPoint - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

ST_SetPoint

ST_SetPoint 返回一个线串,该线串具有相对于索引指定的输入线串位置的更新坐标。新坐标是输入点的坐标。

返回的几何体的维度与 geom1 值的相同。如果 geom1geom2 具有不同的维度,则 geom2 会投影到 geom1 的维度。

语法

ST_SetPoint(geom1, index, geom2)

参数

geom1

一个 GEOMETRY 数据类型的值,或一个计算结果为 GEOMETRY 类型的表达式。子类型必须是 LINESTRING

index

数据类型 INTEGER 的一个值,表示索引的位置。0 是指从左边开始的线串的第一个点,1 指的是第二点,依此类推。索引可以是负值。-1 是指从右边开始的线串的第一个点,-2 指的是从右边开始的线串的第二点,依此类推。

geom2

一个 GEOMETRY 数据类型的值,或一个计算结果为 GEOMETRY 类型的表达式。子类型必须是 POINT

返回类型

GEOMETRY

如果 geom2 是空点,则会返回 geom1

如果 geom1geom2index 为 null,则返回 null。

如果 geom1 不是线串,则返回一个错误。

如果 index 不在有效的索引范围内,则返回一个错误。

如果 geom2 不是点,则返回一个错误。

如果 geom1geom2 不具有相同的空间参考系统标识符 (SRID) 值,则返回一个错误。

示例

以下 SQL 返回一个新的线串,其中我们用指定的点设置了输入线串的第二个点。

SELECT ST_AsText(ST_SetPoint(ST_GeomFromText('LINESTRING(1 2, 3 2, 5 2, 1 2)'), 2, ST_GeomFromText('POINT(7 9)')));
st_astext ------------- LINESTRING(1 2,3 2,7 9,1 2)

以下 SQL 示例返回一个新的线串,其中我们用指定的点设置了线串右起第三个点(索引为负数)。

SELECT ST_AsText(ST_SetPoint(ST_GeomFromText('LINESTRING(1 2, 3 2, 5 2, 1 2)'), -3, ST_GeomFromText('POINT(7 9)')));
st_astext ------------- LINESTRING(1 2,7 9,5 2,1 2)