geo_point_to_s2cell()
S’applique à : ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Calcule la valeur de chaîne de jeton de cellule S2 d’un emplacement géographique.
En savoir plus sur la hiérarchie de cellules S2. La cellule S2 peut être un outil de clustering géospatial utile. Une cellule S2 est une cellule sur une surface sphérique et a des bords géodésiques. Les cellules S2 font partie d’une hiérarchie qui divise la surface de la Terre. Ils ont un maximum de 31 niveaux, compris entre zéro et 30, qui définissent le nombre de fois qu’une cellule est subdividée. Les niveaux vont de la plus grande couverture au niveau zéro avec une couverture de zone de 85 011 012,19km², à la couverture la plus basse de 0,44 cm² au niveau 30. Comme les cellules S2 sont subdividées à des niveaux plus élevés, le centre de cellules est conservé bien. Deux emplacements géographiques peuvent être très proches les uns des autres, mais ils ont des jetons de cellule S2 différents.
Remarque
Si vous appelez la fonction geo_s2cell_to_central_point() sur une chaîne de jeton de cellule S2 calculée sur longitude x et latitude y, la fonction ne retourne pas nécessairement x et y.
En savoir plus sur la hiérarchie de cellules S2.
Syntaxe
geo_point_to_s2cell(
latitude,
longitude,
[ niveau ])
En savoir plus sur les conventions de syntaxe.
Paramètres
Nom | Type | Requise | Description |
---|---|---|---|
longitude | real |
✔️ | Coordonnée géospatiale, valeur de longitude en degrés. La valeur valide est un nombre réel et dans la plage [-180, +180]. |
latitude | real |
✔️ | Coordonnée géospatiale, valeur de latitude en degrés. La valeur valide est un nombre réel et dans la plage [-90, +90]. |
level | int |
Définit le niveau de cellule demandé. Les valeurs prises en charge se trouvent dans la plage [0, 30]. Si la valeur n’est pas spécifiée, la valeur par défaut 11 est utilisée. |
Retours
Valeur de chaîne de jeton de cellule S2 d’un emplacement géographique donné. Si les coordonnées ou les niveaux ne sont pas valides, la requête produit un résultat vide.
Couverture approximative de la zone de la cellule S2 par valeur de niveau
Pour chaque niveau, la taille de la cellule S2 est similaire, mais pas exactement égale. Les tailles de cellules proches ont tendance à être plus égales.
Niveau | Longueur minimale du bord de cellule aléatoire (Royaume-Uni) | Longueur maximale d’arête de cellule aléatoire (États-Unis) |
---|---|---|
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 |
La source de la table se trouve dans cette ressource statistique de cellule S2.
Pour des comparaisons avec d’autres systèmes de grille disponibles, consultez clustering géospatial avec Langage de requête Kusto.
Exemples
Événements de tempête américains agrégés par cellule S2
L’exemple suivant recherche les événements storm américains agrégés par les cellules 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)
Sortie
L’exemple suivant calcule l’ID de cellule S2.
print s2cell = geo_point_to_s2cell(-80.195829, 25.802215, 8)
Sortie
s2cell |
---|
88d9b |
Rechercher un groupe de coordonnées
L’exemple suivant recherche des groupes de coordonnées. Chaque paire de coordonnées du groupe réside dans la cellule S2 avec une superficie maximale de 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
Sortie
s2cell | count | locations |
---|---|---|
47b1d | 2 | ["A", "B"] |
47ae3 | 1 | ["C"] |
Résultats vides
L’exemple suivant génère un résultat vide en raison de l’entrée de coordonnées non valide.
print s2cell = geo_point_to_s2cell(300,1,8)
Sortie
s2cell |
---|
L’exemple suivant génère un résultat vide en raison de l’entrée de niveau non valide.
print s2cell = geo_point_to_s2cell(1,1,35)
Sortie
s2cell |
---|
L’exemple suivant génère un résultat vide en raison de l’entrée de niveau non valide.
print s2cell = geo_point_to_s2cell(1,1,int(null))
Sortie
s2cell |
---|