Dela via


geo_point_to_geohash()

Beräknar geohash-strängvärdet för en geografisk plats.

Läs mer om geohash.

Syntax

geo_point_to_geohash(Longitud,Latitude,[ noggrannhet ])

Läs mer om syntaxkonventioner.

Parametrar

Namn Typ Obligatorisk Beskrivning
Longitud real ✔️ Geospatial koordinat, longitudvärde i grader. Giltigt värde är ett reellt tal och i intervallet [-180, +180].
latitude real ✔️ Geospatial koordinat, latitudvärde i grader. Giltigt värde är ett reellt tal och i intervallet [-90, +90].
Noggrannhet int Definierar den begärda noggrannheten. Värden som stöds finns i intervallet [1, 18]. Om det är ospecificerat används standardvärdet 5 .

Returer

Geohash-strängvärdet för en viss geografisk plats med begärd noggrannhetslängd. Om koordinaten eller noggrannheten är ogiltig genererar frågan ett tomt resultat.

Anteckning

  • Geohash kan vara ett användbart geospatialt klusterverktyg.
  • Geohash har 18 noggrannhetsnivåer med yttäckning från 25 miljoner km² på högsta nivå 1 till 0,6 μ² på den lägsta nivån 18.
  • Vanliga prefix för geohash indikerar närhet av punkter till varandra. Desto längre ett delat prefix är, desto närmare är de två platserna. Noggrannhetsvärdet översätts till geohashlängd.
  • Geohash är ett rektangulärt område på en plan yta.
  • Om du anropar funktionen geo_geohash_to_central_point() på en geohashsträng som beräknades på longitud x och latitud y returneras inte nödvändigtvis x och y.
  • På grund av geohash-definitionen är det möjligt att två geografiska platser är mycket nära varandra men har olika geohashkoder.

Geohash rektangulär områdestäckning per noggrannhetsvärde:

Noggrannhet Bredd Höjd
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 μ

Se även geo_point_to_s2cell(), geo_point_to_h3cell().

Jämförelse med andra tillgängliga rutnätssystem finns i geospatial klustring med Kusto-frågespråk.

Exempel

I följande exempel hittar vi stormhändelser i USA aggregerade med 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)

Resultat

Skärmbild av stormhändelser i USA grupperade efter geohash.

I följande exempel beräknas och returneras värdet för geohash-strängen.

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

Resultat

geohash
dhwfz15h

I följande exempel hittar du grupper av koordinater. Varje koordinatpar i gruppen finns i ett rektangulärt område på 4,88 km och 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

Resultat

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

I följande exempel genereras ett tomt resultat på grund av ogiltiga koordinatindata.

print geohash = geo_point_to_geohash(200,1,8)

Resultat

geohash

I följande exempel genereras ett tomt resultat på grund av ogiltiga precisionsindata.

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

Resultat

geohash