Partilhar via


Função geo_point_to_s2cell()

Aplica-se a: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

Calcula o valor da cadeia de caracteres do 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 tem bordas geodésicas. As células S2 fazem parte de uma hierarquia que divide a superfície da Terra. Eles têm um máximo de 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 cobertura de á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 elevados, 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 em longitude x e 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 convenções de sintaxe.

Parâmetros

Nome Tipo Obrigatório Descrição
longitude real ✔️ Coordenadas geoespaciais, valor da longitude em graus. O valor válido é um número real e está no intervalo [-180, +180].
latitude real ✔️ Coordenadas geoespaciais, valor da latitude em graus. O valor válido é um número real e está no intervalo [-90, +90].
nível 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 11 padrão será usado.

Devoluções

O valor da cadeia de caracteres do 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 aproximada da área 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 aleatória da célula (Reino Unido) Comprimento máximo da borda aleatória da célula (EUA)
0 7842 quilômetros 7842 quilômetros
1 3921 quilômetros 5004 quilômetros
2 1825 quilômetros 2489 quilômetros
3 840 quilômetros 1310 quilômetros
4 432 quilômetros 636 quilômetros
5 210 quilômetros 315 quilômetros
6 108 quilômetros 156 quilômetros
7 54 quilômetros 78 quilômetros
8 27 quilômetros 39 quilômetros
9 14 quilômetros 20 quilômetros
10 7 quilômetros 10 quilômetros
11 3 quilômetros 5 quilômetros
12 1699 milh 2 quilômetros
13 850 metros 1225 milh
14 425 metros 613 milh
15 212 milh 306 metros
16 106 metros 153 metros
17 53 metros 77 milh
18 27 metros 38 metros
19 13 metros 19 milh
20 7 metros 10 metros
21 3 metros 5 metros
22 166 centímetros 2 metros
23 83 centímetros 120 centímetros
24 41 centímetros 60 centímetros
25 21 centímetros 30 centímetros
26 10 centímetros 15 centímetros
27 5 centímetros 7 centímetros
28 2 centímetros 4 centímetros
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 agrupamento geoespacial com Kusto Query Language.

Exemplos

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)

Realização

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

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

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

Realização

s2célula
88d9b

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

Realização

s2célula contar / contagem localizações
47b1d 2 ["A","B"]
47AE3 1 ["C"]

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

print s2cell = geo_point_to_s2cell(300,1,8)

Realização

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)

Realização

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))

Realização

s2célula