geo_point_to_geohash()
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Calcula o valor da cadeia de caracteres geohash de uma localização geográfica.
Leia mais sobre geohash.
Sintaxe
geo_point_to_geohash(
longitude,
latitude,
)
Saiba mais sobre as convenções de sintaxe.
Parâmetros
Nome | Digitar | Obrigatória | Descrição |
---|---|---|---|
longitude | real |
✔️ | Coordenada geoespacial, valor de longitude em graus. O valor válido é um número real e está no intervalo [-180, +180]. |
latitude | real |
✔️ | Coordenada geoespacial, valor da latitude em graus. O valor válido é um número real e está no intervalo [-90, +90]. |
exatidão | int |
Define a precisão solicitada. Os valores suportados estão no intervalo [1, 18]. Se não for especificado, o valor padrão 5 será usado. |
Devoluções
O valor da cadeia de caracteres geohash de uma determinada localização geográfica com comprimento de precisão solicitado. Se a coordenada ou a precisão for inválida, a consulta produzirá um resultado vazio.
Observação
- O Geohash pode ser uma ferramenta útil de agrupamento geoespacial.
- Geohash tem 18 níveis de precisão com cobertura de área variando de 25 milhões de km² no nível mais alto 1 a 0,6 μ² no nível mais baixo 18.
- Prefixos comuns de geohash indicam proximidade de pontos entre si. Quanto mais longo for um prefixo compartilhado, mais próximos estarão os dois lugares. O valor de precisão se traduz em comprimento de geohash.
- Geohash é uma área retangular em uma superfície plana.
- Invocar a função geo_geohash_to_central_point() em uma cadeia de caracteres geohash que foi calculada na longitude x e na latitude y não retornará necessariamente x e y.
- Devido à definição de geohash, é possível que duas localizações geográficas estejam muito próximas uma da outra, mas tenham códigos geohash diferentes.
Cobertura de área retangular Geohash por valor de precisão:
Precisão | Width | Height |
---|---|---|
1 | 5000 km | 5000 km |
2 | 1250 km | 625 quilômetros |
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 metros acima do nível do mar | 152,59 metros acima do nível do mar |
8 | 38,15 metros acima do nível do mar | 19,07 metros acima do nível do mar |
9 | 4,77 metros acima do nível do mar | 4,77 metros acima do nível do mar |
10 | 1,19 metros | 0,59 metros acima do nível do mar |
11 | 149,01 milímetros | 149,01 milímetros |
12 | 37,25 milímetros | 18,63 milímetros |
13 | 4,66 milímetros | 4,66 milímetros |
14 | 1,16 milímetros | 0,58 milímetros |
15 | 145.52 μ | 145.52 μ |
16 | 36.28 μ | 18.19 μ |
17 | 4.55 μ | 4.55 μ |
18 | 1.14 μ | 0.57 μ |
Veja também geo_point_to_s2cell(), geo_point_to_h3cell().
Para comparação com outros sistemas de grade disponíveis, consulte clustering geoespacial com a Linguagem de Consulta Kusto.
Exemplos
O exemplo a seguir localiza eventos de tempestade dos EUA agregados por 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)
Saída
O exemplo a seguir calcula e retorna o valor da cadeia de caracteres geohash.
print geohash = geo_point_to_geohash(-80.195829, 25.802215, 8)
Saída
geohash |
---|
dhwfz15h |
O exemplo a seguir localiza grupos de coordenadas. Cada par de coordenadas no grupo reside em uma área retangular de 4,88 km por 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
Saída
geohash | count | Locais |
---|---|---|
c23n8 | 2 | ["A", "B"] |
c23n9 | 1 | ["C"] |
O exemplo a seguir produz um resultado vazio devido à entrada de coordenadas inválida.
print geohash = geo_point_to_geohash(200,1,8)
Saída
geohash |
---|
O exemplo a seguir produz um resultado vazio devido à entrada de precisão inválida.
print geohash = geo_point_to_geohash(1,1,int(null))
Saída
geohash |
---|