このトピックでは、ST_LineInterpolatePoint関数について説明します。 この関数は、LineStringオブジェクトの指定された位置にある点を補間し、その点を返します。
構文
ジオメトリST_LineInterpolatePoint (ジオメトリaLinestring、float8 aFraction);
geography ST_LineInterpolatePoint(geography aLinestring , float8 aFraction);
パラメーター
パラメーター | 説明 |
aLinestring | 指定するLineStringオブジェクト。 |
aFraction | 点が線に補間される基準となる分数。 このパラメーターの値は、0〜1の範囲内の浮動小数点数です。 |
説明
この関数は3Dオブジェクトをサポートし、z座標は削除しません。
この関数はm座標をサポートします。
地理座標系が使用される場合、点間の距離は、球面距離に基づいて計算される。
例
指定した線分の中心点の座標を取得します。
SELECT ST_AsText(ST_LineInterpolatePoint(geom、0.5)) から (SELECT 'LINESTRING(0 0,2 2)'::geometry as geom) テストとして; st_astext ------------ ポイント (1 1) (1行) SELECT ST_AsText(ST_LineInterpolatePoint(geog, 0.5)) FROM (SELECT 'LINESTRING(0 0,2 2)'::geogとしての地理) テストとして; ------------------------------------------ POINT(0.99969732796684 1.00015638159834)
ライン上のジオメトリオブジェクトに最も近い点を取得します。
SELECT ST_AsText(ST_LineInterpolatePoint(geom, ST_LineLocatePoint(geom, 'POINT(1)'::geometry))) FROM (SELECT 'LINESTING (0 0,0 2)'::geometry As geom) テストとして; st_astext ------------ ポイント (0 1) (1行) -地理 SELECT ST_AsText(ST_LineInterpolatePoint(geog, ST_LineLocatePoint(geog, 'POINT(1 1)'::geography))) FROM (SELECT 'LINESTING (0 0,0 2)'::geography As geog) テスト; --------------------------- POINT (0 1.00015229710421)