Partager via


geo_point_to_s2cell()

S’applique à : ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft 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

Capture d’écran d’un rendu cartographique des événements storm américains agrégés par la cellule S2.

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