ST_AddPoint - Amazon Redshift

ST_AddPoint

ST_AddPoint は、入力ジオメトリと同じラインストリングジオメトリにポイントを追加して返します。インデックスが指定されている場合、ポイントはインデックスの位置に追加されます。インデックスが -1 または指定されていない場合、ポイントはラインストリングに付加されます。

このインデックスは 0 から始まります。結果の空間参照系識別子 (SRID) は、入力ジオメトリのものと同じです。

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

構文

ST_AddPoint(geom1, geom2)
ST_AddPoint(geom1, geom2, index)

引数

geom1

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

geom2

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

index

0 から始まるインデックスの位置を表すデータ型 INTEGER の値。

戻り型

GEOMETRY

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

geom2 が空のポイントの場合、geom1 のコピーが返されます。

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

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

index が範囲外の場合、エラーが返されます。インデックスの位置の有効な値は、-1 または 0 から ST_NumPoints(geom1) の間の値です。

次の SQL は、ラインストリングにポイントを追加して、閉じたラインストリングにします。

WITH tmp(g) AS (SELECT ST_GeomFromText('LINESTRING(0 0,10 0,10 10,5 5,0 5)',4326)) SELECT ST_AsEWKT(ST_AddPoint(g, ST_StartPoint(g))) FROM tmp;
st_asewkt ------------------------------------------------ SRID=4326;LINESTRING(0 0,10 0,10 10,5 5,0 5,0 0)

次の SQL は、ラインストリングの特定の位置にポイントを追加します。

WITH tmp(g) AS (SELECT ST_GeomFromText('LINESTRING(0 0,10 0,10 10,5 5,0 5)',4326)) SELECT ST_AsEWKT(ST_AddPoint(g, ST_SetSRID(ST_Point(5, 10), 4326), 3)) FROM tmp;
st_asewkt ------------------------------------------------ SRID=4326;LINESTRING(0 0,10 0,10 10,5 10,5 5,0 5)