View a markdown version of this page

ST_Distance - Amazon Redshift

O Amazon Redshift deixará de oferecer suporte ao uso de UDFs em Python após 30 de junho de 2026. Começaremos a aplicar essa alteração em fases. Consulte mais informações sobre os detalhes do fim da vida útil do Python e as opções de migração na publicação do blog publicada em 30 de junho de 2025.

ST_Distance

Para geometrias de entrada, ST_Distance retorna a distância euclidiana mínima entre as projeções 2D dos dois valores de geometria de entrada.

Para geometrias 3DM, 3DZ, 4D, ST_Distance retorna a distância euclidiana entre as projeções 2D de dois valores de geometria de entrada.

Para geografias de entrada, ST_Distance retorna a distância geodésica dos dois pontos 2D. A unidade de distância é metro. Para regiões geográficas diferentes de pontos e pontos vazios, é retornado um erro.

Sintaxe

ST_Distance(geo1, geo2)

Argumentos

geo1

Um valor de tipo de dados GEOMETRY ou GEOGRAPHY ou uma expressão que é avaliada como tipo GEOMETRY ou GEOGRAPHY. O tipo de dados de geo1 deve ser o mesmo que de geo2.

geo2

Um valor de tipo de dados GEOMETRY ou GEOGRAPHY ou uma expressão que é avaliada como tipo GEOMETRY ou GEOGRAPHY. O tipo de dados de geo2 deve ser o mesmo que de geo1.

Tipo de retorno

DOUBLE PRECISION nas mesmas unidades que as geometrias ou geografias de entrada.

Será retornado null, se geo1 ou geo2 forem nulos ou vazios.

Será retornado um erro se geo1 e geo2 não tiverem o mesmo valor do identificador do sistema de referência espacial (SRID).

Será retornado um erro se geo1 ou geo2 forem uma coleção de geometrias.

Exemplos

O SQL a seguir retorna a distância entre dois polígonos.

SELECT ST_Distance(ST_GeomFromText('POLYGON((0 2,1 1,0 -1,0 2))'), ST_GeomFromText('POLYGON((-1 -3,-2 -1,0 -3,-1 -3))'));
st_distance ----------- 1.4142135623731

O SQL a seguir retorna a distância (em metros) entre o Portão de Brandemburgo e o prédio do Reichstag em Berlim usando o tipo de dado GEOGRAPHY.

SELECT ST_Distance(ST_GeogFromText('POINT(13.37761826722198 52.516411678282445)'), ST_GeogFromText('POINT(13.377950831464005 52.51705102546893)'));
st_distance ------------------ 74.64129172609631