すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:ST_Distance

最終更新日:Mar 28, 2026

ST_Distance — 2 つのジオメトリ値またはジオグラフィ値間の距離を返します。

構文

float ST_Distance(geometry g1, geometry g2);
float ST_Distance(geography gg1, geography gg2);
float ST_Distance(geography gg1, geography gg2, boolean useSpheroid);

パラメーター

パラメーター説明
g1geometry最初のジオメトリ オブジェクトです。
g2geometry2 番目のジオメトリ オブジェクトです。
gg1geography最初のジオグラフィ オブジェクトです。
gg2geography2 番目のジオグラフィ オブジェクトです。
useSpheroidboolean距離計算に楕円体を使用するかどうかを指定します。デフォルト値は true です。false を指定すると、より高速な球面計算が使用されます。

説明

geometry 型の場合、2 つのジオメトリ オブジェクト間の最小 2D ユークリッド距離を、その座標参照系(CRS)の単位で返します。

geography 型の場合、ジオグラフィ オブジェクト間の最小球面距離(メートル単位)を返します。useSpheroidfalse の場合、代わりにより高速な球面計算が使用されます。

この関数は、円弧文字列(circular strings)および曲線(curves)をサポートします。

ジオメトリと3D 距離の比較

以下の例では、ST_DistanceST_3DDistance の違いを示しています。3D ポイント (0,0,0) から (1,1,1) までの距離について、ST_Distance は 2D 平面上の距離を計算するのに対し、ST_3DDistance はすべての 3 つの次元を考慮します。

SELECT ST_Distance(g1, g2), ST_3DDistance(g1, g2)
FROM (
  SELECT 'POINT(0 0 0)'::geometry AS g1,
         'POINT(1 1 1)'::geometry AS g2
) AS test;

出力結果:

   st_distance   |  st_3ddistance
-----------------+------------------
 1.4142135623731 | 1.73205080756888
(1 行)