Udostępnij za pośrednictwem


geo_point_to_geohash()

Dotyczy: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Oblicza wartość ciągu geohash lokalizacji geograficznej.

Przeczytaj więcej na temat powłoki geograficznej.

Składnia

geo_point_to_geohash(długość geograficzna,,[ dokładność ])

Dowiedz się więcej na temat konwencji składni.

Parametry

Nazwisko Type Wymagania opis
długość real ✔️ Współrzędna geoprzestrzenna, wartość długości geograficznej w stopniach. Prawidłowa wartość to liczba rzeczywista i w zakresie [-180, +180].
szerokość geograficzna real ✔️ Współrzędna geoprzestrzenna, wartość szerokości geograficznej w stopniach. Prawidłowa wartość to liczba rzeczywista i w zakresie [-90, +90].
dokładność int Definiuje żądaną dokładność. Obsługiwane wartości znajdują się w zakresie [1, 18]. Jeśli nie określono, zostanie użyta wartość 5 domyślna.

Zwraca

Wartość ciągu geohash dla danej lokalizacji geograficznej z żądaną długością dokładności. Jeśli współrzędna lub dokładność jest nieprawidłowa, zapytanie generuje pusty wynik.

Uwaga

  • Geohash może być przydatnym narzędziem do klastrowania geoprzestrzennego.
  • Geohash ma 18 poziomów dokładności z pokryciem obszaru od 25 milionów km² na najwyższym poziomie od 1 do 0,6 μ² na najniższym poziomie 18.
  • Typowe prefiksy powłoki geograficznej wskazują bliskość punktów do siebie. Im dłuższy jest wspólny prefiks, tym bliżej znajdują się dwa miejsca. Wartość dokładności przekłada się na długość powłoki geograficznej.
  • Geohash to prostokątny obszar na powierzchni płaszczyzny.
  • Wywołanie funkcji geo_geohash_to_central_point() w ciągu geohash obliczonym na długości geograficznej x i szerokości geograficznej y nie musi zwracać wartości x i y.
  • Ze względu na definicję geohash możliwe jest, że dwie lokalizacje geograficzne są bardzo blisko siebie, ale mają różne kody geohash.

Prostokątne pokrycie obszaru powłoki geograficznej na wartość dokładności:

Dokładność Szerokość Wysokość
1 5000 km 5000 km
2 1250 km 625 km
3 156,25 km 156,25 km
100 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 μ

Zobacz również geo_point_to_s2cell(), geo_point_to_h3cell().

Porównanie z innymi dostępnymi systemami siatki można znaleźć w temacie Geospatial clustering with język zapytań Kusto (Klastrowanie geoprzestrzenne z język zapytań Kusto).

Przykłady

W poniższym przykładzie znaleziono zdarzenia burzy USA zagregowane przez 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)

Wyjście

Zrzut ekranu przedstawiający zdarzenia burzy USA pogrupowane według geohash.

Poniższy przykład oblicza i zwraca wartość ciągu geohash.

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

Wyjście

geohash
dhwfz15h

Poniższy przykład znajduje grupy współrzędnych. Każda para współrzędnych w grupie znajduje się w prostokątnym obszarze 4,88 km o 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

Wyjście

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

Poniższy przykład generuje pusty wynik z powodu nieprawidłowych danych wejściowych współrzędnych.

print geohash = geo_point_to_geohash(200,1,8)

Wyjście

geohash

Poniższy przykład generuje pusty wynik z powodu nieprawidłowych danych wejściowych dokładności.

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

Wyjście

geohash