Partilhar via


geo_point_to_geohash()

Aplica-se a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft 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

Captura de tela de eventos de tempestade nos EUA agrupados por geohash.

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