- カテゴリ:
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 にする必要があります。 
戻り値¶
距離を表す FLOAT 値、または NULL を返します。
- GEOGRAPHY 入力値の場合、距離はメートル単位です。 
- GEOMETRY 入力値の場合、距離は、入力座標の定義に使用されたのと同じ単位で計算されます。 
- 1つ以上の入力ポイントが NULL の場合は NULL を返します。 
使用上の注意¶
- GEOMETRY オブジェクトの場合、2つの入力 GEOMETRY オブジェクトの SRIDs が異なると、関数はエラーを報告します。 
例¶
以下の例では、 ST_DISTANCE 関数を使用しています。
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 |
+---------------+--------------+
1つ以上の入力値が NULL の場合は、 ST_DISTANCE 関数の出力を表示します。
SELECT ST_DISTANCE(ST_MAKEPOINT(0, 0), ST_MAKEPOINT(NULL, NULL)) AS null_input;
+------------+
| NULL_INPUT |
|------------|
|       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 |
+-------------------+--------------------+
その他の例については、 GEOGRAPHY と GEOMETRY のデータ型を比較する例 をご参照ください。