geo_s2cell_neighbors()

Oblicza sąsiadów komórek S2.

Składnia

geo_s2cell_neighbors(s2cell)

Dowiedz się więcej o konwencjach składniowych.

Parametry

Nazwa Typ Wymagane Opis
s2cell string ✔️ Wartość tokenu komórki S2 obliczona przez geo_point_to_s2cell(). Maksymalna długość ciągu tokenu komórki S2 wynosi 16 znaków.

Zwraca

Tablica sąsiadów komórek S2. Jeśli komórka S2 jest nieprawidłowa, zapytanie generuje wynik null.

Uwaga

Krawędzie komórek S2 to kuliste geodesy.

Przykłady

Poniższy przykład oblicza sąsiadów komórek S2.

print neighbors = geo_s2cell_neighbors('89c259')

Dane wyjściowe

Sąsiadów
["89c25d","89c2f9","89c251","89c257","89c25f","89c25b","89c2f7","89c2f5"]

Poniższy przykład oblicza tablicę wejściowej komórki S2 ze swoimi sąsiadami.

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

Dane wyjściowe

Komórek
["89c259","89c25d","89c2f9","89c251","89c257","89c25f","89c25b","89c2f7","89c2f5"]

Poniższy przykład oblicza wielokąty komórek S2 kolekcji geometrii 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"))

Dane wyjściowe

geojson
{"type": "Feature","geometry": {"type": "GeometryCollection","geometrie": [
{"type": "Polygon","współrzędne": [[[ -74.030012249838478, 40.801268439439],[ -74.030012249838478, 40.722262918358],[ -73.9359821143741, 40.70880489804564],[ -73.93598211437421, 40.787917134506841],[ -74.030012249838478, 40.801268439439]]]},
{"type": "Polygon","współrzędne": [[[ -73.93598211437421, 40.708880489804564],[ -73.9359821437421, 40.62973643321796],[ -73.841906340776248, 40.616308079144915],[ -73.841906340776248, 40.695446474556284],[ -73.93598211437421, 40.708880489804564]]]},
{"type": "Polygon","współrzędne": [[[ -74.123995954733, 40.893471289549765],[ -74.123995954733, 40.814531536204242],[ -74.030012249838478, 40.801268439439],[ -74.030012249838478, 40.880202851376716],[ -74.1239959854733, 40.893471289549765]]]},
{"type": "Polygon","współrzędne": [[[ -74.123995954733, 40.7354839933387],[ -74.1239959854733, 40.656328734184143],[ -74.030012249838478, 40.6430762867646461],[ -74.030012249838478, 40.722262918358],[ -74.1239959854733, 40.735483949933387]]]},
{"type": "Polygon","współrzędne": [[[ -74.123995954733, 40.8145315362242],[ -74.1239959854733, 40.73548394993387],[ -74.030012249838478, 40.722262918358],[ -74.030012249838478, 40.801268439439],[ -74.1239959854733, 40.8145315362242]},
{"type": "Polygon","współrzędne": [[[ -73.93598211437421, 40.787917134506841],[ -73.93598211437421, 40.70880489804564],[ -73.841906340776248, 40.695446474556284],[ -73.841906340776248, 40.774477568182071],[ -73.93598211437421, 40.787917134506841]},
{"type": "Polygon","współrzędne": [[[ -74.030012249838478, 40.7222262918358],[ -74.030012249838478, 40.6430762867646461],[ -73.93598211437421, 40.629733321796],[ -73.935982111437421, 40.708880489804564],[ -74.030012249838478, 40.72226262918358]]]},
{"type": "Polygon","współrzędne": [[[ -74.030012249838478, 40.88020202851376716],[ -74.030012249838478, 40.801268439439],[ -73.9359821143741, 40.787917134506841],[ -73.935982111437421, 40.866846163445771],[ -74.030012249838478, 40.88020202851376716]]]},
{"type": "Polygon","współrzędne": [[[ -73.93598211437421, 40.866846163445771],[ -73.9359821437421, 40.787917134506841],[ -73.841906340776248, 40.7747568182071],[ -73.841906340776248, 40.85340155678846],[ -73.93598211437421, 40.866846163445771]]]}},
"properties": {"name": "polygons"}}

Poniższy przykład oblicza związki wielokątne reprezentujące komórkę S2 i jej sąsiadów.

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)

Dane wyjściowe

Wielokąt
{"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]]]}

Poniższy przykład zwraca wartość true z powodu nieprawidłowych danych wejściowych tokenu komórki S2.

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

Dane wyjściowe

nieprawidłowe
1