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 的必要不充分条件是其值介于 0x08001fffffffffff0x08ff3b6db6db6db6 之间。 如果输入单元格 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