- カテゴリ:
ST_DISTANCE¶
2つの GEOGRAPHY オブジェクト間の最小測地線距離、または2つの GEOMETRY オブジェクト間の最小ユークリッド距離を返します。
構文¶
ST_DISTANCE( <geography_or_geometry_expression_1> , <geography_or_geometry_expression_2> )
引数¶
geography_or_geometry_expression_1
引数の型は GEOGRAPHY または GEOMETRY にする必要があります。
geography_or_geometry_expression_2
引数の型は GEOGRAPHY または GEOMETRY にする必要があります。
戻り値¶
距離を表す REAL 値を返します。
GEOGRAPHY 入力値の場合、距離はメートル単位です。
GEOMETRY 入力値の場合、距離は、入力座標の定義に使用されたのと同じ単位で計算されます。
使用上の注意¶
1つ以上の入力ポイントが NULL の場合は NULL を返します。
GEOMETRY オブジェクトの場合、2つの入力 GEOMETRY オブジェクトの SRIDs が異なると、関数はエラーを報告します。
例¶
GEOGRAPHY 例¶
これは、赤道に沿って1°離れた2つのポイント間の距離をメートル単位で示しています(約111キロメートルまたは69マイル)。
WITH d AS ( ST_DISTANCE(ST_MAKEPOINT(0, 0), ST_MAKEPOINT(1, 0)) ) SELECT d / 1000 AS kilometers, d / 1609 AS miles; +---------------+--------------+ | KILOMETERS | MILES | |---------------+--------------| | 111.195101177 | 69.108204585 | +---------------+--------------+
これは、 NULL 値での ST_DISTANCE 関数の使用を示しています。
SELECT ST_DISTANCE(ST_MAKEPOINT(0, 0), ST_MAKEPOINT(NULL, NULL)); +-----------------------------------------------------------+ | ST_DISTANCE(ST_MAKEPOINT(0, 0), ST_MAKEPOINT(NULL, NULL)) | |-----------------------------------------------------------| | NULL | +-----------------------------------------------------------+
GEOMETRY 例¶
次の例では、 GEOGRAPHY と GEOMETRY の入力オブジェクトに対して計算された距離を比較します。
SELECT ST_DISTANCE(TO_GEOMETRY('POINT(0 0)'), TO_GEOMETRY('POINT(1 1)')) AS geometry_distance, ST_DISTANCE(TO_GEOGRAPHY('POINT(0 0)'), TO_GEOGRAPHY('POINT(1 1)')) AS geography_distance;+-------------------+--------------------+ | GEOMETRY_DISTANCE | GEOGRAPHY_DISTANCE | |-------------------+--------------------| | 1.414213562 | 157249.628092508 | +-------------------+--------------------+