Funkce h3_coverash3
Platí pro: Databricks SQL Databricks Runtime 13.3 LTS a vyšší
Vrátí pole hodnot BIGINT představujícíCH ID buněk H3. Tyto hodnoty odpovídají minimální sadě šestiúhelníku nebo pětiúhelníku zadaného rozlišení, které plně pokrývají vstupní lineární nebo areální geografii.
Syntaxe
h3_coverash3 ( geographyExpr, resolutionExpr )
Argumenty
geographyExpr
: Binární nebo ŘETĚZCový výraz představující lineární (linestring nebo multilinestring) nebo areální zeměpisná oblast (mnohoúhelník nebo multipolygon) ve WKB, WKT nebo GeoJSON. Zeměpisná oblast musí mít 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 hodnot BIGINT odpovídající minimální sadě ID buněk H3 zadaného rozlišení, které plně pokrývají vstupní lineární nebo areální geografii.
Funkce vrátí NULL
, pokud je některý ze vstupních výrazů NULL
.
Pokud je prvním vstupním argumentem typ BINARY, vstupní hodnota musí být popisem mnohoúhelníku nebo multipolygonu WKB .
Pokud je první vstupní argument typu STRING, vstupní hodnota musí být buď WKT , nebo GeoJSON popis čáry, mnohoúhelník, multilinestring nebo multipolygon.
Rozměr vstupní čáry, mnohoúhelníku, multilinestringu nebo multipolygonu může být 2D, 3DZ, 3DM nebo 4D.
Chybové podmínky
- Pokud
geographyExpr
je typu BINARY a hodnota je buď neplatný WKB, nebo nepředstavuje přímku, mnohoúhelník, multilinestring nebo multipolygon, vrátí funkce WKB_PARSE_ERROR. - Pokud
geographyExpr
je typu STRING a hodnota je buď neplatný WKT, nebo nepředstavuje přímku, mnohoúhelník, multilinestring nebo multipolygon, vrátí funkce WKT_PARSE_ERROR. - Pokud
geographyExpr
je typu STRING a hodnota je buď neplatná GeoJSON, nebo nepředstavuje spojnicový řetězec, mnohoúhelník, multilinestring nebo multipolygon, 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
-- Simple example where the input is a triangle in WKT format.
> SELECT h3_coverash3('POLYGON((-122.4194 37.7749,-118.2437 34.0522,-74.0060 40.7128,-122.4194 37.7749))', 0)
[577164439745200127, 577199624117288959, 577234808489377791, 577762574070710271]
-- Simple example where the input is a triangle in hexadecimal WKB format.
> SELECT h3_coverash3(unhex('0103000000010000000400000050fc1873d79a5ec0d0d556ec2fe342404182e2c7988f5dc0f46c567dae064140aaf1d24d628052c05e4bc8073d5b444050fc1873d79a5ec0d0d556ec2fe34240'), 0)
[577164439745200127, 577199624117288959, 577234808489377791, 577762574070710271]
-- Simple example where the input is a linestring in GeoJSON format.
SELECT h3_coverash3('{"type":"LineString","coordinates":[[-122.4194,37.7749],[-118.2437,34.0522],[-74.0060,40.7128]]}', 1)
[582248581512036351, 581698825698148351, 581707621791170559, 581716417884192767, 581641651093503999, 581650447186526207, 581672437419081727]
-- Feeding an empty multipoint in GeoJSON format (as opposed to a linestring, polygon, multilinestring, or multipolygon).
> SELECT h3_coverash3('{"type":"MultiPoint","coordinates":[]}', 2)
[GEOJSON_PARSE_ERROR] Error parsing GeoJSON: Invalid or unsupported type '"MultiPoint"' at position 9
-- Feeding an invalid WKB (invalid endianness value)
> SELECT h3_coverash3(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_coverash3('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_coverash3('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