本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
ST_ AddPoint
ST_ 會AddPoint 傳回與加入點的輸入幾何圖形相同的線串幾何圖形。如果提供索引,則點會新增在索引位置。如果索引為 -1 或未提供,則點附加至 linestring。
索引是以零開始。結果的空間參考系統識別碼 (SRID) 與輸入幾何的 SRID 相同。
傳回幾何的維度與 geom1 值的維度相同。如果 geom1 和 geom2 具有不同的維度,則將 geom2 投影到 geom1 的維度。
語法
ST_AddPoint(geom1, geom2)
ST_AddPoint(geom1, geom2, index)
引數
- geom1
-
GEOMETRY
資料類型的值,或是評估為GEOMETRY
類型的表達式。子類型必須是LINESTRING
。 - geom2
-
GEOMETRY
資料類型的值,或是評估為GEOMETRY
類型的表達式。子類型必須是POINT
。該點可以是空點。 - 索引
-
資料類型
INTEGER
的值,代表以零開始的索引位置。
傳回類型
GEOMETRY
如果 geom1、geom2 或 index 為 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)