Funktionen h3_hexring
Gäller för: Databricks SQL Databricks Runtime 11.3 LTS och senare
Returnerar en matris med H3-celler som bildar en ihålig sexhörningsring centrerad vid H3-ursprungscellen och som är på rutnätsavstånd k
från ursprungscellen H3.
Syntax
h3_hexring ( h3CellIdExpr, kExpr )
Argument
h3CellIdExpr
: Ett BIGINT-uttryck eller ett hexadecimalt STRING-uttryck som representerar ett H3-cell-ID.kExpr
: Ett INTEGER-uttryck som representerar rutnätsavståndet.kExpr
måste vara icke-negativ.
Returer
En MATRIS med värden av samma typ som uttryckets h3CellIdExpr
typ, som motsvarar de H3-cell-ID:er som har samma upplösning som indata-H3-cellen och som bildar en ihålig ring centrerad vid ursprungscellen H3 på avstånd k
, där k
är värdet för kExpr
.
Funktionen returnerar NULL om något av indatauttrycken är NULL.
Funktionen validerar delvis om indataargumentet är ett giltigt H3-cell-ID. Ett nödvändigt men inte tillräckligt villkor för ett giltigt H3-ID är att dess värde är mellan 0x08001fffffffffff
och 0x08ff3b6db6db6db6
.
Funktionens beteende är odefinierat om indatacells-ID:t inte är ett giltigt cell-ID.
Om värdet för rutnätsavståndet är noll innehåller den returnerade matrisen ett enda värde som är lika med indata-H3-cell-ID:t.
Feltillstånd
- Om
h3CellIdExpr
är en STRÄNG som inte kan konverteras till en BIGINT eller motsvarar ett BIGINT-värde som är mindre än eller större än0x08001fffffffffff
0x08ff3b6db6db6db6
returnerar funktionen H3_INVALID_CELL_ID. - Om
kExpr
är negativt returnerar funktionen H3_INVALID_GRID_DISTANCE_VALUE. - Om det finns en pentagon någonstans i
k
ursprungscellens -ring returnerar funktionen H3_PENTAGON_ENCOUNTERED_ERROR.
Exempel
-- 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