Partilhar via


Função h3_polyfillash3string

Aplica-se a: Marque Sim Databricks SQL Marque Sim Databricks Runtime 11.3 LTS e superior

Retorna uma MATRIZ de IDs de célula H3 (representada como STRING) correspondente a hexágonos ou pentágonos, da resolução especificada, que estão contidos pela geografia de área de entrada.

Sintaxe

h3_polyfillash3string ( geographyExpr, resolutionExpr )

Argumentos

  • geographyExpr: Uma expressão BINARY ou STRING que representa uma geografia areal (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 inclusivo, especificando a resolução para os IDs de célula H3.

Devoluções

Uma MATRIZ de valores STRING correspondentes aos IDs de célula H3, da resolução especificada, que estão contidos pela geografia de área 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 polígono 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 polígono ou 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 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 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 multipolígono, a função retornará GEOJSON_PARSE_ERROR.
  • Se resolutionExpr for menor 0 ou maior que 15, a função retornará 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