Funkce h3_tessellateaswkb
Platí pro: Databricks SQL Databricks Runtime 14.2 a vyšší
Vrátí tessellation vstupní geografie pomocí buněk H3 v zadaném rozlišení. Tessellation je reprezentována polem struktur, každý představuje prvek tessellation. Každý prvek tessellation se skládá z ID buňky H3 (reprezentované jako dlouhé celé číslo), logické hodnoty označující, zda vstupní geografie plně pokrývá buňku, a binární hodnota odpovídající popisu průniku vstupní geografie s buňkou H3.
Vrácené buňky H3 společně tvoří minimální krytinu šestiúhelníku nebo pětiúhelníku v zadaném rozlišení, které plně pokrývají vstupní zeměpisnou oblast. Vrácené zeměpisné oblasti (prostřednictvím jejich reprezentací WKB ) tvoří tessellation vstupní geografické oblasti.
Syntaxe
h3_tessellateaswkb ( geographyExpr, resolutionExpr )
Argumenty
geographyExpr
: Binární nebo ŘETĚZCový výraz představující zeměpisnou oblast ve WKB, WKT nebo GeoJSON. Zeměpisná oblast má souřadnice zeměpisné délky a zeměpisné šířky ve stupních, které odkazují na referenční systém souřadnic WGS84 .resolutionExpr
: Výraz INT s hodnotou mezi0
a15
včetně určující rozlišení ID buněk H3.
Návraty
POLE pojmenovaných struktur se třemi poli typu BIGINT, BOOLEAN a BINARY, pojmenované cellid
, core
a chip
, v uvedeném pořadí, představující tessellation vstupní geografie s buňkami H3 v zadaném rozlišení.
První pole ve struktuře je ID buňky H3 (reprezentované jako dlouhé celé číslo). Druhé pole ve struktuře je logická hodnota označující, jestli je buňka H3 jádrovou buňkou, v takovém případě hodnota pole je true
nebo není, v takovém případě hodnota pole je false
. Základní buňka je buňka H3, která je plně pokryta vstupní geografickou oblastí (to znamená průnik se vstupní geografií je samotná buňka). Třetí pole je binární hodnota představující popis WKB zeměpisné oblasti, která je průnikem vstupní geografie a buňky H3. Vrácené buňky H3 společně tvoří minimální zakrývající sadu vstupních zeměpisných oblastí. Zeměpisné oblasti odpovídající vráceným popisům WKB společně tvoří tessellation (rozklad) vstupní geografické oblasti.
Funkce vrátí NULL
, pokud je některý ze vstupních výrazů NULL
.
Pokud je prvním vstupním argumentem typ BINARY, očekává se, že vstupní hodnotou bude popis WKB bodu, čáry, mnohoúhelníku, multipointu, víceřádkového řetězce nebo multipolygonu.
Pokud je prvním vstupním argumentem typ STRING, očekává se, že vstupní hodnota bude buď WKT , nebo GeoJSON popis bodu, přímky, mnohoúhelníku, multipointu, multilinestringu nebo multipolygonu.
Dimenze vstupní geografické oblasti může být 2D, 3DZ, 3DM nebo 4D.
Chybové podmínky
- Pokud
geographyExpr
je typu BINARY a hodnota je neplatná sada WKB nebo představuje kolekci geometrie, vrátí funkce WKB_PARSE_ERROR. - Pokud
geographyExpr
je typu STRING a hodnota je neplatný WKT nebo představuje kolekci geometrie, vrátí funkce WKT_PARSE_ERROR. - Pokud
geographyExpr
je typu STRING a hodnota je neplatná GeoJSON nebo představuje kolekci geometrie, vrátí funkce GEOJSON_PARSE_ERROR. - Pokud
resolutionExpr
je menší než nebo větší15
,0
vrátí funkce H3_INVALID_RESOLUTION_VALUE.
Příklady
> 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