Partager via


geo_point_to_geohash()

S’applique à : ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Calcule la valeur de chaîne geohash d’un emplacement géographique.

En savoir plus sur geohash.

Syntaxe

geo_point_to_geohash(longitude, latitude,[ précision ])

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].
exactitude int Définit la précision demandée. Les valeurs prises en charge se trouvent dans la plage [1, 18]. Si la valeur n’est pas spécifiée, la valeur par défaut 5 est utilisée.

Retours

Valeur de chaîne geohash d’un emplacement géographique donné avec une longueur de précision demandée. Si la coordonnée ou la précision n’est pas valide, la requête produit un résultat vide.

Remarque

  • Geohash peut être un outil de clustering géospatial utile.
  • Geohash a 18 niveaux de précision avec couverture de zone allant de 25 millions de km² au niveau le plus élevé 1 à 0,6 μ² au niveau le plus bas 18.
  • Les préfixes courants de geohash indiquent la proximité des points entre eux. Plus un préfixe partagé est long, plus les deux emplacements sont proches. La valeur de précision se traduit par la longueur de la limite géographique.
  • Geohash est une zone rectangulaire sur une surface de plan.
  • L’appel de la fonction geo_geohash_to_central_point() sur une chaîne geohash calculée sur longitude x et latitude y ne retourne pas nécessairement x et y.
  • En raison de la définition de geohash, il est possible que deux emplacements géographiques soient très proches les uns des autres, mais ont des codes de géohash différents.

Couverture de zone rectangulaire geohash par valeur de précision :

Précision Width Hauteur
1 5000 km 5000 km
2 1250 km 625 km
3 156,25 km 156,25 km
4 39,06 km 19,53 km
5 4,88 km 4,88 km
6 1,22 km 0,61 km
7 152,59 m 152,59 m
8 38,15 m 19,07 m
9 4,77 m 4,77 m
10 1,19 m 0,59 m
11 149,01 mm 149,01 mm
12 37,25 mm 18,63 mm
13 4,66 mm 4,66 mm
14 1,16 mm 0,58 mm
15 145.52 μ 145.52 μ
16 36.28 μ 18.19 μ
17 4.55 μ 4.55 μ
18 1.14 μ 0.57 μ

Voir également geo_point_to_s2cell(), geo_point_to_h3cell().

Pour des comparaisons avec d’autres systèmes de grille disponibles, consultez clustering géospatial avec Langage de requête Kusto.

Exemples

L’exemple suivant recherche les événements de tempête américains agrégés par geohash.

StormEvents
| project BeginLon, BeginLat
| summarize by hash=geo_point_to_geohash(BeginLon, BeginLat, 3)
| project geo_geohash_to_central_point(hash)
| render scatterchart with (kind=map)

Sortie

Capture d’écran des événements de tempête américains regroupés par géohash.

L’exemple suivant calcule et retourne la valeur de la chaîne geohash.

print geohash = geo_point_to_geohash(-80.195829, 25.802215, 8)

Sortie

geohash
dhwfz15h

L’exemple suivant recherche des groupes de coordonnées. Chaque paire de coordonnées du groupe réside dans une zone rectangulaire de 4,88 km par 4,88 km.

datatable(location_id:string, longitude:real, latitude:real)
[
  "A", double(-122.303404), 47.570482,
  "B", double(-122.304745), 47.567052,
  "C", double(-122.278156), 47.566936,
]
| summarize count = count(),                                          // items per group count
            locations = make_list(location_id)                        // items in the group
            by geohash = geo_point_to_geohash(longitude, latitude)    // geohash of the group

Sortie

geohash count locations
c23n8 2 ["A », « B"]
c23n9 1 ["C"]

L’exemple suivant génère un résultat vide en raison de l’entrée de coordonnées non valide.

print geohash = geo_point_to_geohash(200,1,8)

Sortie

geohash

L’exemple suivant génère un résultat vide en raison de l’entrée de précision non valide.

print geohash = geo_point_to_geohash(1,1,int(null))

Sortie

geohash