Udostępnij za pośrednictwem


Funkcja h3_tessellateaswkb

Dotyczy: zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak 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ędzy 0 i 15 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, corei 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ż 150 , 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