h3_polyfillash3
-functie
Van toepassing op: Databricks SQL Databricks Runtime 11.3 LTS en hoger
Retourneert een MATRIX van H3-cel-id's (weergegeven als BIGINT) die overeenkomen met zeshoeken of vijfhoeken, van de opgegeven resolutie, die zijn opgenomen in de invoer geografie.
Syntaxis
h3_polyfillash3 ( geographyExpr, resolutionExpr )
Argumenten
geographyExpr
: Een BINAIRE of TEKENREEKS-expressie die een areale geografie (veelhoek of multipolygon) 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, waarvan de waarde naar verwachting tussen0
en15
inclusief is, waarbij de resolutie voor de H3-cel-id's wordt opgegeven.
Retouren
Een MATRIX van BIGINT-waarden die overeenkomen met de H3-cel-id's, van de opgegeven resolutie, die zijn opgenomen in de invoer, zijn geografie.
De functie retourneert NULL als een van de invoerexpressies NULL is. Als het eerste invoerargument van het type BINARY is, is de invoerwaarde naar verwachting de WKB-beschrijving van een veelhoek of een multipolygon. Als het eerste invoerargument van het type STRING is, is de invoerwaarde naar verwachting de WKT of de GeoJSON-beschrijving van een veelhoek of een multipolygon. De dimensie van de invoermagon of multipolygon kan 2D, 3DZ, 3DM of 4D zijn.
Foutvoorwaarden
- Als
geographyExpr
het type BINARY is en de waarde een ongeldige WKB is of geen veelhoek of multipolygon vertegenwoordigt, retourneert de functie WKB_PARSE_ERROR. - Als
geographyExpr
van het type STRING is en de waarde een ongeldige WKT is of geen veelhoek of multipolygon vertegenwoordigt, retourneert de functie WKT_PARSE_ERROR. - Als
geographyExpr
het type STRING is en de waarde een ongeldige GeoJSON is of geen veelhoek of multipolygon vertegenwoordigt, retourneert de functie GEOJSON_PARSE_ERROR. - Als
resolutionExpr
deze kleiner is dan0
of groter15
is, retourneert de functie H3_INVALID_RESOLUTION_VALUE.
Voorbeelden
-- Simple example where the input is a triangle in WKT format.
> SELECT h3_polyfillash3('POLYGON((-122.4194 37.7749,-118.2437 34.0522,-74.0060 40.7128,-122.4194 37.7749))', 2)
[586146350232502271,586147449744130047,586198577034821631,586152397546455039,586199676546449407,586153497058082815,586142501941805055,586201325813891071]
-- Simple example where the input is a triangle in hexadecimal WKB format.
> SELECT h3_polyfillash3(unhex('0103000000010000000400000050fc1873d79a5ec0d0d556ec2fe342404182e2c7988f5dc0f46c567dae064140aaf1d24d628052c05e4bc8073d5b444050fc1873d79a5ec0d0d556ec2fe34240'), 2)
[586146350232502271,586147449744130047,586198577034821631,586152397546455039,586199676546449407,586153497058082815,586142501941805055,586201325813891071]
-- Feeding an empty linestring in GeoJSON format (as opposed to a polygon or multipolygon).
> SELECT h3_polyfillash3('{"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_polyfillash3(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_polyfillash3('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_polyfillash3('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