ST_Distance
入力がジオメトリの場合、ST_Distance は 2 つのジオメトリの 2D 射影による値の間で、最短のユークリッド距離を返します。
ジオメトリが 3DM、3DZ、4D の場合、ST_Distance は、2 つの入力ジオメトリ値の 2D 間のユークリッド距離を返します。
入力ジオグラフィの場合、ST_Distance は 2 つの 2D ポイントの測地的距離を返します。距離の単位はメートルです。ポイントと空ポイント以外のジオグラフィの場合、エラーが返されます。
構文
ST_Distance(geo1, geo2)
引数
- geo1
-
データ型
GEOMETRY
またはGEOGRAPHY
の値、またはGEOMETRY
もしくはGEOGRAPHY
型として評価される式です。geo1 のデータ型は geo2 と同じである必要があります。 - geo2
-
データ型
GEOMETRY
またはGEOGRAPHY
の値、またはGEOMETRY
もしくはGEOGRAPHY
型として評価される式です。geo2 のデータ型は geo1 と同じである必要があります。
戻り型
入力のジオメトリもしくはジオグラフィと同じ単位の DOUBLE PRECISION
です。
geo1 または geo2 が null または空の場合、null が返されます。
geo1 および geo2 の空間リファレンスシステム識別子 (SRID) が同じ値でない場合、エラーが返されます。
geo1 または geo2 がジオメトリコレクションである場合、エラーが返されます。
例
次の SQL は、2 つのポリゴン間の距離を返します。
SELECT ST_Distance(ST_GeomFromText('POLYGON((0 2,1 1,0 -1,0 2))'), ST_GeomFromText('POLYGON((-1 -3,-2 -1,0 -3,-1 -3))'));
st_distance
-----------
1.4142135623731
次の SQL は、GEOGRAPHY データ型を使用して、ベルリンのブランデンブルク門と国会議事堂の間の距離 (メートル単位) を返します。
SELECT ST_Distance(ST_GeogFromText('POINT(13.37761826722198 52.516411678282445)'), ST_GeogFromText('POINT(13.377950831464005 52.51705102546893)'));
st_distance
------------------
74.64129172609631