

 Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# ST\$1 DistanceSphere
<a name="ST_DistanceSphere-function"></a>

ST\$1 DistanceSphere renvoie la distance entre deux géométries ponctuelles situées sur une sphère. 

## Syntaxe
<a name="ST_DistanceSphere-function-syntax"></a>

```
ST_DistanceSphere(geom1, geom2)
```

```
ST_DistanceSphere(geom1, geom2, radius)
```

## Arguments
<a name="ST_DistanceSphere-function-arguments"></a>

 *geom1*   
Valeur de point en degrés d’un type de données `GEOMETRY` se trouvant sur une sphère. La première coordonnée du point est la valeur de la longitude. La deuxième coordonnée du point est la valeur de la latitude. Pour les géométries 3DZ, 3DM ou 4D, seules les deux premières coordonnées sont utilisées.

 *geom2*   
Valeur de point en degrés d’un type de données `GEOMETRY` se trouvant sur une sphère. La première coordonnée du point est la valeur de la longitude. La deuxième coordonnée du point est la valeur de la latitude. Pour les géométries 3DZ, 3DM ou 4D, seules les deux premières coordonnées sont utilisées.

 *rayon*   
Rayon d’une sphère du type de données `DOUBLE PRECISION`. Si aucun *rayon* n’est fourni, la sphère utilisée par défaut est la Terre et le rayon est calculé à partir de la représentation World Geodetic System (WGS) 84 de l’ellipsoïde. 

## Type de retour
<a name="ST_DistanceSphere-function-return"></a>

`DOUBLE PRECISION` dans les mêmes unités que le rayon. Si aucun rayon n’est indiqué, la distance est exprimée en mètres.

Si *geom1* ou *geom2* est null ou vide, null est renvoyé. 

Si aucun *rayon* n’est fourni, le résultat est en mètres le long de la surface de la Terre. 

Si le *rayon* est un nombre négatif, une erreur est renvoyée. 

Si *geom1* et *geom2* n’ont pas la même valeur pour l’identifiant de système de référence spatiale (SRID), une erreur est renvoyée. 

Si *geom1* ou *geom2* n’est pas un point, une erreur est renvoyée. 

## Exemples
<a name="ST_DistanceSphere-function-examples"></a>

L’exemple SQL suivant calcule la distance en kilomètres entre deux points sur Terre. 

```
SELECT ROUND(ST_DistanceSphere(ST_Point(-122, 47), ST_Point(-122.1, 47.1))/ 1000, 0);
```

```
  round
-----------
 13
```

L’exemple de SQL suivant calcule les distances en kilomètres entre trois sites d’aéroport en Allemagne : Berlin Tegel (TXL), Munich International (MUC) et Frankfurt International (FRA). 

```
WITH airports_raw(code,lon,lat) AS (
(SELECT 'MUC', 11.786111, 48.353889) UNION
(SELECT 'FRA', 8.570556, 50.033333) UNION
(SELECT 'TXL', 13.287778, 52.559722)),
airports1(code,location) AS (SELECT code, ST_Point(lon, lat) FROM airports_raw),
airports2(code,location) AS (SELECT * from airports1)
SELECT (airports1.code || ' <-> ' || airports2.code) AS airports,
round(ST_DistanceSphere(airports1.location, airports2.location) / 1000, 0) AS distance_in_km
FROM airports1, airports2 WHERE airports1.code < airports2.code ORDER BY 1;
```

```
  airports   | distance_in_km 
-------------+----------------
 FRA <-> MUC |            299
 FRA <-> TXL |            432
 MUC <-> TXL |            480
```