h3_toparent 函数

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

以指定的分辨率返回输入 H3 单元格的父 H3 单元格。

语法

h3_toparent ( h3cellIdExpr, resolutionExpr )

参数

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

返回

h3CellIdExpr 表达式类型相同类型的值,对应于指定分辨率下输入 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 小于 0 或大于 h3_resolution(h3CellIdExpr),则该函数返回 H3_INVALID_RESOLUTION_VALUE

示例

-- Simple example taking a long as input.
> SELECT h3_toparent(599686042433355775, 0)
  577199624117288959

-- Simple example taking a valid hexadecimal string as input.
> SELECT h3_toparent('85283473fffffff', 0)
  8029fffffffffff

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

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