ST_Angle
ST_Angle devuelve el ángulo en radianes entre los puntos medidos en el sentido de las agujas del reloj de la siguiente manera:
Si hay tres puntos de entrada, entonces el ángulo devuelto P1-P2-P3 se mide como si el ángulo se obtuviera al rotar de P1 a P3 alrededor de P2 en el sentido de las agujas del reloj.
Si hay cuatro puntos de entrada, se devuelve el ángulo devuelto en el sentido de las agujas del reloj formado por las líneas dirigidas P1-P2 y P3-P4. Si la entrada es un caso degenerado (es decir, P1 es igual a P2 o P3 es igual a P4), entonces se devuelve el valor null.
El valor de retorno está en radianes y en el rango [0, 2π).
ST_Angle opera en proyecciones 2D de las geometrías de entrada.
Sintaxis
ST_Angle(geom1, geom2, geom3)
ST_Angle(geom1, geom2, geom3, geom4)
Argumentos
- geom1
-
Un valor de tipo de datos
GEOMETRY
o una expresión que toma el valor de un tipoGEOMETRY
. El subtipo debe serPOINT
. - geom2
-
Un valor de tipo de datos
GEOMETRY
o una expresión que toma el valor de un tipoGEOMETRY
. El subtipo debe serPOINT
. - geom3
-
Un valor de tipo de datos
GEOMETRY
o una expresión que toma el valor de un tipoGEOMETRY
. El subtipo debe serPOINT
. - geom4
-
Un valor de tipo de datos
GEOMETRY
o una expresión que toma el valor de un tipoGEOMETRY
. El subtipo debe serPOINT
.
Tipo de retorno
DOUBLE PRECISION
.
Si geom1 es igual a geom2 o geom2 es igual a geom3, se devuelve un valor nulo.
Si geom1, geom2, geom3 o geom4 es null, se devuelve un valor nulo.
Si alguna de las funciones geom1, geom2, geom3 o geom4 es el punto vacío, se devuelve un error.
Si geom1, geom2, geom3 y geom4 no tienen el mismo valor en el identificador de sistema de referencia espacial (SRID), se devuelve un error.
Ejemplos
El siguiente SQL devuelve el ángulo convertido en grados de tres puntos de entrada.
SELECT ST_Angle(ST_Point(1,1), ST_Point(0,0), ST_Point(1,0)) / Pi() * 180.0 AS angle;
angle
---------------
45
El siguiente SQL devuelve el ángulo convertido en grados de cuatro puntos de entrada.
SELECT ST_Angle(ST_Point(1,1), ST_Point(0,0), ST_Point(1,0), ST_Point(2,0)) / Pi() * 180.0 AS angle;
angle
---------------
225