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


geo_point_buffer()

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

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

Синтаксис

geo_point_buffer(Погрешность радиуса широты, долготы, , )

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

Параметры

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

Возвраты

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

Примечание.

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

Примеры

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

print buffer = geo_point_buffer(-115.1745008278, 36.1497251277, 20000)
buffer
{"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)
result
{"type": "MultiPolygon", "координаты": [ ... ]}

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

print result = isnull(geo_point_buffer(200, 1,0.1))
result
Истина

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

print result = isnull(geo_point_buffer(10, 10, -1))
result
Истина