本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
ST_ SetPoint
ST_ SetPoint 返回相對於由索引指定的輸入線串的位置更新坐標的線串。新座標是輸入點的座標。
傳回幾何的維度與 geom1 值的維度相同。如果 geom1 和 geom2 具有不同的維度,則將 geom2 投影到 geom1 的維度。
語法
ST_SetPoint(geom1, index, geom2)
引數
- geom1
-
GEOMETRY
資料類型的值,或是評估為GEOMETRY
類型的表達式。子類型必須是LINESTRING
。 - 索引
-
INTEGER
資料類型的值,代表索引的位置。0
是指 linestring 左邊的第一個點,1
是指第二點,以此類推。索引可以是負值。-1
是指 linestring 右側的第一個點,-2
是指 linestring 右側的第二個點,以此類推。 - geom2
-
GEOMETRY
資料類型的值,或是評估為GEOMETRY
類型的表達式。子類型必須是POINT
。
傳回類型
GEOMETRY
如果 geom2 是空點,則傳回 geom1。
如果 geom1、geom2 或 index 為 Null,則會傳回 Null。
如果 geom1 不是線串,則會傳回錯誤。
如果 index 不在有效的索引範圍內,則傳回錯誤。
如果 geom2 不是點,則會傳回錯誤。
如果 geom1 和 geom2 的空間參考系統識別碼 (SRID) 不同,則會傳回錯誤。
範例
下列 SQL 會傳回一個新的 linestring,在這裡我們將輸入 linestring 的第二個點設定為指定點。
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 範例會傳回一個新的 linestring,在這裡我們將 linestring 右側的第三個點 (索引為負) 設定為指定點。
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)