h3_distance 関数

適用対象: check marked yes Databricks SQL Databricks Runtime 11.3 LTS 以降

2 つの入力 H3 セル ID のグリッド距離を返します。

構文

h3_distance ( h3CellId1Expr, h3CellId2Expr )

引数

  • h3CellId1Expr: H3 セル ID を表す BIGINT 式または 16 進数の STRING 式。
  • h3CellId2Expr: H3 セル ID を表す BIGINT 式または 16 進数の STRING 式。

戻り値

同じ解像度を持つと思われる 2 つの入力 H3 セルのグリッド距離である BIGINT 値。

いずれかの入力式が NULL の場合、この関数は NULL を返します。 この関数は、入力引数が有効な H3 セル ID であるかどうかに関する部分的な検証を行います。 有効な H3 ID の必要条件 (ただし、十分条件ではない) は、その値が 0x08001fffffffffff0x08ff3b6db6db6db6 の間にあることです。 2 つの入力セル ID のいずれかが有効なセル ID でない場合、関数の動作は未定義です。

エラー条件

  • h3CellId1Expr または h3CellId2Expr が BIGINT に変換できない STRING の場合、または、0x08001fffffffffff より小さいか 0x08ff3b6db6db6db6 より大きい BIGINT 値に対応する STRING の場合、関数は H3_INVALID_CELL_ID を返します。
  • グリッド距離が未定義の場合、関数は H3_UNDEFINED_GRID_DISTANCE を返します。 グリッド距離は、次のいずれかの理由で未定義にすることができます。
    • 2 つの入力 H3 セルの解像度が異なる。
    • 2 つの入力 H3 セルのいずれか 1 つが五角形セルである。
    • 2 つの H3 セルが五角形セルによって分離される。
    • 2 つの H3 セルが互いに離れすぎている。

-- Example where the two arguments are BIGINTs representing H3 cells.
> SELECT h3_distance(599686030622195711, 599686015589810175);
 2

-- Example where the two arguments are hexadecimal STRINGs representing H3 cells.
> SELECT h3_distance('85283447fffffff', '8528340ffffffff')
 2

-- Example of two cells that too far apart from each other.
> SELECT h3_distance(h3_longlatash3(-120, 45, 13), h3_longlatash3(120, 45, 13))
  [H3_UNDEFINED_GRID_DISTANCE] H3 grid distance between 635723017894513407 and 635869868887430591 is undefined

-- Example of two cells with different resolutions.
> SELECT h3_distance(h3_longlatash3(120, 45, 13), h3_longlatash3(120, 45, 12));
  [H3_UNDEFINED_GRID_DISTANCE] H3 grid distance between 635869868887430591 and 631366269260060159 is undefined

-- First cell ID is a pentagon.
> SELECT h3_distance(590112357393367039, 590678880759578623)
  [H3_UNDEFINED_GRID_DISTANCE] H3 grid distance between 590112357393367039 and 590678880759578623 is undefined

-- Distance between two hexagons separated by a pentagon.
> SELECT h3_distance(590112494832320511, 590112632271273983)
  [H3_UNDEFINED_GRID_DISTANCE] H3 grid distance between 590112494832320511 and 590112632271273983 is undefined