Compartir vía


Función h3_hexring

Se aplica a: casilla marcada como sí Databricks SQL casilla marcada como Sí Databricks Runtime 11.3 LTS y versiones posteriores

Devuelve una matriz de celdas H3 que forman un anillo hexagonal hueco centrado en la celda H3 de origen y que están a una distancia de cuadrícula k desde la celda H3 de origen.

Sintaxis

h3_hexring ( h3CellIdExpr, kExpr )

Argumentos

  • h3CellIdExpr: expresión BIGINT o expresión STRING hexadecimal que representa un identificador de celda H3.
  • kExpr: expresión INTEGER que representa la distancia de la cuadrícula. kExpr no puede ser negativo.

Devoluciones

Matriz ARRAY de valores del mismo tipo que el tipo de la expresión h3CellIdExpr, correspondiente a los identificadores de la celda H3 que tienen la misma resolución que la celda H3 de entrada y que forman un anillo hueco centrado en la celda H3 de origen a una distancia k, donde k es el valor de kExpr.

La función devuelve NULL si alguna de las expresiones de entrada es NULL. La función realiza una validación parcial con respecto a si el argumento de entrada es un identificador de celda H3 válido. Una condición necesaria, pero no suficiente para un identificador H3 válido es que su valor está entre 0x08001fffffffffff y 0x08ff3b6db6db6db6. El comportamiento de la función no está definido si el identificador de celda de entrada no es un identificador de celda válido. Si el valor de la distancia de la cuadrícula es cero, la matriz devuelta contiene un valor único igual al id. de la celda H3 de entrada.

Condiciones de error

  • Si h3CellIdExpr es una cadena que no se puede convertir en BIGINT o corresponde a un valor BIGINT menor que 0x08001fffffffffff o mayor que 0x08ff3b6db6db6db6, la función devuelve H3_INVALID_CELL_ID.
  • Si kExpr es negativo, la función devuelve H3_INVALID_GRID_DISTANCE_VALUE.
  • Si hay un pentágono en el anillo k de la celda de origen, la función devuelve H3_PENTAGON_ENCOUNTERED_ERROR.

Ejemplos

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