Compartilhar via


Função h3_distance

Aplica-se a:verificação marcada como sim Databricks SQL verificação marcada como sim Databricks Runtime 11.3 LTS e superior

Retorna a distância da grade das duas IDs de célula H3 de entrada.

Sintaxe

h3_distance ( h3CellId1Expr, h3CellId2Expr )

Argumentos

  • h3CellId1Expr: uma expressão BIGINT ou uma expressão de CADEIA de caracteres hexadecimal que representa uma ID de célula H3.
  • h3CellId2Expr: uma expressão BIGINT ou uma expressão de CADEIA de caracteres hexadecimal que representa uma ID de célula H3.

Retornos

Um valor BIGINT que é a distância da grade das duas células H3 de entrada, que devem ter a mesma resolução.

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 está entre 0x08001fffffffffff e 0x08ff3b6db6db6db6. O comportamento da função será indefinido se qualquer uma das duas IDs de célula de entrada não for uma ID de célula válida.

Condições de erro

  • Se h3CellId1Expr ou h3CellId2Expr for uma CADEIA DE CARACTERES 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 a distância da grade for indefinida, a função retornará H3_UNDEFINED_GRID_DISTANCE. A distância da grade pode ser indefinida por qualquer um dos seguintes motivos:
    • As duas células H3 de entrada são de resolução diferente.
    • Qualquer uma das duas células H3 de entrada é uma célula pentagonal.
    • As duas células H3 são separadas por uma célula pentagonal.
    • As duas células H3 estão muito distantes uma das outra.

Exemplos

-- Example where the two arguments are BIGINTs representing H3 cells.
> SELECT h3_distance(599686030622195711, 599686015589810175);
 2

-- Example where the two arguments are hexadecimal STRINGs representing H3 cells.
> SELECT h3_distance('85283447fffffff', '8528340ffffffff')
 2

-- Example of two cells that too far apart from each other.
> SELECT h3_distance(h3_longlatash3(-120, 45, 13), h3_longlatash3(120, 45, 13))
  [H3_UNDEFINED_GRID_DISTANCE] H3 grid distance between 635723017894513407 and 635869868887430591 is undefined

-- Example of two cells with different resolutions.
> SELECT h3_distance(h3_longlatash3(120, 45, 13), h3_longlatash3(120, 45, 12));
  [H3_UNDEFINED_GRID_DISTANCE] H3 grid distance between 635869868887430591 and 631366269260060159 is undefined

-- First cell ID is a pentagon.
> SELECT h3_distance(590112357393367039, 590678880759578623)
  [H3_UNDEFINED_GRID_DISTANCE] H3 grid distance between 590112357393367039 and 590678880759578623 is undefined

-- Distance between two hexagons separated by a pentagon.
> SELECT h3_distance(590112494832320511, 590112632271273983)
  [H3_UNDEFINED_GRID_DISTANCE] H3 grid distance between 590112494832320511 and 590112632271273983 is undefined