- Catégories :
ST_DISTANCE¶
Renvoie la grande distance circulaire minimale entre deux objets GEOGRAPHY ou la distance euclidienne minimale entre deux objets GEOMETRY.
Syntaxe¶
ST_DISTANCE( <geography_or_geometry_expression_1> , <geography_or_geometry_expression_2> )
Arguments¶
- geography_or_geometry_expression_1
- L’argument doit être de type GEOGRAPHY ou GEOMETRY. 
- geography_or_geometry_expression_2
- L’argument doit être de type GEOGRAPHY ou GEOMETRY. 
Renvoie¶
Renvoie une valeur FLOAT, qui représente la distance ou une valeur NULL :
- Pour les valeurs d’entrée GEOGRAPHY, la distance est en mètres. 
- Pour les valeurs d’entrée GEOMETRY, la distance est calculée avec les mêmes unités que celles utilisées pour définir les coordonnées d’entrée. 
- Renvoie NULL si un ou plusieurs points d’entrée sont NULL. 
Notes sur l’utilisation¶
- Pour les objets GEOMETRY, la fonction signale une erreur si les deux objets GEOMETRY en entrée ont des SRIDs différents. 
Exemples¶
Les exemples suivants utilisent la fonction ST_DISTANCE.
Exemples GEOGRAPHY¶
Afficher 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 |
+---------------+--------------+
Afficher la sortie de la fonction ST_DISTANCE lorsqu’une ou plusieurs valeurs d’entrée sont NULL :
SELECT ST_DISTANCE(ST_MAKEPOINT(0, 0), ST_MAKEPOINT(NULL, NULL)) AS null_input;
+------------+
| NULL_INPUT |
|------------|
|       NULL |
+------------+
Exemples GEOMETRY¶
L’exemple suivant compare la distance calculée pour les objets d’entrée GEOGRAPHY et 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 |
+-------------------+--------------------+
Pour d’autres exemples, voir Exemples comparant les types de données GEOGRAPHY et GEOMETRY.