Compartilhar via


geo_point_to_s2cell()

Aplica-se a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

Calcula o valor da string de token de célula S2 de uma localização geográfica.

Leia mais sobre a hierarquia de células S2. A célula S2 pode ser uma ferramenta útil de agrupamento geoespacial. Uma célula S2 é uma célula em uma superfície esférica e possui bordas geodésicas. As células S2 fazem parte de uma hierarquia que divide a superfície da Terra. Eles têm no máximo 31 níveis, variando de zero a 30, que definem o número de vezes que uma célula é subdividida. Os níveis variam desde a maior cobertura no nível zero, com área de 85.011.012,19 km², até a menor cobertura de 0,44 cm² no nível 30. Como as células S2 são subdivididas em níveis mais altos, o centro celular é bem preservado. Duas localizações geográficas podem estar muito próximas uma da outra, mas têm tokens de célula S2 diferentes.

Observação

Se você invocar a função geo_s2cell_to_central_point() em uma cadeia de caracteres de token de célula S2 que foi calculada na longitude x e na latitude y, a função não retornará necessariamente x e y.

Leia mais sobre a hierarquia de células S2.

Sintaxe

geo_point_to_s2cell(longitude, latitude, [ nível ])

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].
level int Define o nível de célula solicitado. Os valores suportados estão no intervalo [0, 30]. Se não for especificado, o valor padrão 11 será usado.

Devoluções

O valor da cadeia de caracteres de token de célula S2 de uma determinada localização geográfica. Se as coordenadas ou níveis forem inválidos, a consulta produzirá um resultado vazio.

Cobertura de área aproximada da célula S2 por valor de nível

Para cada nível, o tamanho da célula S2 é semelhante, mas não exatamente igual. Os tamanhos das células próximas tendem a ser mais iguais.

Nível Comprimento mínimo da borda da célula aleatória (Reino Unido) Comprimento máximo da borda da célula aleatória (US)
0 7842 quilômetros 7842 quilômetros
1 3921 km 5004 km
2 1825 quilômetros 2489 quilômetros
3 840 km 1310 km
4 432 km 636 km
5 210 quilômetros 315 quilômetros
6 108 quilômetros 156 km
7 54 km 78 km
8 27 quilômetros 39 km
9 14 km 20 km
10 7 km 10 km
11 3 km 5 km
12 1699 metros acima do nível do mar 2 km
13 850 metros acima do nível do mar 1225 metros acima do nível do mar
14 425 metros acima do nível do mar 613 metros acima do nível do mar
15 212 metros acima do nível do mar 306 metros acima do nível do mar
16 106 metros acima do nível do mar 153 metros acima do nível do mar
17 53 metros acima do nível do mar 77 metros acima do nível do mar
18 27 metros acima do nível do mar 38 metros acima do nível do mar
19 13 metros acima do nível do mar 19 metros acima do nível do mar
20 7 metros acima do nível do mar 10 m
21 3 metros acima do nível do mar 5min
22 166 cm 2 m
23 83 cm 120 cm
24 41 cm 60 cm
25 21 cm 30 cm
26 10 cm 15 cm
27 5 cm 7 cm
28 2 cm 4 cm
29 12 milímetros 18 milímetros
30 6 milímetros 9 milímetros

A fonte da tabela pode ser encontrada neste recurso estatístico da Célula S2.

Para comparação com outros sistemas de grade disponíveis, consulte clustering geoespacial com a Linguagem de Consulta Kusto.

Exemplos

Eventos de tempestade nos EUA agregados por célula S2

O exemplo a seguir localiza eventos de tempestade dos EUA agregados por células S2.

StormEvents
| project BeginLon, BeginLat
| summarize by hash=geo_point_to_s2cell(BeginLon, BeginLat, 5)
| project geo_s2cell_to_central_point(hash)
| render scatterchart with (kind=map)

Saída

Captura de tela de uma renderização de mapa de eventos de tempestade dos EUA agregados por célula S2.

O exemplo a seguir calcula a ID da célula S2.

print s2cell = geo_point_to_s2cell(-80.195829, 25.802215, 8)

Saída

s2célula
88d9b

Localizar um grupo de coordenadas

O exemplo a seguir localiza grupos de coordenadas. Cada par de coordenadas no grupo reside na célula S2 com uma área máxima de 1632,45 km².

datatable(location_id:string, longitude:real, latitude:real)
[
  "A", 10.1234, 53,
  "B", 10.3579, 53,
  "C", 10.6842, 53,
]
| summarize count = count(),                                        // items per group count
            locations = make_list(location_id)                      // items in the group
            by s2cell = geo_point_to_s2cell(longitude, latitude, 8) // s2 cell of the group

Saída

s2célula count Locais
47b1d 2 ["A","B"]
47ae3 1 ["C"]

Resultados vazios

O exemplo a seguir produz um resultado vazio devido à entrada de coordenadas inválida.

print s2cell = geo_point_to_s2cell(300,1,8)

Saída

s2célula

O exemplo a seguir produz um resultado vazio devido à entrada de nível inválida.

print s2cell = geo_point_to_s2cell(1,1,35)

Saída

s2célula

O exemplo a seguir produz um resultado vazio devido à entrada de nível inválida.

print s2cell = geo_point_to_s2cell(1,1,int(null))

Saída

s2célula