Condividi tramite


Funzione h3_polyfillash3

Si applica a: segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime 11.3 LTS e versioni successive

Restituisce un array di ID cella H3 (rappresentati come BIGINT) corrispondenti agli esagoni o ai pentagoni, della risoluzione specificata, contenuti nell'input geografico.

Sintassi

h3_polyfillash3 ( geographyExpr, resolutionExpr )

Argomenti

  • geographyExpr: espressione BINARY o STRING che rappresenta un'area geografica areale (poligono o multipolygon) in WKB, WKT o GeoJSON. La geografia dovrebbe avere coordinate di longitudine e latitudine in gradi che fanno riferimento al sistema di riferimento delle coordinate WGS84 .
  • resolutionExpr: espressione INT, il cui valore deve essere compreso tra 0 e 15 inclusivo, specificando la risoluzione per gli ID di cella H3.

Valori restituiti

Matrice di valori BIGINT corrispondenti agli ID cella H3, della risoluzione specificata, contenuti nell'area geografica dell'input.

La funzione restituisce NULL se una delle espressioni di input è NULL. Se il primo argomento di input è di tipo BINARY, si prevede che il valore di input sia la descrizione WKB di un poligono o un multipolygon. Se il primo argomento di input è di tipo STRING, il valore di input deve essere WKT o la descrizione GeoJSON di un poligono o un multipolygon. La dimensione del poligono di input o multipolygon può essere 2D, 3DZ, 3DM o 4D.

Condizioni di errore

  • Se geographyExpr è di tipo BINARY e il valore è un WKB non valido o non rappresenta un poligono o un multipolygon, la funzione restituisce WKB_PARSE_ERROR.
  • Se geographyExpr è di tipo STRING e il valore è un WKT non valido o non rappresenta un poligono o un multipolygon, la funzione restituisce WKT_PARSE_ERROR.
  • Se geographyExpr è di tipo STRING e il valore è un GeoJSON non valido o non rappresenta un poligono o un multipolygon, la funzione restituisce GEOJSON_PARSE_ERROR.
  • Se resolutionExpr è minore o maggiore di 0 15, la funzione restituisce H3_INVALID_RESOLUTION_VALUE.

Esempi

-- Simple example where the input is a triangle in WKT format.
> SELECT h3_polyfillash3('POLYGON((-122.4194 37.7749,-118.2437 34.0522,-74.0060 40.7128,-122.4194 37.7749))', 2)
  [586146350232502271,586147449744130047,586198577034821631,586152397546455039,586199676546449407,586153497058082815,586142501941805055,586201325813891071]

-- Simple example where the input is a triangle in hexadecimal WKB format.
> SELECT h3_polyfillash3(unhex('0103000000010000000400000050fc1873d79a5ec0d0d556ec2fe342404182e2c7988f5dc0f46c567dae064140aaf1d24d628052c05e4bc8073d5b444050fc1873d79a5ec0d0d556ec2fe34240'), 2)
  [586146350232502271,586147449744130047,586198577034821631,586152397546455039,586199676546449407,586153497058082815,586142501941805055,586201325813891071]

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