Share via


Funktionen h3_tessellateaswkb

Gäller för:check marked yes Databricks Runtime 14.2 och senare

Returnerar en tessellation av indataområdet med H3-celler vid den angivna upplösningen. Tessellationen representeras av en MATRIS med structs, som var och en representerar ett element i tessellationen. Varje element i tessellationen består av ett H3-cell-ID (representerat som ett långt heltal), ett booleskt värde som anger om indatageografin helt täcker cellen och ett BINÄRt värde som motsvarar WKB-beskrivningen av skärningspunkten för indatageografin med H3-cellen.

De returnerade H3-cellerna bildar tillsammans en minimal täckande uppsättning sexhörningar eller femhörningar, vid den angivna upplösningen, som helt täcker indataområdet. De geografiska områden som returneras (via deras WKB-representationer ) utgör en tessellation av indatageografin.

Syntax

h3_tessellateaswkb ( geographyExpr, resolutionExpr )

Argument

  • geographyExpr: Ett BINÄRt uttryck eller STRING-uttryck som representerar ett geografiskt område i WKB, WKT eller GeoJSON. Geografin förväntas 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:t.

Returer

En MATRIS med namngivna structs med tre fält av typen BIGINT, BOOLEAN och BINARY med namnet cellid, corerespektive chip, som representerar tessellationen för indataområdet med H3-celler vid den angivna upplösningen.

Det första fältet i structen är ett H3-cell-ID (representerat som ett långt heltal). Det andra fältet i structen är ett booleskt värde som anger om H3-cellen är en kärncell, i vilket fall fältets värde är true eller inte, i vilket fall fältets värde är false. En kärncell är en H3-cell som är helt täckt av indatageografin (d.v.s. dess skärningspunkt med indatageografin är själva cellen). Det tredje fältet är ett BINÄRt värde som representerar WKB-beskrivningen av geografin som är skärningspunkten mellan indataområdet och H3-cellen. De returnerade H3-cellerna utgör tillsammans en minimal täckande uppsättning av indataområdet. Geografiska områden, som motsvarar de returnerade WKB-beskrivningarna, bildar tillsammans en tessellation (nedbrytning) av indatageografin.

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 punkt, linjering, polygon, multipoint, multilinestring eller multipolygon. Om det första indataargumentet är av typen STRING förväntas indatavärdet antingen vara WKT- eller GeoJSON-beskrivningen för en punkt, linjering, polygon, multipoint, multilinestring eller multipolygon. Dimensionen för indatageografin kan vara 2D, 3DZ, 3DM eller 4D.

Feltillstånd

Exempel

> SELECT h3_h3tostring(cellid), core, hex(chip) FROM (SELECT inline(h3_tessellateaswkb('MULTIPOINT(20 0,20 10,40 30)', 0))) ORDER BY 1
  802dfffffffffff     false 010100000000000000000044400000000000003E40
  806bfffffffffff     false 010400000002000000010100000000000000000034400000000000000000010100000000000000000034400000000000002440

-- Feeding an empty geometry collection in GeoJSON format (geometry collections are not supported).
> SELECT h3_tessellateaswkb('{"type":"GeometryCollection","geometries":[]}', 2)
  [GEOJSON_PARSE_ERROR] Error parsing GeoJSON: Invalid or unsupported type '"GeometryCollection"' at position 9 SQLSTATE: 22023

-- Feeding an invalid WKB (invalid endianness value)
> SELECT h3_tessellateaswkb(unhex('020700000000'), 2)
  [WKB_PARSE_ERROR] Error parsing WKB: Invalid byte order 2 at position 1 SQLSTATE: 22023

-- Feeding an invalid polygon in WKT (polygon is not closed)
> SELECT h3_tessellateaswkb('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 SQLSTATE: 22023

-- Resolution is out of range.
> SELECT h3_tessellateaswkb('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 SQLSTATE: 22023