適用対象:
Databricks SQL
Databricks Runtime 11.3 LTS 以降
起点 H3 セルを中心とする中空六角形のリングを形成し、起点 H3 セルからグリッド距離 k にある H3 セルの配列を返します。
構文
h3_hexring ( h3CellIdExpr, kExpr )
引数
-
h3CellIdExpr: H3 セル ID を表す BIGINT 式または 16 進数の STRING 式。 -
kExpr: グリッド距離を表す INTEGER 式。kExprは負以外でなければなりません。
戻り値
h3CellIdExpr式の型と同じ型の値の配列。入力 H3 セルと同じ解像度を持ち、kの原点 H3 セルを中心とする中空リングを形成する H3 セル ID に対応します。ここで、kはkExprの値です。
いずれかの入力式が NULL の場合、この関数は NULL を返します。
この関数は、入力引数が有効な H3 セル ID であるかどうかに関する部分的な検証を行います。 有効な H3 ID の必要条件 (ただし、十分条件ではない) は、その値が 0x08001fffffffffff と 0x08ff3b6db6db6db6 の間にあることです。
入力セル ID が有効なセル ID でない場合、関数の動作は未定義です。
グリッド距離の値が 0 の場合、返される配列には入力 H3 セル ID と等しい 1 つの値が含まれます。
エラー条件
-
h3CellIdExprが BIGINT に変換できない STRING の場合、または、0x08001fffffffffffより小さいか0x08ff3b6db6db6db6より大きい BIGINT 値に対応する STRING の場合、関数は H3_INVALID_CELL_ID を返します。 -
kExprが負の場合、関数は H3_INVALID_GRID_DISTANCE_VALUE を返します。 - 起点セルの
k-ring のどこかに五角形がある場合、関数は H3_PENTAGON_ENCOUNTERED_ERROR を返します。
例
-- 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