Compartilhar via


Função h3_hexring

Aplica-se a:verificação marcada como sim SQL do Databricks verificação marcada como sim Databricks Runtime 11.3 LTS e versões posteriores

Retorna uma matriz de células H3 que formam um anel hexagonal oco centralizado na célula H3 de origem e que estão a uma distância da grade k da célula H3 de origem.

Sintaxe

h3_hexring ( 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 valores do mesmo tipo que o tipo da expressão h3CellIdExpr, correspondente às IDs de célula H3 que têm a mesma resolução que a célula H3 de entrada e formam um anel oco centralizado na célula H3 de origem a uma distância de k, onde k é o valor de kExpr.

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 corresponde a um valor BIGINT menor que 0x08001fffffffffff ou maior que 0x08ff3b6db6db6db6, a função retorna H3_INVALID_CELL_ID.
  • Se kExpr for negativo, a função retornará H3_INVALID_GRID_DISTANCE_VALUE.
  • Se houver um pentágono em qualquer lugar no k-anel da célula de origem, a função retornará H3_PENTAGON_ENCOUNTERED_ERROR.

Exemplos

-- Simple example where the first argument is a BIGINT.
> SELECT h3_hexring(599686042433355775, 1)
  [599686014516068351,599686030622195711,599686044580839423,599686038138388479,599686043507097599,599686015589810175]

-- Simple example where the first argument is a STRING.
> SELECT h3_hexring('85283473fffffff', 1)
  [8528340bfffffff,85283447fffffff,8528347bfffffff,85283463fffffff,85283477fffffff,8528340ffffffff]

-- First input is an invalid H3 cell ID.
> SELECT h3_hexring(0, 0)
  [H3_INVALID_CELL_ID] 0 is not a valid H3 cell ID

-- Second input is an invalid grid distance value.
> SELECT h3_hexring('85283473fffffff', -1)
  [H3_INVALID_GRID_DISTANCE_VALUE] H3 grid distance -1 must be non-negative

-- The input cell is a hexagonal cell adjacent to a pentagonal cell (the 2-ring of the hexagonal cell contains the pentagon).
> SELECT H3_HexRing('8007fffffffffff', 2)
  [H3_PENTAGON_ENCOUNTERED_ERROR] A pentagon was encountered while computing the hex ring of '8007fffffffffff' with grid distance 2