ST_Distance - Amazon Redshift

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