Compartilhar via


Função h3_polyfillash3string

Aplica-se a:marque sim SQL do Databricks marque sim LTS do Databricks Runtime 11.3 e superior

Retorna um ARRAY de IDs das células H3 (representadas como STRING) correspondentes a hexágonos ou pentágonos, da resolução especificada, que estão contidos na geografia da área de entrada.

Sintaxe

h3_polyfillash3string ( geographyExpr, resolutionExpr )

Argumentos

  • geographyExpr: uma expressão BINARY or STRING que representa uma geografia de área (polígono ou multipolígono) 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 expressão INT, cujo valor deve ser entre 0 e 15 inclusive, especificando a resolução para as IDs da célula H3

Retornos

Um ARRAY de valores STRING correspondentes às IDs das células H3, da resolução especificada, que estão contidas na geografia da área 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, espera-se que o valor de entrada seja a descrição WKB de um polígono ou um 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 polígono ou um multipolígono. A dimensão do polígono de entrada ou multipolígono pode ser 2D, 3DZ, 3DM ou 4D.

Condições de erro

  • Se geographyExpr for do tipo BINARY e o valor for um WKB inválido ou não representar um polígono ou um multipolígono, a função retornará WKB_PARSE_ERROR.
  • Se geographyExpr for do tipo STRING e o valor for um WKT inválido ou não representar um polígono ou um multipolígono, a função retornará WKT_PARSE_ERROR.
  • Se geographyExpr for do tipo STRING e o valor for um GeoJSON inválido ou não representar um polígono ou um multipolígono, a função retornará GEOJSON_PARSE_ERROR.
  • Se resolutionExpr for menor 0 ou maior que 15, a função retorna H3_INVALID_RESOLUTION_VALUE.

Exemplos

-- Simple example where the input is a triangle in WKT format.
> SELECT h3_polyfillash3string('POLYGON((-122.4194 37.7749,-118.2437 34.0522,-74.0060 40.7128,-122.4194 37.7749))', 2);
  [82268ffffffffff,82269ffffffffff,822987fffffffff,8226e7fffffffff,822997fffffffff,8226f7fffffffff,822657fffffffff,8229affffffffff]

-- Simple example where the input is a triangle in hexadecimal WKB format.
> SELECT h3_polyfillash3string(unhex('0103000000010000000400000050fc1873d79a5ec0d0d556ec2fe342404182e2c7988f5dc0f46c567dae064140aaf1d24d628052c05e4bc8073d5b444050fc1873d79a5ec0d0d556ec2fe34240'), 2);
  [82268ffffffffff,82269ffffffffff,822987fffffffff,8226e7fffffffff,822997fffffffff,8226f7fffffffff,822657fffffffff,8229affffffffff]

-- Feeding an empty linestring in GeoJSON format (as opposed to a polygon or multipolygon).
> SELECT h3_polyfillash3string('{"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_polyfillash3string(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_polyfillash3string('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_polyfillash3string('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