ST_Distance - Amazon Redshift

Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del 1 de noviembre de 2025. Si desea utilizar las UDF de Python, créelas antes de esa fecha. Las UDF de Python existentes seguirán funcionando con normalidad. Para obtener más información, consulte la publicación del blog.

ST_Distance

En el caso de las geometrías de entrada, ST_Distance devuelve la distancia euclidiana mínima entre las proyecciones 2D de los dos valores de geometría de entrada.

En el caso de las geometrías 3DM, 3DZ y 4D, ST_Distance devuelve la distancia euclidiana entre las proyecciones 2D de dos valores de geometría de entrada.

En el caso de las geografías de entrada, ST_Distance devuelve la distancia geodésica de los dos puntos 2D. La unidad de distancia se expresa en metros. En el caso de las geografías distintas de los puntos y los puntos vacíos, se devuelve un error.

Sintaxis

ST_Distance(geo1, geo2)

Argumentos

geo1

Un valor de tipo de datos GEOMETRY o GEOGRAPHY, o una expresión que toma el valor de un tipo GEOMETRY o GEOGRAPHY. El tipo de datos de geo1 debe coincidir con el de geo2.

geo2

Un valor de tipo de datos GEOMETRY o GEOGRAPHY, o una expresión que toma el valor de un tipo GEOMETRY o GEOGRAPHY. El tipo de datos de geo2 debe coincidir con el de geo1.

Tipo de devolución

DOUBLE PRECISION en las mismas unidades que las geometrías o las geografías de entrada de datos.

Si geo1 o geo2 es nulo o está vacío, se devuelve el valor nulo.

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

Si geo1 o geo2 es una colección geométrica, se devuelve un error.

Ejemplos

El siguiente SQL devuelve la distancia entre dos 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

El siguiente SQL devuelve la distancia (en metros) entre la Puerta de Brandeburgo y el edificio del Reichstag de Berlín mediante un tipo de datos GEOGRAPHY.

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