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
oGEOGRAPHY
, o una expresión que toma el valor de un tipoGEOMETRY
oGEOGRAPHY
. El tipo de datos de geo1 debe coincidir con el de geo2. - geo2
-
Un valor de tipo de datos
GEOMETRY
oGEOGRAPHY
, o una expresión que toma el valor de un tipoGEOMETRY
oGEOGRAPHY
. El tipo de datos de geo2 debe coincidir con el de geo1.
Tipo de retorno
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