このトピックでは、ST_LineInterpolatePoints関数について説明します。 この関数は、LineStringオブジェクトの1つ以上の指定された位置にある点を補間し、その点を返します。
構文
geometry ST_LineInterpolatePoints(geometry aLinestring , float8 aFraction , boolean repeat);
geography ST_LineInterpolatePoints(geography aLinestring , float8 aFraction , boolean repeat);パラメーター
パラメーター | 説明 |
aLinestring | LineStringオブジェクト。 |
aFraction | 点が線に補間される基準となる分数。 このパラメーターの値は、0〜1の範囲内の浮動小数点数です。 |
repeat | ポイントの繰り返し補間を許可するかどうかを指定します。 デフォルト値:true |
説明
repeatパラメーターをTrueに設定すると、この関数は、線に沿った分数として表されるすべての位置の点を補間します。
結果がゼロまたは1点の場合、この関数は結果を点オブジェクトとして返します。 それ以外の場合、この関数は結果をMultiPointオブジェクトとして返します。
この関数は3Dオブジェクトをサポートし、z座標は削除しません。
この関数はM座標をサポートします。
地理座標系が使用される場合、点間の距離は、球面距離に基づいて計算されます。
例
特定のセグメント上の指定した位置にある点の座標を計算します。
SELECT ST_AsText(ST_LineInterpolatePoints('LINESTRING(0 0,0 5)', 0.20)); st_astext --------------------------------- MULTIPOINT(0 1,0 2,0 3,0 4,0 5) (1 row) -- gepgraphy SELECT ST_AsText(ST_LineInterpolatePoints('LINESTRING(0 0,0 5)'::geography, 0.20)); st_astext ------------------------------------------------------------------------------------------------------- MULTIPOINT((0 1.00002443285827),(0 2.00004274948544),(0 3.00004884128919),(0 4.00003661494431),(0 5))繰り返しパラメーターをFalseに設定して点を補間します。
SELECT ST_AsText(ST_LineInterpolatePoints('LINESTRING(0 0,0 5)', 0.20, false)); st_astext ------------ POINT(0 1) (1 row) SELECT ST_AsText(ST_LineInterpolatePoints('LINESTRING(0 0,0 5)'::geography, 0.20, false)); st_astext --------------------------- POINT(0 1.00002443285827) (1 row)