Funktionen h3_kringdistances
Gäller för: Databricks SQL Databricks Runtime 11.3 LTS och senare
Returnerar alla H3-celler (representeras som långa heltal eller strängar) inom rutnätsavståndet k
från ursprungscellen H3, tillsammans med avståndet från ursprungscellen H3.
Syntax
h3_kringdistances ( 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 namngivna structs med två fält, med namnet cellid
respektive distance
, där det första fältet i structen är ett H3-cell-ID (representerat som ett långt heltal eller en sträng) och det andra fältet i structen är dess avstånd från H3-ursprungscellen (representeras som ett heltal). Typen för H3-cell-ID:t i utdata är samma som typen av h3CellIdExpr
.
Elementen i den returnerade MATRISen sorteras med avseende på deras avstånd från ursprungscellen H3. De element som motsvarar samma avstånd i den returnerade MATRISen kan returneras i valfri ordning.
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 än0x08001fffffffffff
eller större än0x08ff3b6db6db6db6
returnerar funktionen H3_INVALID_CELL_ID - Om
kExpr
är negativt returnerar funktionen H3_INVALID_GRID_DISTANCE_VALUE
Exempel
-- Simple example where the first argument is a BIGINT.
> SELECT h3_kringdistances(599686042433355775, 1)
[{"cellid":599686042433355775,"distance":0},{"cellid":599686030622195711,"distance":1},{"cellid":599686044580839423,"distance":1},{"cellid":599686038138388479,"distance":1},{"cellid":599686043507097599,"distance":1},{"cellid":599686015589810175,"distance":1},{"cellid":599686014516068351,"distance":1}]
-- Simple example where the first argument is a STRING.
> SELECT h3_kringdistances('85283473fffffff', 1)
[{"cellid":"85283473fffffff","distance":0},{"cellid":"85283447fffffff","distance":1},{"cellid":"8528347bfffffff","distance":1},{"cellid":"85283463fffffff","distance":1},{"cellid":"85283477fffffff","distance":1},{"cellid":"8528340ffffffff","distance":1},{"cellid":"8528340bfffffff","distance":1}]
-- First input is an invalid H3 cell ID.
> SELECT h3_kringdistances(0, 0)
[H3_INVALID_CELL_ID] 0 is not a valid H3 cell ID
-- Second input is an invalid grid distance value.
> SELECT h3_kringdistances('85283473fffffff', -1)
[H3_INVALID_GRID_DISTANCE_VALUE] H3 grid distance -1 must be non-negative