Share via


geo_angle()

Calcula el ángulo de las agujas del reloj en radianes entre dos líneas en la Tierra. La primera línea es [point1, point2] y la segunda línea es [point2, point3].

Syntax

geo_angle(, p1_longitude, p1_latitude, p2_longitude, p2_latitude, p3_longitudep3_latitude)

Obtenga más información sobre las convenciones de sintaxis.

Parámetros

Nombre Tipo Requerido Descripción
p1_longitude real ✔️ Valor de longitud en grados de la primera coordenada geoespacial. Un valor válido está en el intervalo [-180, +180].
p1_latitude real ✔️ Valor de latitud en grados de la primera coordenada geoespacial. Un valor válido está en el intervalo [-90, +90].
p2_longitude real ✔️ Valor de longitud en grados de la segunda coordenada geoespacial. Un valor válido está en el intervalo [-180, +180].
p2_latitude real ✔️ Valor de latitud en grados de la segunda coordenada geoespacial. Un valor válido está en el intervalo [-90, +90].
p3_longitude real ✔️ Valor de longitud en grados de la segunda coordenada geoespacial. Un valor válido está en el intervalo [-180, +180].
p3_latitude real ✔️ Valor de latitud en grados de la segunda coordenada geoespacial. Un valor válido está en el intervalo [-90, +90].

Devoluciones

Ángulo en radianes en intervalo [0, 2pi) entre dos líneas [p1, p2] y [p2, p3]. El ángulo se mide en CW desde la primera línea hasta la segunda.

Nota

  • Las coordenadas geoespaciales se interpretan como representadas por el sistema de referencia de coordenadas WGS-84 .
  • La referencia geodética utilizada para medir la distancia en la Tierra es una esfera. Los bordes de línea son geodesics en la esfera.
  • Si las coordenadas no son válidas, la consulta generará un resultado nulo.
  • Si point1 es igual a point2, la consulta generará un resultado nulo.
  • Si point2 es igual a point3, la consulta generará un resultado nulo.
  • Si point1 y point2 son antipodal, la consulta generará un resultado nulo.
  • Si point2 y point3 son antipodal, la consulta generará un resultado nulo.

Ejemplos

En el ejemplo siguiente se calcula el ángulo en radianes.

print angle_in_radians = geo_angle(0, 10, 0,5, 3,-10)

Salida

angle_in_radians
2.94493843406882

En el ejemplo siguiente se calcula el ángulo en grados.

let angle_in_radians = geo_angle(0, 10, 0,5, 3,-10);
print angle_in_degrees = degrees(angle_in_radians)

Salida

angle_in_degrees
168.732543198009

En el ejemplo siguiente se devuelve null porque el punto 1 es igual al segundo punto.

print is_null = isnull(geo_angle(0, 10, 0, 10, 3, -10))

Salida

is_null
True