geo_point_to_s2cell()
Calcula o valor da cadeia de token de célula S2 de uma localização geográfica.
A célula S2 pode ser uma ferramenta de clustering geoespacial útil. Uma célula S2 é uma célula numa superfície esférica e tem arestas geodésicas. As células S2 fazem parte de uma hierarquia que divide a superfície da Terra. Têm um máximo de 31 níveis, que variam entre zero e 30, que definem o número de vezes que uma célula é subdividida. Os níveis vão desde a maior cobertura no nível zero com cobertura de área de 85.011.012.19km², até à cobertura mais baixa de 0,44 cm² no nível 30. Como as células S2 são subdivididas em níveis mais altos, o centro de células é bem preservado. Duas localizações geográficas podem estar muito próximas umas das outras, mas têm tokens de célulaS2 diferentes.
Nota
Se invocar a função geo_s2cell_to_central_point() numa cadeia de token de célula S2 calculada em longitude x e latitude y, a função não devolverá necessariamente x e y.
Syntax
geo_point_to_s2cell(
longitude,
latitude,
[ nível ])
Saiba mais sobre as convenções de sintaxe.
Parâmetros
Nome | Tipo | Necessário | Descrição |
---|---|---|---|
longitude | real |
✔️ | Coordenada geoespacial, valor de longitude em graus. O valor válido é um número real e no intervalo [-180, +180]. |
latitude | real |
✔️ | Coordenada geoespacial, valor de latitude em graus. O valor válido é um número real e no intervalo [-90, +90]. |
nível | int |
Define o nível de célula pedido. Os valores suportados estão no intervalo [0, 30]. Se não for especificado, é utilizado o valor 11 predefinido. |
Devoluções
O valor da cadeia de token de célula S2 de uma determinada localização geográfica. Se as coordenadas ou os níveis forem inválidos, a consulta produz 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 nas proximidades tendem a ser mais iguais.
Level | Comprimento mínimo do limite de células aleatórias (Reino Unido) | Comprimento máximo do limite de células aleatórias (E.U.A.) |
---|---|---|
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 m | 2 km |
13 | 850 m | 1225 m |
14 | 425 m | 613 m |
15 | 212 m | 306 m |
16 | 106 m | 153 m |
17 | 53 m | 77 m |
18 | 27 m | 38 m |
19 | 13 m | 19 m |
20 | 7 m | 10 m |
21 | 3 m | 5 m |
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 mm | 18 mm |
30 | 6 mm | 9 mm |
Para comparação com outros sistemas de grelha disponíveis, veja Clustering geoespacial com Linguagem de Pesquisa Kusto.
Exemplos
Eventos de tempestade dos EUA agregados por célula S2
O exemplo seguinte localiza eventos storm 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
O exemplo seguinte calcula o ID da célula S2.
print s2cell = geo_point_to_s2cell(-80.195829, 25.802215, 8)
Saída
s2cell |
---|
88d9b |
Localizar um grupo de coordenadas
O exemplo seguinte 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
s2cell | count | localizações |
---|---|---|
47b1d | 2 | ["A","B"] |
47ae3 | 1 | ["C"] |
Resultados vazios
O exemplo seguinte produz um resultado vazio devido à entrada de coordenada inválida.
print s2cell = geo_point_to_s2cell(300,1,8)
Saída
s2cell |
---|
O exemplo seguinte produz um resultado vazio devido à entrada de nível inválida.
print s2cell = geo_point_to_s2cell(1,1,35)
Saída
s2cell |
---|
O exemplo seguinte produz um resultado vazio devido à entrada de nível inválida.
print s2cell = geo_point_to_s2cell(1,1,int(null))
Saída
s2cell |
---|
Conteúdo relacionado
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários