h3_tochildren 函数

适用于:勾选“是” Databricks SQL 勾选“是” Databricks Runtime 11.3 LTS 及更高版本

返回指定分辨率下输入 H3 单元格的子 H3 单元格的数组。

语法

h3_tochildren ( h3cellIdExpr, resolutionExpr )

参数

  • h3CellIdExpr:表示 H3 单元格 ID 的 BIGINT 表达式或十六进制 STRING 表达式。
  • resolutionExpr:一个 INT 表达式,其值应介于 h3_resolution(h3CellIdExpr) 和 15 之间(含),它指定子 H3 单元格 ID 的分辨率。

返回

与 h3CellIdExpr 表达式类型相同类型的值的 ARRAY,对应于指定分辨率下输入 H3 单元格的子 H3 单元格 ID。

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

错误条件

  • 如果 h3CellIdExpr 是无法转换为 BIGINT 的 STRING 或对应于小于 0x08001fffffffffff 或大于 0x08ff3b6db6db6db6 的 BIGINT 值,则该函数返回 H3_INVALID_CELL_ID。
  • 如果 resolutionExpr 小于 h3_resolution(h3CellIdExpr) 或大于 15,则该函数返回 H3_INVALID_RESOLUTION_VALUE。

示例

-- Simple example taking a long as input.
> SELECT h3_tochildren(599686042433355775, 6);
  [604189641121202175,604189641255419903,604189641389637631,604189641523855359,604189641658073087,604189641792290815,604189641926508543]

-- Simple example taking a hexadecimal string as input.
> SELECT h3_tochildren('85283473fffffff', 6);
  [862834707ffffff,86283470fffffff,862834717ffffff,86283471fffffff,862834727ffffff,86283472fffffff,862834737ffffff]

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

-- Second input is an invalid resolution value.
> SELECT h3_tochildren('85283473fffffff', 0);
  [H3_INVALID_RESOLUTION_VALUE] H3 resolution 0 must be between 5 and 15, inclusive