Funzione h3_tessellateaswkb
Si applica a: Databricks SQL Databricks Runtime 14.2 e versioni successive
Restituisce una tassellatura dell'area geografica di input utilizzando celle H3 alla risoluzione specificata. La tassellatura è rappresentata da una MATRICE di struct, ognuno dei quali rappresenta un elemento della tassellatura. Ogni elemento della tassellatura è costituito da un ID cella H3 (rappresentato come intero lungo), un valore booleano che indica se l'area geografica di input copre completamente la cella e un valore BINARY corrispondente alla descrizione WKB dell'intersezione dell'area geografica di input con la cella H3.
Le celle H3 restituite formano collettivamente un insieme minimo di copertura di esagoni o pentagoni, alla risoluzione specificata, che coprono completamente la geografia di input. Le aree geografiche restituite (tramite le relative rappresentazioni WKB ) formano una tassellatura dell'area geografica di input.
Sintassi
h3_tessellateaswkb ( geographyExpr, resolutionExpr )
Argomenti
geographyExpr
: espressione BINARY o STRING che rappresenta un'area geografica in WKB, WKT o GeoJSON. La geografia dovrebbe avere coordinate di longitudine e latitudine in gradi che fanno riferimento al sistema di riferimento delle coordinate WGS84 .resolutionExpr
: espressione INT, con un valore compreso tra0
e15
inclusivo, specificando la risoluzione per gli ID cella H3.
Valori restituiti
Matrice di struct denominati con tre campi di tipo BIGINT, BOOLEAN e BINARY, denominati cellid
rispettivamente , core
e chip
, che rappresentano la tassellatura dell'area geografica di input con celle H3 alla risoluzione specificata.
Il primo campo nello struct è un ID cella H3 (rappresentato come un numero intero lungo). Il secondo campo nello struct è un valore booleano che indica se la cella H3 è una cella principale, nel qual caso il valore del campo è true
o meno, nel qual caso il valore del campo è false
. Una cella principale è una cella H3 completamente coperta dall'area geografica di input, ovvero l'intersezione con l'area geografica di input è la cella stessa. Il terzo campo è un valore BINARY che rappresenta la descrizione WKB dell'area geografica che rappresenta l'intersezione dell'area geografica di input e della cella H3. Le celle H3 restituite formano collettivamente un set minimo di copertura dell'area geografica di input. Le aree geografiche, corrispondenti alle descrizioni WKB restituite, formano collettivamente una tassellatura (scomposizione) dell'area geografica di input.
La funzione restituisce NULL
se una delle espressioni di input è NULL
.
Se il primo argomento di input è di tipo BINARY, si prevede che il valore di input sia la descrizione WKB di un punto, una stringa di riga, un poligono, multipoint, multilinestring o multipolygon.
Se il primo argomento di input è di tipo STRING, il valore di input deve essere WKT o la descrizione GeoJSON di un punto, una stringa di riga, un poligono, un multipunto, una multilinestring o un multipolygon.
La dimensione dell'area geografica di input può essere 2D, 3DZ, 3DM o 4D.
Condizioni di errore
- Se
geographyExpr
è di tipo BINARY e il valore è un WKB non valido o rappresenta una raccolta geometry, la funzione restituisce WKB_PARSE_ERROR. - Se
geographyExpr
è di tipo STRING e il valore è un WKT non valido o rappresenta una raccolta geometry, la funzione restituisce WKT_PARSE_ERROR. - Se
geographyExpr
è di tipo STRING e il valore è un geoJSON non valido o rappresenta una raccolta geometry, la funzione restituisce GEOJSON_PARSE_ERROR. - Se
resolutionExpr
è minore o maggiore di0
15
, la funzione restituisce H3_INVALID_RESOLUTION_VALUE.
Esempi
> 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