

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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

ST\$1DistanceSphere devuelve la distancia entre dos geometrías de puntos que están en una esfera. 

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

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

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

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

 *geom1*   
Un valor de punto en grados de tipo de datos `GEOMETRY` que está en una esfera. La primera coordenada del punto es el valor de la longitud. La segunda coordinada del punto es el valor de la latitud. En el caso de las geometrías 3DZ, 3DM o 4D, solo se utilizan las dos primeras coordenadas.

 *geom2*   
Un valor de punto en grados de tipo de datos `GEOMETRY` que está en una esfera. La primera coordenada del punto es el valor de la longitud. La segunda coordinada del punto es el valor de la latitud. En el caso de las geometrías 3DZ, 3DM o 4D, solo se utilizan las dos primeras coordenadas.

 *radius*   
El radio de una esfera de tipo de datos `DOUBLE PRECISION`. Si no se proporciona *radius*, la esfera por defecto es la Tierra y el radio se computa a partir de la representación del sistema geodésico mundial (WGS) 84 del elipsoide. 

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

`DOUBLE PRECISION` en las mismas unidades que el radio. Si no se proporciona ningún radio, la distancia se indica en metros.

Si *geom1* o *geom2* son null o empty, entonces se devuelve el valor null. 

Si no se proporciona ningún *radius*, el resultado en metros es la superficie de la Tierra. 

Si *radius* es un número negativo, se devuelve un error. 

Si *geom1* y *geom2* no tienen el mismo valor en el identificador de sistema de referencia espacial (SRID), se devuelve un error. 

Si *geom1* o *geom2* no son un punto, se devuelve un error. 

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

En el siguiente ejemplo de SQL se calcula la distancia en kilómetros entre dos puntos de la Tierra. 

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

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

El siguiente SQL de ejemplo computa la distancia en kilómetros entre las ubicaciones de tres aeropuertos en Alemania: Berlin Tegel (TXL), Munich International (MUC) y 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
```