このトピックでは、ST_Distance関数について説明します。 この関数は、ジオメトリオブジェクトの参照座標系における2つのジオメトリオブジェクト間の2Dユークリッド距離を計算します。 2つの地理オブジェクトを指定した場合、この関数は地理オブジェクト間の最小球面距離をメートル単位で返します。
構文
float ST_Distance (ジオメトリg1、ジオメトリg2);
フロートST_Distance(geography gg1 , geography gg2);
float ST_Distance(geography gg1、geography gg2、ブール値useSpheroid); パラメーター
| パラメーター | 説明 |
| g1 | 指定する最初のジオメトリオブジェクト。 |
| g2 | 指定する2番目のジオメトリオブジェクト。 |
| gg1 | 指定する最初のgeographyオブジェクト。 |
| gg2 | 指定する2番目のgeographyオブジェクト。 |
| usesSpheroid | 楕円体を使用するかどうかを指定します。 デフォルトはtrueです。このパラメーターをfalseに設定すると、速度を向上させるために特定の精度が適用されます。 |
説明
この関数は、円形の文字列と曲線をサポートします。
例
次の例は、ST_Distance関数とST_3DDistance関数の違いを示しています。
SELECT ST_Distance(g1,g2),ST_3DDistance(g1,g2) FROM(SELECT 'POINT(0 0 0)'::geometry as g1,
'POINT(1 1)'::geometry as g2) as test;
st_distance | st_3ddistance
----------------- + ------------------
1.4142135623731 | 1.73205080756888
(1行)