このトピックでは、ST_LineInterpolatePoints関数について説明します。 この関数は、LineStringオブジェクトの1つ以上の指定された位置にある点を補間し、その点を返します。
構文
ジオメトリST_LineInterpolatePoints (ジオメトリaLinestring、float8 aFraction、ブール繰り返し);
geography ST_LineInterpolatePoints(geography aLinestring , float8 aFraction , boolean repeat);
パラメーター
パラメーター | 説明 |
aLinestring | LineStringオブジェクト。 |
aFraction | 点が線に補間される基準となる分数。 このパラメーターの値は、0〜1の範囲内の浮動小数点数です。 |
リピート | ポイントの繰り返し補間を許可するかどうかを指定します。 デフォルト値: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行) -- 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 ------------ ポイント (0 1) (1行) SELECT ST_AsText(ST_LineInterpolatePoints('LINESTRING(0 0,0 5)'::geography, 0.20, false)); st_astext --------------------------- POINT(0 1.00002443285827) (1行)