Condividi tramite


Funzione h3_hexring

Si applica a: segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime 11.3 LTS e versioni successive

Restituisce una matrice di celle H3 che formano un anello esagonale vuoto centrato nella cella H3 di origine e che si trovano a distanza k griglia dalla cella H3 di origine.

Sintassi

h3_hexring ( h3CellIdExpr, kExpr )

Argomenti

  • h3CellIdExpr: espressione BIGINT o espressione STRING esadecimale che rappresenta un ID cella H3.
  • kExpr: espressione INTEGER che rappresenta la distanza della griglia. kExpr deve essere non negativo.

Valori restituiti

Matrice di valori dello stesso tipo del tipo dell'espressione h3CellIdExpr , corrispondente agli ID cella H3 che hanno la stessa risoluzione della cella H3 di input e che formano un anello vuoto centrato alla cella H3 di origine a distanza k, dove k è il valore di kExpr.

La funzione restituisce NULL se una delle espressioni di input è NULL. La funzione esegue la convalida parziale relativa al fatto che l'argomento di input sia un ID cella H3 valido. Una condizione necessaria, ma non sufficiente per un ID H3 valido è che il relativo valore è compreso tra 0x08001fffffffffff e 0x08ff3b6db6db6db6. Il comportamento della funzione non è definito se l'ID cella di input non è un ID cella valido. Se il valore della distanza della griglia è zero, la matrice restituita contiene un singolo valore uguale all'ID cella H3 di input.

Condizioni di errore

  • Se h3CellIdExpr è un valore STRING che non può essere convertito in bigint o corrisponde a un valore BIGINT minore o maggiore di 0x08001fffffffffff 0x08ff3b6db6db6db6, la funzione restituisce H3_INVALID_CELL_ID.
  • Se kExpr è negativo, la funzione restituisce H3_INVALID_GRID_DISTANCE_VALUE.
  • Se c'è un pentagono ovunque nell'anello kdella cella di origine, la funzione restituisce H3_PENTAGON_ENCOUNTERED_ERROR.

Esempi

-- 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