ST_SetPoint — 以給定的點取代線串的點。
geometry ST_SetPoint(
geometry 線串, integer 從零開始的位置索引, geometry 點)
;
以給定的點取代線串的第 N 個點。索引是從 0 開始的。負索引則從後往前算,因此 -1 是最後一個點。當試圖在一個頂點移動時保持關節的關係時,這在觸發器中特別有用。
可用性:1.1.0
更新於 2.3.0:負索引
此函數支援 3D,並且不會捨棄 z 索引。
--Change first point in line string from -1 3 to -1 1 SELECT ST_AsText(ST_SetPoint('LINESTRING(-1 2,-1 3)', 0, 'POINT(-1 1)')); st_astext ----------------------- LINESTRING(-1 1,-1 3) ---Change last point in a line string (lets play with 3d linestring this time) SELECT ST_AsEWKT(ST_SetPoint(foo.geom, ST_NumPoints(foo.geom) - 1, ST_GeomFromEWKT('POINT(-1 1 3)'))) FROM (SELECT ST_GeomFromEWKT('LINESTRING(-1 2 3,-1 3 4, 5 6 7)') As geom) As foo; st_asewkt ----------------------- LINESTRING(-1 2 3,-1 3 4,-1 1 3) SELECT ST_AsText(ST_SetPoint(g, -3, p)) FROM ST_GEomFromText('LINESTRING(0 0, 1 1, 2 2, 3 3, 4 4)') AS g , ST_PointN(g,1) as p; st_astext ----------------------- LINESTRING(0 0,1 1,0 0,3 3,4 4)