h3_kring
函数
适用于: Databricks SQL Databricks Runtime 11.3 LTS 及更高版本
返回原始单元格(网格)距离 k
内的 H3 单元格。 这些 H3 单元格的集称为原始单元格的 k
-环。
语法
h3_kring ( h3CellIdExpr, kExpr )
参数
h3CellIdExpr
:表示 H3 单元格 ID 的 BIGINT 表达式或十六进制 STRING 表达式。kExpr
:表示网格距离的 INTEGER 表达式。kExpr
必须为非负值。
返回
与 h3CellIdExpr
表达式类型相同的值数组,对应于与输入 H3 单元格具有相同分辨率且在输入 H3 单元格的网格距离 k
内的 H3 单元格 ID,其中 k
是 kExpr
的值。
如果任一输入表达式为 NULL,则该函数返回 NULL。
该函数对输入参数是否为有效的 H3 单元格 ID 进行部分验证。 有效 H3 ID 的必要不充分条件是其值介于 0x08001fffffffffff
和 0x08ff3b6db6db6db6
之间。
如果输入单元格 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