h3_polyfillash3
-Funktion
Gilt für: Databricks SQL Databricks Runtime 11.3 LTS und höher
Gibt ein ARRAY von H3-Zellen-IDs (dargestellt als BIGINT) zurück, die Sechsecken oder Fünfecken der angegebenen Auflösung entsprechen, welche in der eingegebenen geografischen Fläche enthalten sind.
Syntax
h3_polyfillash3 ( geographyExpr, resolutionExpr )
Argumente
geographyExpr
: Ein BINARY- oder STRING-Ausdruck, der eine geografische Fläche (Polygon oder Multipolygon) in WKB, WKT oder GeoJSON darstellt. Für die Geographie werden Längen- und Breitengrade erwartet, die auf WGS84-Koordinatenreferenzsystem verweisen.resolutionExpr
: Ein INT-Ausdruck, für den ein Wert zwischen0
und einschließlich15
erwartet wird und der die Auflösung für die H3-Zellen-IDs angibt.
Gibt zurück
Ein ARRAY von BIGINT-Werten, die den H3-Zellen-IDs der angegebenen Auflösung entsprechen, die in der Eingabegebietsgeographie enthalten sind.
Die Funktion gibt NULL zurück, wenn einer der Eingabeausdrücke NULL ist. Wenn das erste Eingabeargument vom Typ BINARY ist, wird erwartet, dass der Eingabewert die WKB-Beschreibung eines Polygons oder eines Multipolygons ist. Wenn das erste Eingabeargument vom Typ STRING ist, wird der Eingabewert entweder der WKT oder die GeoJSON-Beschreibung eines Polygons oder eines Multipolygons sein. Die Dimension des Eingabepolygons oder Multipolygons kann 2D, 3DZ, 3DM oder 4D sein.
Fehlerbedingungen
- Wenn
geographyExpr
vom Typ BINARY ist und der Wert entweder ein ungültiger WKB ist oder kein Polygon oder Multipolygon darstellt, gibt die Funktion WKB_PARSE_ERROR zurück. - Wenn
geographyExpr
vom Typ BINARY ist und der Wert entweder ein ungültiger WKT ist oder kein Polygon oder Multipolygon darstellt, gibt die Funktion WKT_PARSE_ERROR zurück. - Wenn
geographyExpr
vom Typ STRING ist und der Wert entweder ein ungültiger GeoJSON ist oder kein Polygon oder Multipolygon darstellt, gibt die Funktion GEOJSON_PARSE_ERROR zurück. - Wenn
resolutionExpr
kleiner als0
oder größer als15
ist, gibt die Funktion H3_INVALID_RESOLUTION_VALUE zurück.
Beispiele
-- 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