

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de 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 retorna a distância entre duas geometrias de pontos encontradas em uma esfera. 

## Sintaxe
<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*   
Um valor de ponto em graus do tipo de dados `GEOMETRY` encontrados em uma esfera. A primeira coordenada do ponto é o valor da longitude. A segunda coordenada do ponto é o valor a latitude Para geometrias 3DZ, 3DM ou 4D, apenas as duas primeiras coordenadas são usadas.

 *geom2*   
Um valor de ponto em graus do tipo de dados `GEOMETRY` encontrados em uma esfera. A primeira coordenada do ponto é o valor da longitude. A segunda coordenada do ponto é o valor a latitude Para geometrias 3DZ, 3DM ou 4D, apenas as duas primeiras coordenadas são usadas.

 *radius*   
O raio de uma esfera de tipo de dados `DOUBLE PRECISION`. Se nenhum *radius* for fornecido, a esfera será padronizada como a Terra, e o raio será computado da representação do Sistema Geodésico Mundial (WGS) 84 do elipsoide. 

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

`DOUBLE PRECISION` nas mesmas unidades que o raio. Se nenhum raio for fornecido, a distância será em metros.

Nulo será retornado se *geom1* ou *geom2* for nulo ou vazio. 

Se nenhum *radius* for fornecido, o resultado será em metros ao longo da superfície da Terra. 

Um erro será retornado se *radius* for um número negativo. 

Um erro será retornado se *geom1* e *geom2* não tiverem o mesmo valor do identificador do sistema referência espacial (SRID -spatial reference system identifier). 

Um erro será retornado se *geom1* ou *geom2* não for um ponto. 

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

O exemplo SQL a seguir calcula a distância em quilômetros entre dois pontos na Terra. 

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

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

O seguinte SQL de exemplo calcula as distâncias em quilômetros entre três localizações de aeroportos na Alemanha: 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
```