Função h3_try_distance
Aplica-se a: SQL do Databricks Databricks Runtime 13.3 LTS e versões posteriores
Essa função se comporta de forma semelhante à h3_distance, exceto que NULL é retornado em vez de um erro se a distância da grade entre as duas IDs de célula H3 de entrada da mesma resolução for indefinida. Especificamente, ele retorna a distância da grade das duas IDs de célula H3 de entrada, que devem ser da mesma resolução ou NULL se a distância for indefinida.
Sintaxe
h3_try_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 ou NULL se a distância for indefinida.
A função retorna NULL se qualquer uma das expressões de entrada é NULL.
Ele valida parcialmente os argumentos de entrada para determinar se eles representam IDs de célula H3 válidas. 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
ouh3CellId2Expr
for uma CADEIA DE CARACTERES que não pode ser convertida em um BIGINT ou corresponde a um valor BIGINT menor que0x08001fffffffffff
ou maior que0x08ff3b6db6db6db6
, a função retorna H3_INVALID_CELL_ID. - Se as duas células H3 de entrada forem de resolução diferente, a função retornará H3_UNDEFINED_GRID_DISTANCE.
- Se a distância da grade entre duas células H3 da mesma resolução for indefinida, a função retornará NULL. A distância da grade pode ser indefinida por qualquer um dos seguintes motivos:
- 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))
NULL
-- 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)
NULL
-- Distance between two hexagons separated by a pentagon.
> SELECT h3_distance(590112494832320511, 590112632271273983)
NULL