Sdílet prostřednictvím


Funkce h3_polyfillash3string

Platí pro: zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime 11.3 LTS a vyšší

Vrátí pole ID buněk H3 (reprezentované jako STRING) odpovídající šestiúhelníku nebo pětiúhelníku zadaného rozlišení, které jsou obsaženy vstupní zeměpisná oblast.

Syntaxe

h3_polyfillash3string ( geographyExpr, resolutionExpr )

Argumenty

  • geographyExpr: Výraz BINARY nebo STRING představující areální geografii (mnohoúhelník nebo multipolygon) ve WKB, WKT nebo GeoJSON. Zeměpisná oblast má souřadnice zeměpisné délky a zeměpisné šířky ve stupních, které odkazují na referenční systém souřadnic WGS84 .
  • resolutionExpr: Výraz INT, jehož hodnota by měla být mezi 0 a 15 včetně, určuje rozlišení ID buněk H3.

Návraty

POLE hodnot STRING odpovídající ID buněk H3 zadaného rozlišení, které jsou obsaženy ve vstupní areální zeměpisné oblasti.

Funkce vrátí hodnotu NULL, pokud některý ze vstupních výrazů má hodnotu NULL. Pokud je první vstupní argument typu BINARY, očekává se, že vstupní hodnotou bude popis mnohoúhelníku nebo multipolygonu WKB . Pokud je první vstupní argument typu STRING, očekává se, že vstupní hodnota bude buď WKT , nebo GeoJSON popis mnohoúhelníku nebo multipolygonu. Rozměr vstupního mnohoúhelníku nebo multipolygonu může být 2D, 3DZ, 3DM nebo 4D.

Chybové podmínky

  • Pokud geographyExpr je typu BINARY a hodnota je buď neplatný WKB nebo nepředstavuje mnohoúhelník nebo multipolygon, vrátí funkce WKB_PARSE_ERROR.
  • Pokud geographyExpr je typ STRING a hodnota je buď neplatný WKT nebo nepředstavuje mnohoúhelník nebo multipolygon, vrátí funkce WKT_PARSE_ERROR.
  • Pokud geographyExpr je typu STRING a hodnota je buď neplatná GeoJSON, nebo nepředstavuje mnohoúhelník nebo multipolygon, vrátí funkce GEOJSON_PARSE_ERROR.
  • Pokud resolutionExpr je menší než nebo větší15, 0 vrátí funkce H3_INVALID_RESOLUTION_VALUE.

Příklady

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