このトピックでは、ST_ShortestLine関数について説明します。 この関数は、2つのジオメトリオブジェクト間の最短距離を表す2D線を計算します。
構文
ジオメトリST_ShortestLine (ジオメトリg1、ジオメトリg2);
パラメーター
パラメーター | 説明 |
g1 | 指定する最初のジオメトリオブジェクト。 |
g2 | 指定する2番目のジオメトリオブジェクト。 |
説明
- この関数が、指定したジオメトリオブジェクト間の最短距離を表す複数の行を見つけた場合、この関数は見つかった最初の行のみを返します。
- 指定したジオメトリオブジェクトが1点のみで交差する場合、この関数は始点と終点の両方が交点である線を返します。
- 指定したジオメトリオブジェクトが複数の点で交差する場合、この関数は始点と終点の両方が交点の1つである線を返します。
- この関数によって返される行は、常に指定した最初のジオメトリオブジェクトで始まり、指定した2番目のジオメトリオブジェクトで終わります。
- 同じジオメトリオブジェクトの場合、この関数とST_Distance関数は常に同じ結果を返します。
例
デフォルトのパラメータ設定を使用して2Dラインを計算します。
SELECT ST_AsText(ST_ShortestLine('POINT(0 0)'::geometry,'LINESTRING(0 2,1 1)'::geometry));
st_astext
---------------------
LINESTRING(0 0,1 1)
(1行)