ST_LineInterpolatePoint
ST_LineInterpolatePoint は、ラインの開始点からの分数距離にあるラインに沿ったポイントを返します。
ポイントの等価性を判断するために、ST_LineInterpolatePoint は、入力ジオメトリの 2D 射影を処理します。入力ジオメトリが空の場合、入力のコピーが同じディメンションで返されます。3DZ、3DM、4D ジオメトリの場合、z
または m
座標は、ポイントが置かれているセグメントの z
または m
座標の平均になります。
構文
ST_LineInterpolatePoint(geom, fraction)
引数
- geom
-
データ型
GEOMETRY
の値またはGEOMETRY
型と評価される式の値。サブタイプはLINESTRING
です。 - 分数
-
ラインのライン文字列に沿った点の位置を表すデータ型
DOUBLE PRECISION
の値。値は、0~1 の範囲の小数部です。
戻り型
GEOMETRY
サブタイプ の POINT
。
geom または fraction が null の場合、null が返されます。
geom が空の場合、空のポイントが返されます。
返されたジオメトリの空間リファレンスシステム識別子 (SRID) 値が、入力ジオメトリの SRID 値です。
fraction が範囲外の場合、エラーが返されます。
geom が LINESTRING でない場合、エラーが返されます。
例
次の SQL は、ライン文字列に沿ってポイントを返します。
SELECT ST_AsEWKT(ST_LineInterpolatePoint(ST_GeomFromText('LINESTRING(0 0, 5 5, 7 7, 10 10)'), 0.50));
st_asewkt
-----------
POINT(5 5)
次の SQL は、ライン文字列に沿って 90% のポイントを返します。
SELECT ST_AsEWKT(ST_LineInterpolatePoint(ST_GeomFromText('LINESTRING(0 0, 5 5, 7 7, 10 10)'), 0.90));
st_asewkt
-----------
POINT(9 9)