Partilhar via


geo_angle()

Aplica-se a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

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

Sintaxe

geo_angle(,p1_longitude p1_latitude,p2_longitude,p2_latitude,p3_longitude p3_latitude,)

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Digitar Obrigatória Descrição
p1_longitude real ✔️ O valor da longitude em graus da primeira coordenada geoespacial. Um valor válido está no intervalo [-180, +180].
p1_latitude real ✔️ O valor da 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 da 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 da latitude em graus da segunda coordenada geoespacial. Um valor válido está no intervalo [-90, +90].

Devoluções

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 dado geodésico usado para medir a distância na Terra é uma esfera. As arestas 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 antípodas, a consulta produzirá um resultado nulo.
  • Se point2 e point3 forem antípodas, 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 null porque o 1º ponto é igual ao 2º ponto.

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

Saída

is_null
Verdadeiro