Funkcja h3_polyfillash3
Dotyczy: Databricks SQL
Databricks Runtime 11.3 LTS i nowsze
Zwraca tablicę identyfikatorów komórek H3 (reprezentowanych jako BIGINT) odpowiadających heksagonom lub pentagonom o określonej rozdzielczości, które są zawarte w geografii wejściowej.
h3_polyfillash3 ( geographyExpr, resolutionExpr )
-
geographyExpr
: wyrażenie BINARY lub STRING reprezentujące geografię arealną (wielokąt lub multipolygon) w WKB, WKT lub GeoJSON. Oczekuje się, że geografia ma współrzędne długości i szerokości geograficznej w stopniach, które odnoszą się do systemu odniesienia współrzędnych WGS84. -
resolutionExpr
: Wyrażenie INT, którego wartość ma być między0
i15
inkluzywna, określając rozdzielczość identyfikatorów komórek H3.
Zbiór wartości typu BIGINT odpowiadających identyfikatorom komórek H3 o określonej rozdzielczości, które są zawarte w geograficznym obszarze wejściowym.
Funkcja zwraca wartość NULL, jeśli dowolne z wyrażeń wejściowych ma wartość NULL. Jeśli pierwszym argumentem wejściowym ma typ BINARY, wartość wejściowa powinna być WKB opisem wielokąta lub wielopoligonu. Jeśli pierwszym argumentem wejściowym jest typu STRING, wartość wejściowa powinna być w formacie WKT lub GeoJSON jako opis wielokąta lub wielopoligonu. Wymiar wielokąta wejściowego lub wielopolygonu może być 2D, 3DZ, 3DM lub 4D.
- Jeśli
geographyExpr
jest typu BINARY, a wartość jest nieprawidłowa WKB lub nie reprezentuje wielokąta lub wielopolygonu, funkcja zwraca WKB_PARSE_ERROR. - Jeśli
geographyExpr
jest typu STRING, a wartość jest nieprawidłową wartością WKT lub nie reprezentuje wielokąta lub wielopolygonu, funkcja zwraca WKT_PARSE_ERROR. - Jeśli
geographyExpr
jest typu STRING, a wartość jest nieprawidłową wartością GeoJSON lub nie reprezentuje wielokąta lub wielobiegu, funkcja zwraca GEOJSON_PARSE_ERROR. - Jeśli
resolutionExpr
jest mniejszy niż0
lub większy niż15
, funkcja zwraca H3_INVALID_RESOLUTION_VALUE.
-- Simple example where the input is a triangle in WKT format.
> SELECT h3_polyfillash3('POLYGON((-122.4194 37.7749,-118.2437 34.0522,-74.0060 40.7128,-122.4194 37.7749))', 2)
[586146350232502271,586147449744130047,586198577034821631,586152397546455039,586199676546449407,586153497058082815,586142501941805055,586201325813891071]
-- Simple example where the input is a triangle in hexadecimal WKB format.
> SELECT h3_polyfillash3(unhex('0103000000010000000400000050fc1873d79a5ec0d0d556ec2fe342404182e2c7988f5dc0f46c567dae064140aaf1d24d628052c05e4bc8073d5b444050fc1873d79a5ec0d0d556ec2fe34240'), 2)
[586146350232502271,586147449744130047,586198577034821631,586152397546455039,586199676546449407,586153497058082815,586142501941805055,586201325813891071]
-- Feeding an empty linestring in GeoJSON format (as opposed to a polygon or multipolygon).
> SELECT h3_polyfillash3('{"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_polyfillash3(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_polyfillash3('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_polyfillash3('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