Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Переключение служб с помощью раскрывающегося списка версий . Дополнительные сведения о навигации.
Область применения: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel
Преобразует плоские ребра многоугольника или многополигона в геодезические путем добавления промежуточных точек.
Синтаксис
geo_polygon_densify(
допустимости многоугольников,,
Дополнительные сведения о соглашениях синтаксиса.
Параметры
| Имя (название) | Type | Обязательно | Описание |
|---|---|---|---|
| многоугольник | dynamic |
✔️ | Многоугольник или многополигон в формате GeoJSON. |
| tolerance | int, long или real | Определяет максимальное расстояние в метрах между исходным планарным краем и преобразованной геодесической граничной цепочкой. Поддерживаемые значения находятся в диапазоне [0.1, 10000]. Если не задано иное, по умолчанию используется значение 10. |
|
| preserve_crossing | bool |
Если true, сохраняет пересечение границ по сравнению с таймериданом. Если не задано, по умолчанию используется значение false. |
Определение многоугольника
dynamic({"type": "Polygon","координаты": [ LinearRingShell, LinearRingHole_1, ..., LinearRingHole_N ]})
dynamic({"type": "MultiPolygon","координаты": [[ LinearRingShell, LinearRingHole_1, ..., LinearRingHole_N ], ..., ..., [LinearRingShell, LinearRingHole_1, ..., LinearRingHole_M]})
-
LinearRingShellявляется обязательным и определен как упорядоченныйcounterclockwiseмассив координат [[lng_1,lat_1],...,[lng_i,lat_i],...,[lng_j,lat_j]],...,[lng_1,lat_1]]. Может быть только одна оболочка. -
LinearRingHoleнеобязательный и определяется как упорядоченныйclockwiseмассив координат [[lng_1,lat_1],...,[lng_i,lat_i],...,[lng_j,lat_j]],...,[lng_1,lat_1]]. Может быть любое количество внутренних колец и отверстий. -
LinearRingвершины должны отличаться по крайней мере с тремя координатами. Первая координата должна быть равна последней. Требуются по крайней мере четыре записи. - Координаты [долгота, широта] должны быть допустимыми. Долгота должна быть реальным числом в диапазоне [-180, +180], а широта должна быть реальным числом в диапазоне [-90, +90].
-
LinearRingShellзаключает не более половины сферы. LinearRing делит сферу на два региона. Будет выбрано меньшее из двух регионов. -
LinearRingДлина края должна быть меньше 180 градусов. Будет выбран самый короткий край между двумя вершинами.
Ограничения
- Максимальное количество точек в очерченном многоугольнике ограничено 10485760.
- Хранение многоугольников в динамическом формате имеет ограничения размера.
- Денсифицирование допустимого многоугольника может привести к недопустимости многоугольника. Алгоритм добавляет точки в неоднородном режиме, и, как это может привести к переплетке ребер друг с другом.
Мотивация
-
Формат GeoJSON определяет край между двумя точками как прямую декартовую линию при
geo_polygon_densify()использовании геодесикации. - Решение об использовании геодесесных или планарных ребер может зависеть от набора данных и особенно актуально в длинных краях.
Возвраты
Очерченный многоугольник в формате GeoJSON и динамическийтип данных. Если многоугольник или допустимость недопустимы, запрос создает результат NULL.
Примечание.
Геопространственные координаты интерпретируются как представленные эталонной системой координат WGS-84 .
Примеры
В следующем примере многоугольник манхэттенского центрального парка. Края являются короткими и расстояние между планарными краями и их геодесесными аналогами меньше расстояния, указанного в допустимости. Таким образом, результат остается неизменным.
print densified_polygon = tostring(geo_polygon_densify(dynamic({"type":"Polygon","coordinates":[[[-73.958244,40.800719],[-73.949146,40.79695],[-73.973093,40.764226],[-73.982062,40.768159],[-73.958244,40.800719]]]})))
Выходные данные
| densified_polygon |
|---|
| {"type":"Polygon","координаты":[[-73.9582444,40.800719],[-73.949146,40.79695],[-773.00973093,40.764226],[-73.982062,40.768159],[-73.958244,40.800719]]] } |
В следующем примере описаны два края многоугольника. Длина граничных краев составляет ~110 км
print densified_polygon = tostring(geo_polygon_densify(dynamic({"type":"Polygon","coordinates":[[[10,10],[11,10],[11,11],[10,11],[10,10]]]})))
Выходные данные
| densified_polygon |
|---|
| {"type":"Polygon","координаты":[[[10,10],[10.25,10],[10.5,10],[10.75,10],[11,10],[11,11],[10.75,11],[10.5,11],[10.25,11],[10,11],[10,10]]] |
В следующем примере возвращается пустой результат из-за недопустимого ввода координат.
print densified_polygon = geo_polygon_densify(dynamic({"type":"Polygon","coordinates":[[[10,900],[11,10],[11,11],[10,11],[10,10]]]}))
Выходные данные
| densified_polygon |
|---|
В следующем примере возвращается пустой результат из-за недопустимого входного значения допуска.
print densified_polygon = geo_polygon_densify(dynamic({"type":"Polygon","coordinates":[[[10,10],[11,10],[11,11],[10,11],[10,10]]]}), 0)
Выходные данные
| densified_polygon |
|---|