h3_hexring 函数

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

返回一个 H3 单元格数组,形成一个以原点 H3 单元格为中心的空心六边形环,并且与原点 H3 单元格的网格距离为 k

语法

h3_hexring ( h3CellIdExpr, kExpr )

参数

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

返回

h3CellIdExpr 表达式类型相同的值的 ARRAY,对应于与输入 H3 单元格具有相同分辨率的 H3 单元格 ID,以及在距离 k 处形成以原点 H3 单元格为中心的空心环的 H3 单元格 ID,其中 kkExpr 的值。

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

错误条件

示例

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

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

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

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

-- The input cell is a hexagonal cell adjacent to a pentagonal cell (the 2-ring of the hexagonal cell contains the pentagon).
> SELECT H3_HexRing('8007fffffffffff', 2)
  [H3_PENTAGON_ENCOUNTERED_ERROR] A pentagon was encountered while computing the hex ring of '8007fffffffffff' with grid distance 2