ST_SetPoint - Amazon Redshift

ST_SetPoint

ST_SetPoint は、インデックスで指定された入力ライン文字列の位置に関して更新された座標を持つライン文字列を返します。新しい座標は、入力ポイントの座標です。

結果のジオメトリのディメンションは、geom1 値 のものと同じです。geom1geom2 でディメンションが異なる場合、geom2geom1 のディメンションに射影されます。

構文

ST_SetPoint(geom1, index, geom2)

引数

geom1

データ型 GEOMETRY の値または GEOMETRY 型と評価される式の値。サブタイプは LINESTRING である必要があります。

index

インデックスの位置を表すデータ型 INTEGER の値。0 はライン文字列の左からの最初のポイントを指し、1 は 2 番目のポイントを指します。インデックスには負の値を指定できます。-1 はライン文字列の右から最初のポイントを指し、-2 はライン文字列の右から 2 番目のポイントを指します。

geom2

データ型 GEOMETRY の値または GEOMETRY 型と評価される式の値。サブタイプは POINT である必要があります。

戻り型

GEOMETRY

geom2 が空のポイントである場合、geom1 が返されます。

geom1geom2、または index が null の場合、null が返されます。

geom1 が linestring でない場合、エラーが返されます。

インデックスが有効なインデックス範囲内にない場合、エラーが返されます。

geom2 が point でない場合、エラーが返されます。

geom1 および geom2 の空間リファレンスシステム識別子 (SRID) が同じ値でない場合、エラーが返されます。

次の SQL は、入力ライン文字列の 2 番目のポイントを指定されたポイントに設定する新しいライン文字列を返します。

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 例では、新しいライン文字列を返します。ここでは、指定したポイントを持つライン文字列の右から 3 番目のポイント (インデックスは負の値) を設定します。

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)