h3_kring 函数

适用于:check marked yes Databricks SQL check marked yes Databricks Runtime 11.2 及更高版本

返回原始单元格(网格)距离 k 内的 H3 单元格。 这些 H3 单元格的集称为原始单元格的 k-环。

语法

h3_kring ( h3CellIdExpr, kExpr )

参数

  • h3CellIdExpr:表示 H3 单元格 ID 的 BIGINT 表达式或十六进制 STRING 表达式。
  • kExpr:表示网格距离的 INTEGER 表达式。 kExpr 必须为非负值。

返回

h3CellIdExpr 表达式类型相同的值数组,对应于与输入 H3 单元格具有相同分辨率且在输入 H3 单元格的网格距离 k 内的 H3 单元格 ID,其中 kkExpr 的值。

如果任一输入表达式为 NULL,则该函数返回 NULL。 该函数对输入参数是否为有效的 H3 单元格 ID 进行部分验证。 有效 H3 ID 的必要不充分条件是其值介于 0x08001fffffffffff0x08ff3b6db6db6db6 之间。 如果输入单元格 ID 不是有效的单元格 ID,则表示该函数的行为未定义。 如果网格距离的值为零,则返回的数组包含一个等于输入 H3 单元格 ID 的值。

错误条件

  • 如果 h3CellIdExpr 是无法转换为 BIGINT 的 STRING 或对应于小于 0x08001fffffffffff 或大于 0x08ff3b6db6db6db6 的 BIGINT 值,则该函数返回 H3_INVALID_CELL_ID
  • 如果 kExpr 为负数,则该函数返回 H3_INVALID_GRID_DISTANCE_VALUE

示例

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

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

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

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