Funkcja h3_tessellateaswkb
Dotyczy: Databricks SQL Databricks Runtime 14.2 i nowsze
Zwraca tessellation geografii wejściowej przy użyciu komórek H3 w określonej rozdzielczości. Tessellation jest reprezentowany przez tablicę struktur, z których każda reprezentuje element tessellacji. Każdy element tessellation składa się z identyfikatora komórki H3 (reprezentowanego jako długa liczba całkowita), wartości logicznej wskazującej, czy geografia wejściowa w pełni obejmuje komórkę, oraz wartość BINarną odpowiadającą opisowi WKB części geograficznej danych wejściowych z komórką H3.
Zwrócone komórki H3 łącznie tworzą minimalny zestaw sześciokątów lub pentagonów, w określonej rozdzielczości, które w pełni obejmują geografię wejściową. Obszary geograficzne zwrócone (za pośrednictwem ich reprezentacji WKB ) tworzą tessellation lokalizacji geograficznej danych wejściowych.
Składnia
h3_tessellateaswkb ( geographyExpr, resolutionExpr )
Argumenty
geographyExpr
: wyrażenie BINARY lub STRING reprezentujące geografię w plikach WKB, WKT lub GeoJSON. Oczekuje się, że lokalizacja geograficzna ma współrzędne długości i szerokości geograficznej w stopniach odwołujących się do systemu odniesienia współrzędnych WGS84 .resolutionExpr
: Wyrażenie INT z wartością między0
i15
inkluzywną określającą rozdzielczość identyfikatorów komórek H3.
Zwraca
Tablica nazwanych struktur z trzema polami typu BIGINT, BOOLEAN i BINARY, odpowiednio o nazwie cellid
, core
i chip
, reprezentującą tessellation lokalizacji geograficznej danych wejściowych z komórkami H3 w określonej rozdzielczości.
Pierwsze pole w strukturę jest identyfikatorem komórki H3 (reprezentowanym jako długa liczba całkowita). Drugie pole w strukturę jest wartością logiczną wskazującą, czy komórka H3 jest komórką główną, w tym przypadku wartość pola jest true
lub nie, w tym przypadku wartość pola to false
. Podstawowa komórka to komórka H3, która jest w pełni objęta lokalizacją geograficzną danych wejściowych (czyli jej przecięciem z lokalizacją geograficzną danych wejściowych jest sama komórka). Trzecie pole to wartość BINARNa reprezentująca opis lokalizacji geograficznej WKB , która jest przecięciem lokalizacji geograficznej danych wejściowych i komórki H3. Zwrócone komórki H3 łącznie tworzą minimalny zestaw pokrycia danych geograficznych danych wejściowych. Lokalizacje geograficzne odpowiadające zwróconym opisom WKB tworzą zbiorczo tessellation (dekompozycję) lokalizacji geograficznej danych wejściowych.
Funkcja zwraca NULL
wartość , jeśli którekolwiek z wyrażeń wejściowych to NULL
.
Jeśli pierwszym argumentem wejściowym jest typ BINARY, wartość wejściowa powinna być opisem WKB punktu, linii, wielokąta, wielopunktu, wielowierszowego lub wielobiegunowego.
Jeśli pierwszy argument wejściowy jest typu STRING, wartość wejściowa powinna być albo WKT , albo geoJSON opisu punktu, linestring, polygon, multipoint, multilinestring lub multipolygon.
Wymiar geografii wejściowej może być 2D, 3DZ, 3DM lub 4D.
Warunki błędu
- Jeśli
geographyExpr
jest typu BINARY, a wartość jest nieprawidłową biblioteką WKB lub reprezentuje kolekcję geometryczną, funkcja zwraca WKB_PARSE_ERROR. - Jeśli
geographyExpr
jest typu STRING, a wartość jest nieprawidłową biblioteką WKT lub reprezentuje kolekcję geometryczną, funkcja zwraca WKT_PARSE_ERROR. - Jeśli
geographyExpr
jest typu STRING, a wartość jest nieprawidłowym plikiem GeoJSON lub reprezentuje kolekcję geometryczną, funkcja zwraca GEOJSON_PARSE_ERROR. - Jeśli
resolutionExpr
funkcja jest mniejsza lub większa niż15
0
, funkcja zwraca H3_INVALID_RESOLUTION_VALUE.
Przykłady
> 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