Compartilhar via


geo_point_to_s2cell()

Calcula o valor da cadeia de caracteres do token de célula S2 de um local geográfico.

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 ser 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 latitude y, a função não necessariamente retornará x e y.

Leia mais sobre a hierarquia de células do 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 da longitude em graus. O valor válido é um número real e está no intervalo [-180, +180].
latitude real ✔️ Coordenada geoespacial, valor de 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 do token de célula S2 de um determinado local geográfico. 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 aleatório da borda da célula (Reino Unido) Comprimento máximo da borda aleatória da célula (EUA)
0 7842 km 7842 km
1 3921 km 5004 km
2 1825 km 2489 km
3 840 km 1310 km
4 432 km 636 km
5 210 km 315 km
6 108 km 156 km
7 54 km 78 km
8 27 km 39 km
9 14 km 20 km
10 7 km 10 km
11 3 km 5 km
12 1699 milh 2 km
13 850 metros 1225 milh
14 425 milh 613 milh
15 212 milh 306 milh
16 106 metros 153 milh
17 53 metros 77 milh
18 27 metros 38 metros
19 13 metros 19 metros
20 7 metros 10 m
21 3 metros 5min
22 166 centímetros 2 m
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 Célula S2.

Para comparação com outros sistemas de grade disponíveis, consulte clustering geoespacial com Kusto Query Language.

Exemplos

Eventos de tempestade nos EUA agregados pela 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 pela 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 contagem Locais
47b1d 2 ["A","B"]
47ae3 1 ["C"]

Resultados vazios

O exemplo a seguir produz um resultado vazio devido à entrada de coordenada 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