Sdílet prostřednictvím


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 geoprostorovým clusteringovým nástrojem. Buňka S2 je buňka na kulové ploše a má geodesické hrany. Buňky S2 jsou součástí hierarchie, která rozděluje povrch Země. Mají maximálně 31 úrovní, od nuly do 30, které definují, kolikrát je buňka rozdělena. Úrovně se pohybují od největšího pokrytí na úrovni nuly s pokrytím plochy 85 011 012,19 km² až po nejnižší pokrytí 0,44 cm² na úrovni 30. Vzhledem k tomu, že buňky S2 jsou rozděleny na vyšších úrovních, centrum buněk je zachováno dobře. 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() u řetězce tokenu buňky S2 vypočítaného podle délky x a zeměpisné šířky y, funkce nemusí nutně vracet x a y.

Přečtěte si další informace o hierarchii buněk S2.

Syntaxe

geo_point_to_s2cell(zeměpisná šířka,, [ úroveň ])

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

Parametry

Název Type Požadováno Popis
zeměpisná délka real ✔️ Geoprostorová souřadnice, zeměpisná délka ve stupních. Platná hodnota je reálné číslo a v rozsahu [-180, +180].
zeměpisná šířka real ✔️ Geoprostorová souřadnice, zeměpisná šířka ve stupních. Platná hodnota je reálné číslo a v rozsahu [-90, +90].
úroveň 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 daného zeměpisného umístění. Pokud jsou souřadnice nebo úrovně neplatné, dotaz vytvoří prázdný výsledek.

S2 buňka přibližné pokrytí oblasti 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 rovny.

Level Minimální délka okraje náhodných buněk (UK) Maximální délka okraje náhodných buněk (US)
0 7842 km 7842 km
0 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

Zdroj tabulky najdete ve statistickém zdroji buňky S2.

Porovnání s jinými dostupnými systémy mřížky najdete v tématu geoprostorové clusteringy 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 vykreslení událostí storm v USA agregovaných buňkou 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 najde skupiny souřadnic. Každá dvojice souřadnic ve skupině se nachází v buňce S2 s maximální oblastí 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 0 ["C"]

Prázdné výsledky

Následující příklad vytvoří prázdný výsledek z důvodu neplatného vstupu souřadnic.

print s2cell = geo_point_to_s2cell(300,1,8)

Výstup

s2cell

Následující příklad vytvoří prázdný výsledek z důvodu neplatného vstupu na úrovni.

print s2cell = geo_point_to_s2cell(1,1,35)

Výstup

s2cell

Následující příklad vytvoří prázdný výsledek z důvodu neplatného vstupu na úrovni.

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

Výstup

s2cell