geo_point_to_s2cell()
Oblicza wartość ciągu tokenu komórki S2 lokalizacji geograficznej.
Komórka S2 może być przydatnym narzędziem do klastrowania geoprzestrzennego. Komórka S2 jest komórką na powierzchni sferycznej 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ę razy, gdy komórka jest podzielona. Poziomy wahają się od największego zasięgu na poziomie zerowym z pokryciem powierzchni 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.
Składnia
geo_point_to_s2cell(
Długość geograficzna,
Szerokość geograficzna,
[ poziom ])
Dowiedz się więcej o konwencjach składniowych.
Parametry
Nazwa | Typ | Wymagane | Opis |
---|---|---|---|
Długość geograficzna | real |
✔️ | Współrzędna geoprzestrzenna, wartość długości geograficznej w stopniach. Prawidłowa wartość to liczba rzeczywista i w zakresie [-180, +180]. |
latitude | 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 zostanie określona, 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 losowa długość krawędzi komórki (Wielka Brytania) | Maksymalna losowa długość krawędzi komórki (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 |
Porównanie z innymi dostępnymi systemami siatki można znaleźć w temacie Geoprzestrzenne klastrowanie z język zapytań Kusto.
Przykłady
Zdarzenia burzy USA zagregowane przez komórkę S2
Poniższy przykład znajduje zdarzenia burzy USA zagregowane 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)
Dane wyjściowe
Poniższy przykład oblicza identyfikator komórki S2.
print s2cell = geo_point_to_s2cell(-80.195829, 25.802215, 8)
Dane wyjściowe
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
Dane wyjściowe
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)
Dane wyjściowe
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)
Dane wyjściowe
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))
Dane wyjściowe
s2cell |
---|
Zawartość pokrewna
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla