h3_hexring
関数
適用対象: Databricks SQL Databricks Runtime 11.3 LTS 以降
起点 H3 セルを中心とする中空六角形のリングを形成し、起点 H3 セルからグリッド距離 k
にある H3 セルの配列を返します。
構文
h3_hexring ( h3CellIdExpr, kExpr )
引数
h3CellIdExpr
: H3 セル ID を表す BIGINT 式または 16 進数の STRING 式。kExpr
: グリッド距離を表す INTEGER 式。kExpr
は負以外でなければなりません。
戻り値
入力 H3 セルと同じ解像度を持ち、起点 H3 セルを中心とする中空のリングを形成し、k
の距離にある H3 セル ID に対応する、h3CellIdExpr
式の型と同じ型の値の配列。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