geo_point_to_s2cell()
Calcola il valore della stringa del token di cella S2 di una posizione geografica.
La cella S2 può essere uno strumento di clustering geospaziale utile. Una cella S2 è una cella su una superficie sferica e presenta bordi geodesici. Le cellule S2 fanno parte di una gerarchia che divide la superficie terrestre. Hanno un massimo di 31 livelli, compreso tra zero e 30, che definiscono il numero di volte in cui una cella è suddivisa. I livelli vanno dalla copertura più grande al livello zero con copertura di area di 85.011.012.19km², alla copertura più bassa di 0,44 cm² al livello 30. Poiché le celle S2 sono suddivise a livelli superiori, il centro delle celle viene conservato bene. Due posizioni geografiche possono essere molto vicine tra loro, ma hanno token di cella S2 diversi.
Nota
Se si richiama la funzione geo_s2cell_to_central_point() in una stringa di token di cella S2 calcolata sulla longitudine x e latitudine y, la funzione non restituirà necessariamente x e y.
Sintassi
geo_point_to_s2cell(
Longitudine,
Latitudine,
[ level ])
Altre informazioni sulle convenzioni di sintassi.
Parametri
Nome | Tipo | Obbligatoria | Descrizione |
---|---|---|---|
longitude | real |
✔️ | Coordinata geospaziale, valore di longitudine in gradi. Il valore valido è un numero reale e nell'intervallo [-180, +180]. |
latitude | real |
✔️ | Coordinata geospaziale, valore della latitudine in gradi. Il valore valido è un numero reale e nell'intervallo [-90, +90]. |
level | int |
Definisce il livello di cella richiesto. I valori supportati sono compresi nell'intervallo [0, 30]. Se non specificato, viene usato il valore predefinito 11 . |
Restituisce
Valore della stringa del token di cella S2 di una determinata posizione geografica. Se le coordinate o i livelli non sono validi, la query genera un risultato vuoto.
Copertura dell'area approssimativa della cella S2 per valore di livello
Per ogni livello, le dimensioni della cella S2 sono simili ma non esattamente uguali. Le dimensioni delle celle nelle vicinanze tendono ad essere più uguali.
Level | Lunghezza minima bordo cella casuale (Regno Unito) | Lunghezza massima del bordo della cella casuale (US) |
---|---|---|
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 |
Per il confronto con altri sistemi di griglia disponibili, vedere Clustering geospaziale con Linguaggio di query Kusto.
Esempio
Eventi storm statunitensi aggregati dalla cella S2
Nell'esempio seguente vengono rilevati eventi storm statunitensi aggregati da celle 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)
Output
Nell'esempio seguente viene calcolato l'ID cella S2.
print s2cell = geo_point_to_s2cell(-80.195829, 25.802215, 8)
Output
s2cell |
---|
88d9b |
Trovare un gruppo di coordinate
Nell'esempio seguente vengono trovati gruppi di coordinate. Ogni coppia di coordinate nel gruppo risiede nella cella S2 con un'area massima di 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
Output
s2cell | count | locations |
---|---|---|
47b1d | 2 | ["A","B"] |
47ae3 | 1 | ["C"] |
Risultati vuoti
Nell'esempio seguente viene generato un risultato vuoto a causa dell'input di coordinate non valido.
print s2cell = geo_point_to_s2cell(300,1,8)
Output
s2cell |
---|
Nell'esempio seguente viene generato un risultato vuoto a causa dell'input a livello non valido.
print s2cell = geo_point_to_s2cell(1,1,35)
Output
s2cell |
---|
Nell'esempio seguente viene generato un risultato vuoto a causa dell'input a livello non valido.
print s2cell = geo_point_to_s2cell(1,1,int(null))
Output
s2cell |
---|
Contenuti correlati
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per