geo_point_to_geohash()
Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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
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 |
---|