Delen via


h3_tessellateaswkb-functie

Van toepassing op: vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime 14.2 en hoger

Retourneert een tesselatie van de invoergeografie met behulp van H3-cellen met de opgegeven resolutie. De stelling wordt vertegenwoordigd door een MATRIX met structs, die elk een element van de tessellation vertegenwoordigen. Elk element van de tessellation bestaat uit een H3-cel-id (weergegeven als een lang geheel getal), een Booleaanse waarde die aangeeft of de invoergeografie de cel volledig bedekt en een BINAIRE waarde die overeenkomt met de WKB-beschrijving van het snijpunt van de invoergeografie met de H3-cel.

De geretourneerde H3-cellen vormen gezamenlijk een minimale afdekkingsset zeshoeken of vijfhoeken, met de opgegeven resolutie, die volledig betrekking hebben op de invoergeografie. De geretourneerde geografische gebieden (via hun WKB-representaties ) vormen een tesselatie van de invoergeografie.

Syntaxis

h3_tessellateaswkb ( geographyExpr, resolutionExpr )

Argumenten

  • geographyExpr: een BINAIRE of TEKENREEKSexpressie die een geografie vertegenwoordigt in WKB, WKT of GeoJSON. De geografie heeft naar verwachting lengte- en breedtegraadcoördinaten in graden die verwijzen naar het WGS84-coördinaatreferentiesysteem .
  • resolutionExpr: Een INT-expressie, met een waarde tussen 0 en 15 inclusief, waarmee de resolutie voor de H3-cel-id's wordt opgegeven.

Retouren

Een MATRIX met benoemde structs met drie velden van het type BIGINT, BOOLEAANSE waarde en BINAIR, genaamd cellid, coreen chip, respectievelijk, die de tesselatie van de invoergeografie vertegenwoordigt met H3-cellen met de opgegeven resolutie.

Het eerste veld in de struct is een H3-cel-id (weergegeven als een lang geheel getal). Het tweede veld in de struct is een Booleaanse waarde die aangeeft of de H3-cel een kerncel is, in welk geval de waarde van het veld al dan niet is true , in welk geval de waarde van het veld is false. Een kerncel is een H3-cel die volledig wordt gedekt door de invoergeografie (het snijpunt met de invoergeografie is de cel zelf). Het derde veld is een BINAIRE waarde die de WKB-beschrijving vertegenwoordigt van de geografie die het snijpunt is van de invoergeografie en de H3-cel. De geretourneerde H3-cellen vormen gezamenlijk een minimale dekkingsset van de invoergeografie. De geografische gebieden, die overeenkomen met de geretourneerde WKB-beschrijvingen, vormen gezamenlijk een tessellation (ontleding) van de invoergeografie.

De functie retourneert NULL als een van de invoerexpressies is NULL. Als het eerste invoerargument van het type BINARY is, is de invoerwaarde naar verwachting de WKB-beschrijving van een punt, lijnentring, veelhoek, multipoint, multilinestring of multipolygon. Als het eerste invoerargument van het type STRING is, is de invoerwaarde naar verwachting ofwel de WKT of de GeoJSON-beschrijving van een punt, lijnentring, veelhoek, multipoint, multilinestring of multipolygon. De dimensie van de invoergeografie kan 2D, 3DZ, 3DM of 4D zijn.

Foutvoorwaarden

Voorbeelden

> 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