geo_point_to_geohash()

Calcola il valore della stringa geohash di una posizione geografica.

Altre informazioni su geohash.

Sintassi

geo_point_to_geohash(Longitudine,Latitudine,[ accuratezza ])

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].
Precisione int Definisce l'accuratezza richiesta. I valori supportati sono compresi nell'intervallo [1, 18]. Se non specificato, viene usato il valore predefinito 5.

Restituisce

Valore stringa geohash di una determinata posizione geografica con lunghezza di accuratezza richiesta. Se la coordinata o l'accuratezza non è valida, la query genera un risultato vuoto.

Nota

  • Geohash può essere uno strumento di clustering geospaziale utile.
  • Geohash ha 18 livelli di accuratezza con copertura dell'area che va da 25 milioni di km² al livello più alto da 1 a 0,6 μ² al livello più basso 18.
  • I prefissi comuni di geohash indicano la prossimità dei punti l'uno all'altro. Più è lungo un prefisso condiviso, più vicino sono le due posizioni. Il valore di accuratezza si traduce in lunghezza geohash.
  • Geohash è un'area rettangolare su una superficie del piano.
  • Richiamare la funzione geo_geohash_to_central_point() su una stringa geohash calcolata sulla longitudine x e la latitudine y non restituirà necessariamente x e y.
  • A causa della definizione geohash, è possibile che due posizioni geografiche siano molto vicine l'una all'altra, ma abbiano codici geohash diversi.

Copertura dell'area rettangolare geohash per valore di accuratezza:

Accuratezza Larghezza Altezza
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 μ

Vedere anche geo_point_to_s2cell(), geo_point_to_h3cell().

Per un confronto con altri sistemi di griglia disponibili, vedere Clustering geospaziale con Linguaggio di query Kusto.

Esempio

L'esempio seguente trova gli eventi storm statunitensi aggregati da 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)

Output

Screenshot degli eventi storm statunitensi raggruppati per geohash.

Nell'esempio seguente viene calcolato e restituito il valore della stringa geohash.

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

Output

geohash
dhwfz15h

Nell'esempio seguente vengono trovati gruppi di coordinate. Ogni coppia di coordinate nel gruppo risiede in un'area rettangolare di 4,88 km da 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

Output

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

Nell'esempio seguente viene generato un risultato vuoto a causa dell'input di coordinate non valido.

print geohash = geo_point_to_geohash(200,1,8)

Output

geohash

Nell'esempio seguente viene generato un risultato vuoto a causa dell'input di accuratezza non valido.

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

Output

geohash