Función h3_polyfillash3string
Se aplica a Databricks SQL Databricks Runtime 11.3 LTS y versiones posteriores
Devuelve una ARRAY de identificadores de celda H3 (representados como STRING) correspondientes a hexágonos o pentágonos, de la resolución especificada, contenidos en la geografía del área de entrada.
Sintaxis
h3_polyfillash3string ( geographyExpr, resolutionExpr )
Argumentos
geographyExpr
: expresión BINARIA o de CADENA que representa una geografía de área (de polígono o varios polígonos) 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 cuyo valor se espera que esté entre0
y15
inclusive, especificando la resolución de los id. de celdas H3.
Devoluciones
Matriz de valores STRING correspondientes a los id. de celda H3, de la resolución especificada, que contiene la geografía de área de entrada.
La función devuelve NULL si alguna de las expresiones de entrada es NULL. Si el primer argumento de entrada es de tipo BINARY, se espera que el valor de entrada sea la descripción WKB de un polígono o un multipolígono. Si el primer argumento de entrada es de tipo STRING, se espera que el valor de entrada sea la descripción de WKT o de GeoJSON de un polígono o un multipolígono. La dimensión del polígono o el multipolígono de entrada puede ser 2D, 3DZ, 3DM o 4D.
Condiciones de error
- Si
geographyExpr
es de tipo BINARY y el valor es un WKB no válido o no representa un polígono o un multipolígono, la función devuelve WKB_PARSE_ERROR. - Si
geographyExpr
es de tipo STRING y el valor es un WKT no válido o no representa un polígono o un multipolígono, la función devuelve WKT_PARSE_ERROR. - Si
geographyExpr
es de tipo STRING y el valor es un GeoJSON no válido o no representa un polígono o un multipolígono, la función devuelve GEOJSON_PARSE_ERROR. - Si
resolutionExpr
es menor que0
o mayor que15
, la función devuelve H3_INVALID_RESOLUTION_VALUE.
Ejemplos
-- Simple example where the input is a triangle in WKT format.
> SELECT h3_polyfillash3string('POLYGON((-122.4194 37.7749,-118.2437 34.0522,-74.0060 40.7128,-122.4194 37.7749))', 2)
[82268ffffffffff,82269ffffffffff,822987fffffffff,8226e7fffffffff,822997fffffffff,8226f7fffffffff,822657fffffffff,8229affffffffff]
-- Simple example where the input is a triangle in hexadecimal WKB format.
> SELECT h3_polyfillash3string(unhex('0103000000010000000400000050fc1873d79a5ec0d0d556ec2fe342404182e2c7988f5dc0f46c567dae064140aaf1d24d628052c05e4bc8073d5b444050fc1873d79a5ec0d0d556ec2fe34240'), 2)
[82268ffffffffff,82269ffffffffff,822987fffffffff,8226e7fffffffff,822997fffffffff,8226f7fffffffff,822657fffffffff,8229affffffffff]
-- Feeding an empty linestring in GeoJSON format (as opposed to a polygon or multipolygon).
> SELECT h3_polyfillash3string('{"type":"LineString","coordinates":[]}', 2)
[GEOJSON_PARSE_ERROR] Error parsing GeoJSON: Invalid or unsupported type '"LineString"' at position 9
-- Feeding an invalid WKB (invalid endianness value)
> SELECT h3_polyfillash3string(unhex('020700000000'), 2)
[WKB_PARSE_ERROR] Error parsing WKB: Invalid byte order 2 at position 1
-- Feeding an invalid polygon in WKT (polygon is not closed)
> SELECT h3_polyfillash3string('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
-- Resolution is out of range.
> SELECT h3_polyfillash3string('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