Partilhar via


h3_try_tessellateaswkb Função

Aplica-se a:marcado como sim Databricks SQL marcado como sim Databricks Runtime 16.3 e superior

Esta função comporta-se da mesma forma que h3_tessellateaswkb, mas retorna NULL em vez de um erro se a função não conseguir produzir uma tesselação. Ele retornatesselação da geografia de entrada usando células H3 na resolução especificada. A tesselação é representada por uma ARRAY das estruturas, cada uma representando um elemento da tesselação. Cada elemento da tesselação consiste em um ID de célula H3 (BIGINT), um valor booleano indicando se a geografia de entrada cobre totalmente a célula, e um BINARY valor correspondente à descrição WKB da interseção da geografia de entrada com a célula H3.

Sintaxe

h3_try_tessellateaswkb ( geographyExpr, resolutionExpr )

Argumentos

  • 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 dos IDs de células H3.

Devoluções

Um ARRAY de estruturas nomeadas com três campos do tipo BIGINT, BOOLEAN, e BINARY, nomeado cellid, coree chip, respectivamente, representando a tesselação da geografia de entrada com células H3 na resolução especificada.

O primeiro campo na struct é um ID de célula H3 representado como um BIGINT. O segundo campo é uma BOOLEAN indicação se a célula é uma célula central. Uma célula central é aquela que está inteiramente contida dentro da geografia de entrada. Sua interseção com a entrada é a célula completa. O valor é verdadeiro para células centrais 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 formam coletivamente um conjunto de cobertura mínimo da geografia de entrada. As geografias, correspondentes às descrições WKB retornadas, formam coletivamente uma tesselação (decomposição) da geografia de entrada.

A função retorna NULL se qualquer uma das expressões de entrada for NULL. Se o primeiro argumento de entrada for do tipo BINARY, espera-se que o valor de entrada seja a descrição WKB de um ponto, cadeia de caracteres, polígono, multiponto, multilinhacadeia de caracteres ou multipolígono. Se o primeiro argumento de entrada for do tipo STRING, espera-se que o valor de entrada seja o WKT ou a descrição GeoJSON de um ponto, cadeia de linha, polígono, multiponto, multilinha 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, WKT ou GeoJSON inválido ou não representar um ponto, linha, polígono, multiponto, multissegmento, ou multipolígono. A função retorna NULL se não conseguir 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