Catégories :

Fonctions géospatiales

ST_DISTANCE

Returns the minimum geodesic distance between two GEOGRAPHY or the minimum Euclidean distance between two GEOMETRY objects.

Syntaxe

ST_DISTANCE( <geography_expression_1> , <geography_expression_2> )

Arguments

geography_expression_1

L’argument doit être une expression de type GEOGRAPHY.

geography_expression_2

L’argument doit être une expression de type GEOGRAPHY.

Renvoie

Renvoie une valeur de type REAL qui représente la distance en mètres.

Notes sur l’utilisation

  • Renvoie NULL si un ou plusieurs points d’entrée sont NULL.

  • For GEOMETRY objects, the function reports an error if the two input GEOMETRY objects have different SRIDs.

Exemples

GEOGRAPHY Examples

Cela montre la distance en mètres entre deux points distants de 1 degré le long de l’équateur (environ 111 kilomètres ou 69 miles).

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 |
+---------------+--------------+

Cela montre l’utilisation de la fonction ST_DISTANCE avec des valeurs NULL :

SELECT ST_DISTANCE(ST_MAKEPOINT(0, 0), ST_MAKEPOINT(NULL, NULL));
+-----------------------------------------------------------+
| ST_DISTANCE(ST_MAKEPOINT(0, 0), ST_MAKEPOINT(NULL, NULL)) |
|-----------------------------------------------------------|
|                                                      NULL |
+-----------------------------------------------------------+

GEOMETRY Examples

The following example compares the distance calculated for GEOGRAPHY and GEOMETRY input objects.

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 |
+-------------------+--------------------+
Revenir au début