funktion h3_polyfillash3string

Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime 11.3 LTS och senare

Returnerar en array med H3-cell-ID:er (representerade som strängar) som motsvarar hexagoner eller pentagoner, på den angivna upplösningsnivån, som finns inom den givna indata-areageografin.

Syntax

h3_polyfillash3string ( geographyExpr, resolutionExpr )

Argumenten

  • geographyExpr: Ett binärt uttryck eller STRING-uttryck som representerar ett arealgeografi (polygon eller multipolygon) i WKB, WKT eller GeoJSON. Geografin förväntas ha longitud- och latitudkoordinater i grader som refererar till WGS84-koordinatreferenssystemet .
  • resolutionExpr: Ett INT-uttryck, vars värde förväntas vara mellan 0 och 15 inkluderande, som anger upplösningen för H3-cell-ID:erna.

Returer

En array av strängvärden som motsvarar H3-cell-ID:n, för en specificerad upplösning, som omfattas av den angivna arealgeografin.

Funktionen returnerar NULL om något av indatauttrycken är NULL. Om det första indataargumentet är av typen BINARY förväntas indatavärdet vara WKB-beskrivningen av en polygon eller en multipolygon. Om det första indataargumentet är av typen STRING förväntas indatavärdet antingen vara WKT- eller GeoJSON-beskrivningen för en polygon eller en multipolygon. Dimensionen för indatapogonen eller multipolygonen kan vara 2D, 3DZ, 3DM eller 4D.

Feltillstånd

  • Om geographyExpr är av typen BINARY och värdet antingen är en ogiltig WKB eller inte representerar en polygon eller multipolygon, returnerar funktionen WKB_PARSE_ERROR.
  • Om geographyExpr är av typen STRING och värdet antingen är en ogiltig WKT eller inte representerar en polygon eller multipolygon, returnerar funktionen WKT_PARSE_ERROR.
  • Om geographyExpr är av typen STRING och värdet antingen är en ogiltig GeoJSON eller inte representerar en polygon eller multipolygon, returnerar funktionen GEOJSON_PARSE_ERROR.
  • Om resolutionExpr är mindre än 0 eller större än 15returnerar funktionen H3_INVALID_RESOLUTION_VALUE.

Exempel

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