名前

ST_SetPoint — ラインストリングのN番目を与えられたポイントに置き換えます.インデクスは0はじまりです.

概要

geometry ST_SetPoint(geometry linestring, integer zerobasedposition, geometry point);

説明

ラインストリングのN番目を与えられたポイントに置き換えます.インデクスは0はじまりです. これは,バーテックがひとつ動いた時に接続のリレーションシップを維持しようとする場合のトリガに特に便利です.

初出バージョン: 1.1.0

この関数は三次元をサポートします.Zインデクスを削除しません.

--ラインストリングの最初のポイントを-1 3から-1 1に入れ替え
SELECT ST_AsText(ST_SetPoint('LINESTRING(-1 2,-1 3)', 0, 'POINT(-1 1)'));
	   st_astext
-----------------------
 LINESTRING(-1 1,-1 3)

---ラインストリングの最終のポイントを変更(ここでは三次元のラインストリングで楽しみます)
SELECT ST_AsEWKT(ST_SetPoint(foo.the_geom, ST_NumPoints(foo.the_geom) - 1, ST_GeomFromEWKT('POINT(-1 1 3)')))
FROM (SELECT ST_GeomFromEWKT('LINESTRING(-1 2 3,-1 3 4, 5 6 7)') As the_geom) As foo;
	   st_asewkt
-----------------------
LINESTRING(-1 2 3,-1 3 4,-1 1 3)
			

関連情報

ST_AddPoint,ST_NPoints, ST_NumPoints, ST_PointN, ST_RemovePoint