ST_AddPoint - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

ST_AddPoint

ST_AddPoint 傳回的 linestring 幾何與已新增點的輸入幾何相同。如果提供索引,則點會新增在索引位置。如果索引為 -1 或未提供,則點附加至 linestring。

索引是以零開始。結果的空間參考系統識別符 (SRID) 與輸入幾何的 SRID 相同。

傳回幾何的尺寸與geom1值。如果geom1geom2具有不同的尺寸,geom2的尺寸投影到geom1

Syntax (語法)

ST_AddPoint(geom1, geom2)
ST_AddPoint(geom1, geom2, index)

引數

geom1

GEOMETRY 資料類型的值,或是評估為 GEOMETRY 類型的表達式。子類型必須是 LINESTRING

geom2

GEOMETRY 資料類型的值,或是評估為 GEOMETRY 類型的表達式。子類型必須是 POINT。該點可以是空點。

索引

資料類型 INTEGER 的值,代表以零開始的索引位置。

傳回類型

GEOMETRY

如果 geom1geom2index 為 Null,則會傳回 Null。

如果geom2是空點,那麼geom1返回。

如果 geom1 不是 LINESTRING,則會傳回錯誤。

如果 geom2 不是 POINT,則會傳回錯誤。

如果 index 超出範圍,則會傳回錯誤。索引位置的有效值是 -1 或是介於 0 與 ST_NumPoints(geom1) 之間的值。

範例

下列 SQL 會將一點新增到 linestring,使其成為一個封閉的 linestring。

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 會將一點新增到 linestring 中的特定位置。

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)