

 Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il [post del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

ST\$1 DistanceSphere restituisce la distanza tra due geometrie di punti che si trovano su una sfera. 

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

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

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

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

 *geom1*   
Un valore puntuale in gradi di tipo di dati `GEOMETRY` disposti su una sfera. La prima coordinata del punto è il valore della longitudine. La seconda coordinata del punto è il valore della latitudine. Per le geometrie 3DZ, 3DM o 4D, vengono utilizzate solo le prime due coordinate.

 *geom2*   
Un valore puntuale in gradi di tipo di dati `GEOMETRY` disposti su una sfera. La prima coordinata del punto è il valore della longitudine. La seconda coordinata del punto è il valore della latitudine. Per le geometrie 3DZ, 3DM o 4D, vengono utilizzate solo le prime due coordinate.

 *raggio*   
Il raggio di una sfera di tipo di dato `DOUBLE PRECISION`. Se non è indicato un *raggio*, la sfera considerata per impostazione predefinita è la Terra e il raggio è calcolato in base alla rappresentazione World Geodetic System (WGS) 84 dell'ellissoide. 

## Tipo restituito
<a name="ST_DistanceSphere-function-return"></a>

`DOUBLE PRECISION` nelle stesse unità del raggio. Se non viene fornito alcun raggio, la distanza è in metri.

Se *geom1* o *geom2* sono nulli, allora viene restituito il valore nullo. 

Se non viene indicato un *raggio*, allora il risultato è in metri misurati sulla superficie della Terra. 

Se il *raggio* è un numero negativo, viene restituito un errore. 

Se *geom1* e *geom2* non presentano lo stesso valore di identificatore del sistema di riferimento spaziale (SRID), allora viene restituito il valore nullo. 

Se *geom1* o *geom2* non sono dei punti, allora viene restituito un errore. 

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

La seguente istruzione SQL di esempio calcola la distanza in chilometri tra due punti sulla Terra. 

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

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

Il seguente comando SQL di esempio calcola le distanze in chilometri tra tre località aeroportuali in Germania: Berlin Tegel (TXL), Munich International (MUC) e 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
```