A h3_kringdistances
függvény
A következőkre vonatkozik: Databricks SQL Databricks Runtime 11.3 LTS és újabb
Visszaadja az összes H3 cellát (hosszú egész számként vagy sztringként jelölve) a H3 forráscellától való rácstávolságon k
belül, valamint a forrás H3 cellától való távolságukat.
Syntax
h3_kringdistances ( h3CellIdExpr, kExpr )
Argumentumok
h3CellIdExpr
: BIGINT-kifejezés vagy H3 cellaazonosítót képviselő hexadecimális SZTRING-kifejezés.kExpr
: A rács távolságát jelképező EGÉSZ SZÁM kifejezés.kExpr
nem lehet negatív.
Válaszok
Az elnevezett szerkezetek tömbje két mezővel, névvel cellid
, illetve distance
, ahol az struktúra első mezője egy H3 cellaazonosító (hosszú egész számként vagy sztringként jelenik meg), a szerkezet második mezője pedig a H3 forráscellától való távolsága (egész számként jelölve). A kimenetben lévő H3 cellaazonosítók típusa megegyezik a típusával h3CellIdExpr
.
A visszaadott TÖMB elemei a H3 forráscellától való távolságuk alapján vannak rendezve. A visszaadott TÖMB azonos távolságának megfelelő elemek bármilyen sorrendben visszaadhatók.
A függvény null értéket ad vissza, ha a bemeneti kifejezések bármelyike NULL.
A függvény részlegesen ellenőrzi, hogy a bemeneti argumentum érvényes H3 cellaazonosító-e. Egy érvényes H3-azonosító szükséges, de nem megfelelő feltétele, hogy értéke a és a között 0x08001fffffffffff
0x08ff3b6db6db6db6
legyen.
A függvény működése nincs meghatározva, ha a bemeneti cellaazonosító nem érvényes cellaazonosító.
Ha a rács távolsága nulla, a visszaadott tömb egyetlen értéket tartalmaz, amely megegyezik a bemeneti H3 cellaazonosítóval.
Hibafeltételek
- Ha
h3CellIdExpr
olyan SZTRING, amely nem konvertálható BIGINT-vé, vagy nagyobb vagy0x08ff3b6db6db6db6
kisebb0x08001fffffffffff
BIGINT-értéknek felel meg, a függvény H3_INVALID_CELL_ID - Ha
kExpr
negatív, a függvény H3_INVALID_GRID_DISTANCE_VALUE
Példák
-- 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