Dela via


funktion h3_try_coverash3

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

Den här funktionen fungerar på samma sätt som h3_coverash3, men returnerar NULL i stället för ett fel om det första argumentet är ogiltigt. Den returnerar ett ARRAY värde BIGINT som representerar H3-cell-ID:t. Dessa värden motsvarar den minimala uppsättningen sexhörningar eller pentagoner vid den angivna upplösningen som helt täcker indataradiska eller areala geografiska områden.

Syntax

h3_try_coverash3 ( geographyExpr, resolutionExpr )

Argumentpunkter

  • geographyExpr: Ett BINARY eller STRING uttryck som representerar en linjär (linestring eller multilinestring) eller areal (polygon eller multipolygon) geografi i WKB, WKT eller GeoJSON. Geografin måste ha longitud- och latitudkoordinater i grader som refererar till WGS84-koordinatreferenssystemet .
  • resolutionExpr: Ett INT uttryck, med ett värde mellan 0 och 15 inkluderande, som anger upplösningen för H3-cell-ID:erna.

Retur

En ARRAY av BIGINT värden som motsvarar den minsta uppsättningen av hexagoner eller pentagoner vid specificerad upplösning som helt täcker den inmatnings linjära eller areala geografin.

Funktionen returnerar NULL om något av indatauttrycken är NULL. Om det första indataargumentet är av typen BINARYmåste indatavärdet vara WKB-beskrivningen av en polygon eller en multipolygon. Om det första indataargumentet är av typen STRINGmåste indatavärdet vara antingen WKT - eller GeoJSON-beskrivningen för en linjedragning, polygon, multilinestring eller multipolygon. Dimensionen för indatalinjesträng, polygon, multilinjesträng eller multipolygon kan vara 2D, 3DZ, 3DM eller 4D. Funktionen returnerar NULL om det första argumentet motsvarar en ogiltig WKB, WKT eller GeoJSON eller inte representerar en linjedragning, polygon, multilinestring eller multipolygon.

Feltillstånd

Exempel

-- Simple example where the input is a triangle in WKT format.
> SELECT h3_try_coverash3('POLYGON((-122.4194 37.7749,-118.2437 34.0522,-74.0060 40.7128,-122.4194 37.7749))', 0);
  [577164439745200127, 577199624117288959, 577234808489377791, 577762574070710271]

-- Simple example where the input is a triangle in hexadecimal WKB format.
> SELECT h3_try_coverash3(unhex('0103000000010000000400000050fc1873d79a5ec0d0d556ec2fe342404182e2c7988f5dc0f46c567dae064140aaf1d24d628052c05e4bc8073d5b444050fc1873d79a5ec0d0d556ec2fe34240'), 0);
  [577164439745200127, 577199624117288959, 577234808489377791, 577762574070710271]

-- Simple example where the input is a linestring in GeoJSON format.
SELECT h3_try_coverash3('{"type":"LineString","coordinates":[[-122.4194,37.7749],[-118.2437,34.0522],[-74.0060,40.7128]]}', 1);
  [582248581512036351, 581698825698148351, 581707621791170559, 581716417884192767, 581641651093503999, 581650447186526207, 581672437419081727]

-- Feeding an empty multipoint in GeoJSON format (as opposed to a linestring, polygon, multilinestring, or multipolygon).
> SELECT h3_try_coverash3('{"type":"MultiPoint","coordinates":[]}', 2);
  null

-- Feeding an invalid WKB (invalid endianness value)
> SELECT h3_try_coverash3(unhex('020700000000'), 2);
  null

-- Feeding an invalid polygon in WKT (polygon is not closed)
> SELECT h3_try_coverash3('POLYGON((-122.4194 37.7749,-118.2437 34.0522,-74.0060 40.7128,-74.0060 40.7128))', 2);
  null

-- Resolution is out of range.
> SELECT h3_try_coverash3('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