geo_point_to_s2cell()
Calcula o valor da cadeia de caracteres do 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 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 da maior cobertura no nível zero com cobertura de área de 85.011.012,19km², 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 de células é bem preservado. Duas localizações geográficas podem estar muito próximas umas das outras, 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 calculada em longitude x e latitude y, a função não necessariamente retornará x e y.
Syntax
geo_point_to_s2cell(
Longitude,
Latitude,
[ level ])
Saiba mais sobre as convenções de sintaxe.
Parâmetros
Nome | Tipo | Obrigató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]. |
level | int |
Define o nível de célula solicitado. Os valores com suporte estão no intervalo [0, 30]. Se não for especificado, o valor padrão 11 será usado. |
Retornos
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 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. Tamanhos de células próximos tendem a ser mais iguais.
Nível | Comprimento mínimo de borda de célula aleatória (Reino Unido) | Comprimento máximo de borda de célula aleatória (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 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 | 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 mm | 18 mm |
30 | 6 mm | 9 mm |
Para comparação com outros sistemas de grade disponíveis, consulte clustering geoespaciais com Linguagem de Consulta Kusto.
Exemplos
Eventos de tempestade dos 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
O exemplo a seguir calcula a 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 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
s2cell | count | 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
s2cell |
---|
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
s2cell |
---|
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
s2cell |
---|
Conteúdo relacionado
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de