次の方法で共有


h3_hexring 関数

適用対象: check marked yes 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 式の型と同じ型の値の配列。kkExpr の値です。

いずれかの入力式が NULL の場合、この関数は NULL を返します。 この関数は、入力引数が有効な H3 セル ID であるかどうかに関する部分的な検証を行います。 有効な H3 ID の必要条件 (ただし、十分条件ではない) は、その値が 0x08001fffffffffff0x08ff3b6db6db6db6 の間にあることです。 入力セル 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