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


geo_s2cell_neighbors()

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

Вычисляет соседи ячейки S2.

Дополнительные сведения об иерархии ячеек S2.

Синтаксис

geo_s2cell_neighbors(s2cell)

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

Параметры

Имя (название) Type Обязательно Описание
s2cell string ✔️ Значение маркера ячейки S2 по мере вычисления geo_point_to_s2cell(). Максимальная длина строки маркера ячейки S2 составляет 16 символов.

Возвраты

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

Примечание.

Края ячейки S2 — это сферические геодесикты.

Примеры

В следующем примере вычисляется соседи ячейки S2.

print neighbors = geo_s2cell_neighbors('89c259')

Выходные данные

Соседей
["89c25d","89c2f9","89c251","89c257","89c25f","89c25b","89c2f7","89c2f5"]

В следующем примере вычисляется массив входной ячейки S2 со своими соседями.

let s2cell = '89c259';
print cells = array_concat(pack_array(s2cell), geo_s2cell_neighbors(s2cell))

Выходные данные

Клетки
["89c259","89c25d","89c2f9","89c251","89c257","89c25f","89c25b","89c2f7","89c2f5"]

В следующем примере вычисляется геометрическая коллекция ячеек S2 GeoJSON.

let s2cell = '89c259';
print cells = array_concat(pack_array(s2cell), geo_s2cell_neighbors(s2cell))
| mv-expand cells to typeof(string)
| project polygons = geo_s2cell_to_polygon(cells)
| summarize arr = make_list(polygons)
| project geojson = bag_pack("type", "Feature","geometry", bag_pack("type", "GeometryCollection", "geometries", arr), "properties", bag_pack("name", "polygons"))

Выходные данные

geojson
{"type": "Feature","geometry": {"type": "GeometryCollection","geometries": [
{"type": "Polygon", "координаты": [[[ -74.030012249838478, 40.801268439439],[ -74.030012249838478, 40.722262918358],[ -73.93598211437421, 40.70880489804564],[ -73.935982114337421, 40.7879134506841],[ -74.030012249838478, 40.801268439439]]]
{"type": "Polygon","координаты": [[[ -73.93598211437421, 40.70880489804564],[ -73.93598211437421, 40.62973643321796],[ -73.84190634076248, 40.61630807914915][ -73.84190634076248, 40.6954464756284],[ -73.93598211437421, 40.7088048989804564]]},
{"type": "Polygon", "координаты": [[[ -74.1239959854733, 40.893471289549765],[ -74.123995985985473, 40.814531536204242],[ -74.030012249838478, 40.801268439439],[ -74.030012249838478, 40.880202851376716],[ -74.1239959854733, 40.893471289549765]]},
{"type": "Polygon", "координаты": [[[ -74.1239959854733, 40.7354839993387],[ -74.123995985985473, 40.656328734184143],[ -74.030012249838478, 40.643076628676461][ -74.030012249838478, 40.7222262918358],[ -74.1239959859854733, 40.7354839993387]]]
{"type": "Polygon", "координаты": [[[ -74.1239959854733, 40.814531536204242],[ -74.123995985985473, 40.7354839993387],[ -74.030012249838478, 40.7222262918358],[ -74.030012249838478, 40.801268439439],[ -74.1239959854733, 40.81453153636204242]]]
{"type": "Polygon", "координаты": [[[ -73.93598211437421, 40.787917134506841],[ -73.93598211437421, 40.708880489804564],[ -73.84190634076248, 40.6954464556284][ -73.841906340776248, 40.77477568182071],[ -73.93598211437421, 40.787913506841]]]},
{"type": "Polygon", "координаты": [[[ -74.030012249838478, 40.7222262918358],[ -74.030012249838478, 40.643076628676461],[ -73.93598211437421, 40.62973643321796],[ -73.935982114337421, 40.708880489804564],[ -74.030012249838478, 40.7222262918358]]]
{"type": "Polygon", "координаты": [[[ -74.030012249838478, 40.8802851376716],[ -74.030012249838478, 40.801268439439],[ -73.93598211437421, 40.7879134506841],[ -73.935982114337421, 40.86684616345771],[ -74.030012249838478, 40.88020285137671]]]},
{"type": "Polygon", "координаты": [[[ -73.93598211437421, 40.86684616345771],[ -73.93598211437421, 40.787917134506841],[ -73.84190634076248, 40.77477568182071][ -73.84190634076248, 40.853401155678846],[ -73.93598211437421, 40.866846163445771]]]}},
"properties": {"name": "polygons"}}

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

let s2cell = '89c259';
print cells = array_concat(pack_array(s2cell), geo_s2cell_neighbors(s2cell))
| mv-expand cells to typeof(string)
| project polygons = geo_s2cell_to_polygon(cells)
| summarize arr = make_list(polygons)
| project polygon = geo_union_polygons_array(arr)

Выходные данные

polygon
{"type": "Polygon","coordinates": [[[-73.841906340776248,40.695446474556284],[-73.841906340776248,40.774477568182071],[-73.841906340776248,40.853401155678846],[-73.935982114337421,40.866846163445771],[-74.030012249838478,40.880202851376716],[-74.1239959854733,40.893471289549758],[-74.1239959854733,40.814531536204242],[-74.1239959854733,40.735483949993387],[-74.1239959854733,40.656328734184143],[-74.030012249838478,40.643076628676461],[- 73.935982114337421,40.629736433321796],[-73.841906340776248,40.616308079144915],[-73.841906340776248,40.695446474556284]]]}

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

print invalid = isnull(geo_s2cell_neighbors('a'))

Выходные данные

недопустимо
1