カテゴリ:

地理空間関数

ST_DISTANCE

2つの地理空間オブジェクト間の最小測地距離(メートル単位)を返します。

構文

ST_DISTANCE( <geography_expression_1> , <geography_expression_2> )

引数

地理式1

引数は GEOGRAPHY 型の式でなければなりません。

地理式2

引数は GEOGRAPHY 型の式でなければなりません。

戻り値

距離をメートルで表す REAL 型の値を返します。

使用上の注意

  • 1つ以上の入力ポイントが NULL の場合は NULL を返します。

これは、赤道に沿って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 |
+-----------------------------------------------------------+