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,其中 k 是 kExpr 的值。

如果任一输入表达式为 NULL,则该函数返回 NULL。 该函数对输入参数是否为有效的 H3 单元格 ID 进行部分验证。 有效 H3 ID 的必要不充分条件是其值介于 0x08001fffffffffff 和 0x08ff3b6db6db6db6 之间。 如果输入单元格 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