Поделиться через


geo_angle()

Область применения: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Вычисляет по часовой стрелке угол в радианах между двумя линиями на Земле. Первая строка — [точка1, точка2], а вторая — [точка2, точка3].

Синтаксис

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

Дополнительные сведения о соглашениях синтаксиса.

Параметры

Имя (название) Type Обязательно Описание
p1_longitude real ✔️ Значение долготы в градусах первой геопространственной координаты. Допустимое значение находится в диапазоне [-180, +180].
p1_latitude real ✔️ Значение широты в градусах первой геопространственной координаты. Допустимое значение находится в диапазоне [-90, +90].
p2_longitude real ✔️ Значение долготы в градусах второй геопространственной координаты. Допустимое значение находится в диапазоне [-180, +180].
p2_latitude real ✔️ Значение широты в градусах второй геопространственной координаты. Допустимое значение находится в диапазоне [-90, +90].
p3_longitude real ✔️ Значение долготы в градусах второй геопространственной координаты. Допустимое значение находится в диапазоне [-180, +180].
p3_latitude real ✔️ Значение широты в градусах второй геопространственной координаты. Допустимое значение находится в диапазоне [-90, +90].

Возвраты

Угол в радианах в диапазоне [0, 2pi) между двумя линиями [p1, p2] и [p2, p3]. Угол измеряется CW от первой строки до второй линии.

Примечание.

  • Геопространственные координаты интерпретируются как представленные эталонной системой координат WGS-84 .
  • Геостатический datum , используемый для измерения расстояния на Земле является сферой. Границы линии — геодесик на сфере.
  • Если координаты недопустимы, запрос создаст результат NULL.
  • Если точка1 равна точке 2, запрос создаст результат NULL.
  • Если точка2 равна точке 3, запрос создаст результат NULL.
  • Если точка1 и точка2 являются антиподальными, запрос создаст результат NULL.
  • Если точка 2 и точка3 являются антиподальными, запрос создаст результат NULL.

Примеры

В следующем примере вычисляется угол в радианах.

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

Выходные данные

angle_in_radians
2.94493843406882

В следующем примере вычисляется угол в градусах.

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

Выходные данные

angle_in_degrees
168.732543198009

В следующем примере возвращается значение NULL, так как 1-ая точка равна 2-й точке.

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

Выходные данные

is_null
Истина