Compartilhar via


geo_angle()

Calcula o ângulo no sentido horário em radianos entre duas linhas na Terra. A primeira linha é [point1, point2] e a segunda linha é [ponto2, ponto3].

Syntax

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

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Tipo Obrigatório Descrição
p1_longitude real ✔️ O valor de longitude em graus da primeira coordenada geoespacial. Um valor válido está no intervalo [-180, +180].
p1_latitude real ✔️ O valor de latitude em graus da primeira coordenada geoespacial. Um valor válido está no intervalo [-90, +90].
p2_longitude real ✔️ O valor de longitude em graus da segunda coordenada geoespacial. Um valor válido está no intervalo [-180, +180].
p2_latitude real ✔️ O valor de latitude em graus da segunda coordenada geoespacial. Um valor válido está no intervalo [-90, +90].
p3_longitude real ✔️ O valor de longitude em graus da segunda coordenada geoespacial. Um valor válido está no intervalo [-180, +180].
p3_latitude real ✔️ O valor de latitude em graus da segunda coordenada geoespacial. Um valor válido está no intervalo [-90, +90].

Retornos

Um ângulo em radianos no intervalo [0, 2pi) entre duas linhas [p1, p2] e [p2, p3]. O ângulo é medido cw da primeira linha para a segunda linha.

Observação

  • As coordenadas geoespaciais são interpretadas como representadas pelo sistema de referência de coordenadas WGS-84 .
  • O datum geodético usado para medir a distância na Terra é uma esfera. As bordas de linha são geodésicas na esfera.
  • Se as coordenadas forem inválidas, a consulta produzirá um resultado nulo.
  • Se point1 for igual a point2, a consulta produzirá um resultado nulo.
  • Se point2 for igual a point3, a consulta produzirá um resultado nulo.
  • Se point1 e point2 forem antipodais, a consulta produzirá um resultado nulo.
  • Se point2 e point3 forem antipodais, a consulta produzirá um resultado nulo.

Exemplos

O exemplo a seguir calcula o ângulo em radianos.

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

Saída

angle_in_radians
2.94493843406882

O exemplo a seguir calcula o ângulo em graus.

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

Saída

angle_in_degrees
168.732543198009

O exemplo a seguir retorna nulo porque 1º ponto é igual a 2º ponto.

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

Saída

Is_null
True