Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Переключение служб с помощью раскрывающегося списка версий . Дополнительные сведения о навигации.
Область применения: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel
Вычисляет многоугольник или многоугольник, содержащий все точки в пределах заданного радиуса входной линии или многострочного на Земле.
Синтаксис
geo_line_buffer(
Допустимое значение радиуса,,
Дополнительные сведения о соглашениях синтаксиса.
Параметры
| Имя (название) | Тип | Обязательно | Описание |
|---|---|---|---|
| lineString | dynamic |
✔️ | LineString или MultiLineString в формате GeoJSON. |
| радиус | real |
✔️ | Радиус буфера в метрах. Допустимое значение должно быть положительным. |
| толерантность | real |
Определяет допустимое значение в метрах, определяющее, сколько многоугольник может отклоняться от идеального радиуса. Если не задано, по умолчанию используется значение 10. Допустимость не должна превышать 0,0001% радиуса. Указание допустимости больше радиуса снижает допустимое значение до наибольшего возможного значения ниже радиуса. |
Возвраты
Многоугольник или MultiPolygon вокруг входного LineString или MultiLineString. Если координаты или радиус или допустимость недопустимы, запрос создает результат NULL.
Примечание.
- Геопространственные координаты интерпретируются как представленные эталонной системой координат WGS-84 .
- Геостатический datum , используемый для измерения расстояния на Земле является сферой.
- Если границы линии ввода являются прямыми декартовыми линиями, рассмотрите возможность использования geo_line_densify() для преобразования планарных ребер в геодесетики.
- Конечные капки линий круглые.
- Обе стороны линий буферичены.
Определение и ограничения LineString
dynamic({"type": "LineString","координаты": [[lng_1,lat_1], [lng_2,lat_2], ..., [lng_N,lat_N]]})
dynamic({"type": "MultiLineString","координаты": [[line_1, line_2, ..., line_N]})
- Массив координат LineString должен содержать не менее двух записей.
- Координаты [долгота, широта] должны быть допустимыми, где долгота является реальным числом в диапазоне [-180, +180] и широта является реальным числом в диапазоне [-90, +90].
- Длина края должна быть меньше 180 градусов. Будет выбран самый короткий край между двумя вершинами.
Примеры
В следующем примере вычисляется многоугольник вокруг линии с радиусом от 4 метров и до 0,1 счетчика.
let line = dynamic({"type":"LineString","coordinates":[[-80.66634997047466,24.894526340592122],[-80.67373241820246,24.890808090321286]]});
print buffer = geo_line_buffer(line, 4, 0.1)
| буфер |
|---|
| {"type": "Polygon", "координаты": [ ... ]} |
Следующий запрос вычисляет буфер вокруг каждой строки и объединяет результат
datatable(line:dynamic)
[
dynamic({"type":"LineString","coordinates":[[14.429214068940496,50.10043066548272],[14.431184174126173,50.10046525983731]]}),
dynamic({"type":"LineString","coordinates":[[14.43030222687753,50.100780677801936],[14.4303847111523,50.10020274910934]]})
]
| project buffer = geo_line_buffer(line, 2, 0.1)
| summarize polygons = make_list(buffer)
| project result = geo_union_polygons_array(polygons)
| результат |
|---|
| {"type": "Polygon", "координаты": [ ... ]} |
В следующем примере возвращается значение true из-за недопустимой строки.
print buffer = isnull(geo_line_buffer(dynamic({"type":"LineString"}), 5))
| буфер |
|---|
| Истина |
В следующем примере возвращается значение true из-за недопустимого радиуса.
print buffer = isnull(geo_line_buffer(dynamic({"type":"LineString","coordinates":[[0,0],[1,1]]}), 0))
| буфер |
|---|
| Истина |