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)