ST_ AddPoint - Amazon Redshift

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

ST_ AddPoint

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

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

傳回幾何的維度與 geom1 值的維度相同。如果 geom1geom2 具有不同的維度,則將 geom2 投影到 geom1 的維度。

語法

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)