geo_point_buffer()

Переключение служб с помощью раскрывающегося списка версий . Дополнительные сведения о навигации.
Область применения: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel

Вычисляет многоугольник, содержащий все точки в заданном радиусе точки на Земле.

Синтаксис

geo_point_buffer( , ,

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

Параметры

Имя (название) Тип Обязательно Описание
долгота real ✔️ Значение долготы геопространственной координаты в градусах. Допустимое значение — это реальное число и в диапазоне [-180, +180].
широта real ✔️ Значение широты географической координаты в градусах. Допустимое значение — это реальное число и в диапазоне [-90, +90].
радиус real ✔️ Радиус буфера в метрах. Допустимое значение должно быть положительным.
толерантность real Определяет допустимое значение в метрах, определяющее, сколько многоугольник может отклоняться от идеального радиуса. Если не задано, по умолчанию используется значение 10. Допустимость не должна превышать 0,0001% радиуса. Указание допустимости больше радиуса снижает допустимое значение до наибольшего возможного значения ниже радиуса.

Возвраты

Многоугольник вокруг входной точки. Если координаты или радиус или допустимость недопустимы, запрос создает результат NULL.

Примечание.

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

Примеры

В следующем примере вычисляется многоугольник вокруг координат [-115.1745008278, 36.1497251277] с радиусом 20 км.

print buffer = geo_point_buffer(-115.1745008278, 36.1497251277, 20000)
буфер
{"type": "Polygon", "координаты": [ ... ]}

Следующий запрос вычисляет буфер вокруг каждой точки и унифицирует результат

datatable(longitude:real, latitude:real, radius:real)
[
    real(-80.3212217992616), 25.268683367546604, 5000,
    real(-80.81717403605833), 24.82658441221962, 3000
]
| project buffer = geo_point_buffer(longitude, latitude, radius)
| summarize polygons = make_list(buffer)
| project result = geo_union_polygons_array(polygons)
результат
{"type": "MultiPolygon", "координаты": [ ... ]}

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

print result = isnull(geo_point_buffer(200, 1,0.1))
результат
Истина

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

print result = isnull(geo_point_buffer(10, 10, -1))
результат
Истина