Funkce h3_hexring
Platí pro: Databricks SQL Databricks Runtime 11.3 LTS a vyšší
Vrátí matici buněk H3, které tvoří prázdný šestiúhelník uprostřed buňky původu H3 a které jsou ve vzdálenosti k
mřížky od původní buňky H3.
Syntaxe
h3_hexring ( h3CellIdExpr, kExpr )
Argumenty
h3CellIdExpr
: Výraz BIGINT nebo šestnáctkový výraz STRING představující ID buňky H3.kExpr
: Výraz INTEGER představující vzdálenost mřížky.kExpr
musí být nezáporná.
Návraty
POLE hodnot stejného typu jako typ výrazu h3CellIdExpr
, které odpovídají ID buněk H3, které mají stejné rozlišení jako vstupní buňka H3 a které tvoří prázdný prstenec na střed v buňce původu H3 ve vzdálenosti k
, kde k
je hodnota kExpr
.
Funkce vrátí hodnotu NULL, pokud některý ze vstupních výrazů má hodnotu NULL.
Funkce provádí částečné ověření týkající se toho, jestli je vstupním argumentem platné ID buňky H3. Nezbytným, ale ne dostatečným předpokladem platného ID H3 je, že jeho hodnota je mezi 0x08001fffffffffff
a 0x08ff3b6db6db6db6
.
Chování funkce není definováno, pokud id vstupní buňky není platné ID buňky.
Pokud je hodnota vzdálenosti mřížky nula, vrácená matice obsahuje jednu hodnotu, která se rovná vstupnímu ID buňky H3.
Chybové podmínky
- Pokud
h3CellIdExpr
je řetězec, který nelze převést na BIGINT nebo odpovídá hodnotě BIGINT, která je menší nebo větší než0x08001fffffffffff
0x08ff3b6db6db6db6
, vrátí funkce H3_INVALID_CELL_ID. - Pokud
kExpr
je záporná, vrátí funkce H3_INVALID_GRID_DISTANCE_VALUE. - Pokud je v kruhu
k
původu kdekoli v kruhu původu, funkce vrátí H3_PENTAGON_ENCOUNTERED_ERROR.
Příklady
-- 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