Função h3_kringdistances
Aplica-se a: SQL do Databricks Databricks Runtime 11.3 LTS e versões posteriores
Retorna todas as células H3 (representadas como inteiros longos ou cadeias de caracteres) dentro da distância da grade k
da célula H3 de origem, juntamente com a distância da célula H3 de origem.
Sintaxe
h3_kringdistances ( h3CellIdExpr, kExpr )
Argumentos
h3CellIdExpr
: uma expressão BIGINT ou uma expressão de CADEIA de caracteres hexadecimal que representa uma ID de célula H3.kExpr
: uma expressão INTEGER que representa a distância da grade.kExpr
não deve ser negativa.
Retornos
Uma MATRIZ de structs nomeados com dois campos, nomeados cellid
e distance
, respectivamente, onde o primeiro campo no struct é uma ID de célula H3 (representada como um inteiro longo ou cadeia de caracteres) e o segundo campo no struct é a distância da célula H3 de origem (representada como um inteiro). O tipo para as IDs de célula H3 na saída é o mesmo que o tipo de h3CellIdExpr
.
Os elementos na MATRIZ retornada são classificados com relação à distância da célula H3 de origem. Os elementos correspondentes à mesma distância na MATRIZ retornada podem ser retornados em qualquer ordem.
A função retornará NULL se qualquer uma das expressões de entrada for NULL.
A função faz validação parcial se o argumento de entrada for uma ID de célula H3 válida. Uma condição necessária, mas não suficiente para uma ID H3 válida, é que seu valor esteja entre 0x08001fffffffffff
e 0x08ff3b6db6db6db6
.
O comportamento da função será indefinido se a ID da célula de entrada não for uma ID de célula válida.
Se o valor da distância da grade for zero, a matriz retornada conterá um valor único igual à ID da célula H3 de entrada.
Condições de erro
- Se
h3CellIdExpr
for uma STRING que não pode ser convertida em um BIGINT ou corresponder a um valor BIGINT menor que0x08001fffffffffff
ou maior que0x08ff3b6db6db6db6
, a função retorna H3_INVALID_CELL_ID - Se
kExpr
for negativo, a função retornará H3_INVALID_GRID_DISTANCE_VALUE
Exemplos
-- Simple example where the first argument is a BIGINT.
> SELECT h3_kringdistances(599686042433355775, 1)
[{"cellid":599686042433355775,"distance":0},{"cellid":599686030622195711,"distance":1},{"cellid":599686044580839423,"distance":1},{"cellid":599686038138388479,"distance":1},{"cellid":599686043507097599,"distance":1},{"cellid":599686015589810175,"distance":1},{"cellid":599686014516068351,"distance":1}]
-- Simple example where the first argument is a STRING.
> SELECT h3_kringdistances('85283473fffffff', 1)
[{"cellid":"85283473fffffff","distance":0},{"cellid":"85283447fffffff","distance":1},{"cellid":"8528347bfffffff","distance":1},{"cellid":"85283463fffffff","distance":1},{"cellid":"85283477fffffff","distance":1},{"cellid":"8528340ffffffff","distance":1},{"cellid":"8528340bfffffff","distance":1}]
-- First input is an invalid H3 cell ID.
> SELECT h3_kringdistances(0, 0)
[H3_INVALID_CELL_ID] 0 is not a valid H3 cell ID
-- Second input is an invalid grid distance value.
> SELECT h3_kringdistances('85283473fffffff', -1)
[H3_INVALID_GRID_DISTANCE_VALUE] H3 grid distance -1 must be non-negative