Udostępnij za pośrednictwem


geo_point_to_s2cell()

Dotyczy: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Oblicza wartość ciągu tokenu komórki S2 lokalizacji geograficznej.

Przeczytaj więcej na temat hierarchii komórek S2. Komórka S2 może być przydatnym narzędziem do klastrowania geoprzestrzennego. Komórka S2 jest komórką na powierzchni kulistycznej i ma krawędzie geodesowe. Komórki S2 są częścią hierarchii dzielącej powierzchnię Ziemi. Mają maksymalnie 31 poziomów, od zera do 30, które definiują liczbę podziałów komórki. Poziomy wahają się od największego zasięgu na poziomie zerowym z pokryciem obszaru 85 011 012,19 km², do najniższego pokrycia 0,44 cm² na poziomie 30. Ponieważ komórki S2 są podzielone na wyższych poziomach, środek komórki jest dobrze zachowywany. Dwie lokalizacje geograficzne mogą być bardzo blisko siebie, ale mają różne tokeny komórek S2.

Uwaga

Jeśli wywołasz funkcję geo_s2cell_to_central_point() w ciągu tokenu komórki S2, który został obliczony na długości geograficznej x i szerokości geograficznej y, funkcja nie musi zwracać wartości x i y.

Przeczytaj więcej na temat hierarchii komórek S2.

Składnia

geo_point_to_s2cell(szerokość geograficzna,, [ poziom ])

Dowiedz się więcej na temat konwencji składni.

Parametry

Nazwisko Type Wymagania opis
długość real ✔️ Współrzędna geoprzestrzenna, wartość długości geograficznej w stopniach. Prawidłowa wartość to liczba rzeczywista i w zakresie [-180, +180].
szerokość geograficzna real ✔️ Współrzędna geoprzestrzenna, wartość szerokości geograficznej w stopniach. Prawidłowa wartość to liczba rzeczywista i w zakresie [-90, +90].
poziom int Definiuje żądany poziom komórki. Obsługiwane wartości znajdują się w zakresie [0, 30]. Jeśli nie określono, zostanie użyta wartość 11 domyślna.

Zwraca

Wartość ciągu tokenu komórki S2 dla danej lokalizacji geograficznej. Jeśli współrzędne lub poziomy są nieprawidłowe, zapytanie generuje pusty wynik.

Przybliżone pokrycie obszaru komórki S2 na wartość poziomu

Dla każdego poziomu rozmiar komórki S2 jest podobny, ale nie dokładnie taki sam. Pobliskie rozmiary komórek wydają się być bardziej równe.

Poziom Minimalna długość krawędzi komórki losowej (Wielka Brytania) Maksymalna długość krawędzi komórki losowej (USA)
0 7842 km 7842 km
1 3921 km 5004 km
2 1825 km 2489 km
3 840 km 1310 km
100 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

Źródło tabeli można znaleźć w tym zasobie statystycznym komórki S2.

Porównanie z innymi dostępnymi systemami siatki można znaleźć w temacie Geospatial clustering with język zapytań Kusto (Klastrowanie geoprzestrzenne z język zapytań Kusto).

Przykłady

Zdarzenia burzy USA zagregowane przez komórkę S2

Poniższy przykład umożliwia znalezienie zdarzeń burzy USA zagregowanych przez komórki 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)

Wyjście

Zrzut ekranu przedstawiający renderowanie mapy zdarzeń burzy USA zagregowanych przez komórkę S2.

Poniższy przykład oblicza identyfikator komórki S2.

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

Wyjście

s2cell
88d9b

Znajdowanie grupy współrzędnych

Poniższy przykład znajduje grupy współrzędnych. Każda para współrzędnych w grupie znajduje się w komórce S2 o maksymalnym obszarze 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

Wyjście

s2cell count locations
47b1d 2 ["A","B"]
47ae3 1 ["C"]

Puste wyniki

Poniższy przykład generuje pusty wynik z powodu nieprawidłowych danych wejściowych współrzędnych.

print s2cell = geo_point_to_s2cell(300,1,8)

Wyjście

s2cell

Poniższy przykład generuje pusty wynik z powodu nieprawidłowych danych wejściowych na poziomie.

print s2cell = geo_point_to_s2cell(1,1,35)

Wyjście

s2cell

Poniższy przykład generuje pusty wynik z powodu nieprawidłowych danych wejściowych na poziomie.

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

Wyjście

s2cell