geo_line_densify()
Область применения: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Преобразует планарные линии или многострочные ребра в геодесексы путем добавления промежуточных точек.
Синтаксис
geo_line_densify(
допустимости lineString,
[ preserve_crossing ],
)
Дополнительные сведения о соглашениях синтаксиса.
Параметры
Имя (название) | Type | Обязательно | Описание |
---|---|---|---|
lineString | dynamic |
✔️ | LineString или MultiLineString в формате GeoJSON. |
tolerance | int, long или real | Определяет максимальное расстояние в метрах между исходным планарным краем и преобразованной геодесической граничной цепочкой. Поддерживаемые значения находятся в диапазоне [0.1, 10000]. Если не задано, по умолчанию используется значение 10 . |
|
preserve_crossing | bool |
Если true , сохраняет пересечение границ по сравнению с таймериданом. Если не задано, по умолчанию используется значение false . |
Возвраты
Динамическая строка в формате GeoJSON и динамическом типе данных. Если строка или допустимость недопустимая, запрос создаст результат NULL.
Примечание.
Геопространственные координаты интерпретируются как представленные эталонной системой координат WGS-84 .
Определение 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 градусов. Будет выбран самый короткий край между двумя вершинами.
Ограничения
- Максимальное количество точек в тонированной строке ограничено 10485760.
- Хранение строк в динамическом формате имеет ограничения размера.
Причины для использования
- Формат GeoJSON определяет край между двумя точками как прямую декартовую линию при
geo_line_densify()
использовании геодесикации. - Решение об использовании геодесесных или планарных ребер может зависеть от набора данных и особенно актуально в длинных краях.
Примеры
В следующем примере помещается дорога на манхэттенском острове. Край короткий, а расстояние между планарным краем и его геодесесным аналогом меньше расстояния, указанного в допустимости. Таким образом, результат остается неизменным.
print densified_line = tostring(geo_line_densify(dynamic({"type":"LineString","coordinates":[[-73.949247, 40.796860],[-73.973017, 40.764323]]})))
Выходные данные
densified_line |
---|
{"type":"LineString","координаты":[-73.949247, 40.796860], [-73.973017, 40.764323]]} |
В следующем примере показано, как уплотнить край около 130 км длины
print densified_line = tostring(geo_line_densify(dynamic({"type":"LineString","coordinates":[[50, 50], [51, 51]]})))
Выходные данные
densified_line |
---|
{"type":"LineString","координаты":[50,50],[50.125,50.125],[50.25,50.25],[50.375,50.375],[[50.375],[50.375],[50.375][50.5,50.5],[50.625,50.625],[50.75,50.75],[50.875,50,875],[51,51]]} |
В следующем примере возвращается пустой результат из-за недопустимого ввода координат.
print densified_line = geo_line_densify(dynamic({"type":"LineString","coordinates":[[300,1],[1,1]]}))
Выходные данные
densified_line |
---|
В следующем примере возвращается пустой результат из-за недопустимого входного значения допуска.
print densified_line = geo_line_densify(dynamic({"type":"LineString","coordinates":[[1,1],[2,2]]}), 0)
Выходные данные
densified_line |
---|