h3_tessellateaswkb
-functie
Van toepassing op: Databricks SQL 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 tussen0
en15
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
, core
en 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
- Als
geographyExpr
het type BINARY is en de waarde een ongeldige WKB is of een geometrieverzameling vertegenwoordigt, retourneert de functie WKB_PARSE_ERROR. - Als
geographyExpr
het type STRING is en de waarde een ongeldige WKT is of een geometrieverzameling vertegenwoordigt, retourneert de functie WKT_PARSE_ERROR. - Als
geographyExpr
van het type STRING is en de waarde een ongeldige GeoJSON is of een geometrieverzameling vertegenwoordigt, retourneert de functie GEOJSON_PARSE_ERROR. - Als
resolutionExpr
deze kleiner is dan0
of groter15
is, retourneert de functie H3_INVALID_RESOLUTION_VALUE.
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