Compartilhar via


h3_try_tessellateaswkb Função

Aplica-se a:verificação marcada como sim Databricks SQL verificação marcada como sim Databricks Runtime 16.3 e superior

Essa função se comporta da mesma maneira que h3_tessellateaswkb, mas retorna NULL em vez de um erro se a função não produzir uma tesselação. Retornatessellação da geografia de entrada usando células H3 na resolução especificada. O mosaico é representado por um ARRAY de structs, cada um representando um elemento do mosaico. Cada elemento do mosaico consiste em um ID de célula H3 (BIGINT), um valor booleano que indica se a geografia de entrada cobre totalmente a célula, e um valor BINARY correspondente à descrição WKB da interseção entre a geografia de entrada e a célula H3.

Sintaxe

h3_try_tessellateaswkb ( geographyExpr, resolutionExpr )

Arguments

  • geographyExpr: uma BINARY ou STRING expressão que representa uma geografia em WKB, WKT ou GeoJSON. Espera-se que a geografia tenha coordenadas de longitude e latitude em graus que se referem ao sistema de referência de coordenadas WGS84 .
  • resolutionExpr: uma INT expressão, com um valor entre 0 e 15 inclusivo, especificando a resolução para as IDs da célula H3.

Devoluções

Um ARRAY de structs nomeados com três campos do tipo BIGINT, BOOLEAN e BINARY, nomeados cellid, core e chip, respectivamente, representando o mosaico da geografia de entrada com células H3 na resolução especificada.

O primeiro campo no struct é uma ID de célula H3 representada como um BIGINT. O segundo campo é um BOOLEAN que indica se a célula é uma célula de núcleo. Uma célula principal é uma que está totalmente contida na geografia de entrada. Sua interseção com a entrada é a célula completa. O valor é verdadeiro para células principais e falso caso contrário. O terceiro campo é um BINARY valor que representa a descrição WKB da geografia que é a interseção da geografia de entrada e da célula H3. As células H3 retornadas coletivamente formam um conjunto de cobertura mínimo da geografia fornecida. As geografias, correspondentes às descrições WKB retornadas, formam coletivamente um tesselado (decomposição) da geografia de entrada.

A função retornará NULL se qualquer uma das expressões de entrada for NULL. Se o primeiro argumento de entrada for do tipo BINARY, o valor de entrada deverá ser a descrição WKB de um ponto, linhagem, polígono, vários pontos, multilinhagem ou multipolígono. Se o primeiro argumento de entrada for do tipo STRING, espera-se que o valor de entrada seja a descrição WKT ou GeoJSON de um ponto, linhagem, polígono, multiponto, multilinhagem ou multipolígono. A dimensão da geografia de entrada pode ser 2D, 3DZ, 3DM ou 4D. A função retornará NULL se o primeiro argumento corresponder a um WKB inválido, WKT ou GeoJSON ou não representar um ponto, linha de linha, polígono, multiponto, multilinestring ou multipolygon. A função retorna NULL se não produzir uma tesselação.

Condições de erro

Exemplos

> 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);
  null

-- Feeding an invalid WKB (invalid endianness value)
> SELECT h3_tessellateaswkb(unhex('020700000000'), 2);
  null

-- 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);
  null

-- 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