- Catégories :
ST_DISTANCE¶
Renvoie la distance géodésique 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.