geo_point_to_s2cell()

Vypočítá hodnotu řetězce tokenu buňky S2 zeměpisného umístění.

Buňka S2 může být užitečným nástrojem pro geoprostorové shlukování. Buňka S2 je buňka na sférickém povrchu a má geodetické hrany. Buňky S2 jsou součástí hierarchie rozdělující zemský povrch. Mají maximálně 31 úrovní v rozsahu od nuly do 30, které definují počet dělení buňky. Úrovně se pohybují od největšího pokrytí na úrovni nula s pokrytím 85 011 012,19 km² až po nejnižší pokrytí 0,44 cm² na úrovni 30. Vzhledem k tomu, že se buňky S2 dělí na vyšších úrovních, zachovají se dobře středy buněk. Dvě geografická umístění mohou být velmi blízko sebe, ale mají různé tokeny buněk S2.

Poznámka

Pokud vyvoláte funkci geo_s2cell_to_central_point() v řetězci tokenu buňky S2, který byl vypočítán na základě zeměpisné délky x a zeměpisné šířky y, funkce nemusí nutně vracet x a y.

Syntax

geo_point_to_s2cell(Délky,Šířky, [ úroveň ])

Přečtěte si další informace o konvencích syntaxe.

Parametry

Název Typ Vyžadováno Popis
Délky real ✔️ Geoprostorová souřadnice, hodnota zeměpisné délky ve stupních. Platná hodnota je reálné číslo v rozsahu [-180, +180].
zeměpisná šířka real ✔️ Geoprostorová souřadnice, hodnota zeměpisné šířky ve stupních. Platná hodnota je reálné číslo v rozsahu [-90, +90].
Úrovni int Definuje požadovanou úroveň buňky. Podporované hodnoty jsou v rozsahu [0, 30]. Pokud není zadáno, použije se výchozí hodnota 11 .

Návraty

Hodnota řetězce tokenu buňky S2 v daném zeměpisném umístění. Pokud jsou souřadnice nebo úrovně neplatné, dotaz vytvoří prázdný výsledek.

Přibližné pokrytí oblasti buňky S2 na hodnotu úrovně

Pro každou úroveň je velikost buňky S2 podobná, ale není přesně stejná. Velikosti blízkých buněk mají tendenci být rovnější.

Level Minimální náhodná délka okraje buňky (UK) Maximální náhodná délka okraje buňky (USA)
0 7842 km 7842 km
1 3921 km 5004 km
2 1825 km 2489 km
3 840 km 1310 km
4 432 km 636 km
5 210 km 315 km
6 108 km 156 km
7 54 km 78 km
8 27 km 39 km
9 14 km 20 km
10 7 km 10 km
11 3 km 5 km
12 1699 m 2 km
13 850 m 1225 m
14 425 m 613 m
15 212 m 306 m
16 106 m 153 m
17 53 m 77 m
18 27 m 38 m
19 13 m 19 m
20 7 m 10 m
21 3 m 5 m
22 166 cm 2 m
23 83 cm 120 cm
24 41 cm 60 cm
25 21 cm 30 cm
26 10 cm 15 cm
27 5 cm 7 cm
28 2 cm 4 cm
29 12 mm 18 mm
30 6 mm 9 mm

Porovnání s dalšími dostupnými systémy mřížky najdete v tématu geoprostorový clustering s dotazovací jazyk Kusto.

Příklady

Události bouře v USA agregované podle buňky S2

Následující příklad najde události storm v USA agregované podle buněk S2.

StormEvents
| project BeginLon, BeginLat
| summarize by hash=geo_point_to_s2cell(BeginLon, BeginLat, 5)
| project geo_s2cell_to_central_point(hash)
| render scatterchart with (kind=map)

Výstup

Snímek obrazovky s mapou vykreslenou událostmi bouře v USA agregovanými podle buňky S2

Následující příklad vypočítá ID buňky S2.

print s2cell = geo_point_to_s2cell(-80.195829, 25.802215, 8)

Výstup

s2cell
88d9b

Vyhledání skupiny souřadnic

Následující příklad vyhledá skupiny souřadnic. Každá dvojice souřadnic ve skupině se nachází v buňce S2 o maximální ploše 1632,45 km².

datatable(location_id:string, longitude:real, latitude:real)
[
  "A", 10.1234, 53,
  "B", 10.3579, 53,
  "C", 10.6842, 53,
]
| summarize count = count(),                                        // items per group count
            locations = make_list(location_id)                      // items in the group
            by s2cell = geo_point_to_s2cell(longitude, latitude, 8) // s2 cell of the group

Výstup

s2cell count Umístění
47b1d 2 ["A","B"]
47ae3 1 ["C"]

Prázdné výsledky

Následující příklad vytvoří prázdný výsledek kvůli neplatné souřadnici vstupu.

print s2cell = geo_point_to_s2cell(300,1,8)

Výstup

s2cell

Následující příklad vytvoří prázdný výsledek kvůli neplatné úrovni vstupu.

print s2cell = geo_point_to_s2cell(1,1,35)

Výstup

s2cell

Následující příklad vytvoří prázdný výsledek kvůli neplatné úrovni vstupu.

print s2cell = geo_point_to_s2cell(1,1,int(null))

Výstup

s2cell