h3_tessellateaswkb
Función
Se aplica a: Databricks SQL Databricks Runtime 14.2 y versiones posteriores
Devuelve una teselación de la geografía de entrada mediante celdas H3 en la resolución especificada. La teselación se representa mediante una MATRIZ de estructuras, donde cada una representa un elemento de la teselación. Cada elemento de la teselación consta de un identificador de celda H3 (representado como un entero largo), un valor booleano que indica si la geografía de entrada cubre completamente la celda y un valor BINARIO correspondiente a la descripción WKB de la intersección de la geografía de entrada con la celda H3.
Las celdas H3 devueltas forman colectivamente un conjunto de cobertura mínimo de hexágonos o pentágonos, en la resolución especificada, que cubre completamente la geografía de entrada. Las geografías devueltas (a través de sus representaciones WKB) forman una teselación de la geografía de entrada.
Sintaxis
h3_tessellateaswkb ( geographyExpr, resolutionExpr )
Argumentos
geographyExpr
: expresión BINARY o STRING que representa una geografía en WKB, WKT o GeoJSON. Se espera que la geografía tenga coordenadas de longitud y latitud en grados que hagan referencia al sistema de referencia de coordenadas WGS84.resolutionExpr
: expresión INT, con un valor entre0
e15
inclusivo, que especifica la resolución de los id. de celda H3.
Devoluciones
MATRIZ de estructuras con nombre con tres campos de tipo BIGINT, BOOLEANO y BINARIO, denominados cellid
, core
y chip
, respectivamente, que representan la teselación de la geografía de entrada con celdas H3 en la resolución especificada.
El primer campo de la estructura es un identificador de celda H3 (representado como un entero largo). El segundo campo de la estructura es un valor booleano que indica si la celda H3 es una celda principal, en cuyo caso el valor del campo es true
, o no, en cuyo caso el valor del campo es false
. Una celda principal es una celda H3 que está totalmente cubierta por la geografía de entrada (es decir, su intersección con la geografía de entrada es la propia celda). El tercer campo es un valor BINARIO que representa la descripción WKB de la geografía que es la intersección de la geografía de entrada y la celda H3. Las celdas H3 devueltas forman colectivamente un conjunto de cobertura mínimo de la geografía de entrada. Las zonas geográficas, correspondientes a las descripciones WKB devueltas, forman colectivamente una teselación (descomposición) de la geografía de entrada.
La función devuelve NULL
si cualquiera de las expresiones de entrada es NULL
.
Si el primer argumento de entrada es de tipo BINARIO, se espera que el valor de entrada sea la descripción WKB de un punto, una cadena de línea, un polígono, un multipunto, una cadena multilínea o un multipolígono.
Si el primer argumento de entrada es de tipo CADENA, se espera que el valor de entrada sea la descripción WKT o GeoJSON de un punto, una cadena de línea, un polígono, un multipunto, una cadena multilínea o un multipolígono.
La dimensión de la geografía de entrada puede ser 2D, 3DZ, 3DM o 4D.
Condiciones del error
- Si
geographyExpr
es de tipo BINARIO y el valor es un WKB no válido o representa una recopilación de geometría, la función devuelve WKB_PARSE_ERROR. - Si
geographyExpr
es de tipo CADENA y el valor es un WKT no válido o representa una recopilación de geometría, la función devuelve WKT_PARSE_ERROR. - Si
geographyExpr
es de tipo CADENA y el valor es un GeoJSON no válido o representa una recopilación de geometría, la función devuelve GEOJSON_PARSE_ERROR. - Si
resolutionExpr
es menor que0
o mayor que15
, la función devuelve H3_INVALID_RESOLUTION_VALUE.
Ejemplos
> SELECT h3_h3tostring(cellid), core, hex(chip) FROM (SELECT inline(h3_tessellateaswkb('MULTIPOINT(20 0,20 10,40 30)', 0))) ORDER BY 1
802dfffffffffff false 010100000000000000000044400000000000003E40
806bfffffffffff false 010400000002000000010100000000000000000034400000000000000000010100000000000000000034400000000000002440
-- Feeding an empty geometry collection in GeoJSON format (geometry collections are not supported).
> SELECT h3_tessellateaswkb('{"type":"GeometryCollection","geometries":[]}', 2)
[GEOJSON_PARSE_ERROR] Error parsing GeoJSON: Invalid or unsupported type '"GeometryCollection"' at position 9 SQLSTATE: 22023
-- Feeding an invalid WKB (invalid endianness value)
> SELECT h3_tessellateaswkb(unhex('020700000000'), 2)
[WKB_PARSE_ERROR] Error parsing WKB: Invalid byte order 2 at position 1 SQLSTATE: 22023
-- Feeding an invalid polygon in WKT (polygon is not closed)
> SELECT h3_tessellateaswkb('POLYGON((-122.4194 37.7749,-118.2437 34.0522,-74.0060 40.7128,-74.0060 40.7128))', 2)
[WKT_PARSE_ERROR] Error parsing WKT: Found non-closed ring at position 80 SQLSTATE: 22023
-- Resolution is out of range.
> SELECT h3_tessellateaswkb('POLYGON((-122.4194 37.7749,-118.2437 34.0522,-74.0060 40.7128,-122.4194 37.7749))', 16)
[H3_INVALID_RESOLUTION_VALUE] H3 resolution 16 must be between 0 and 15, inclusive SQLSTATE: 22023