h3_polyfillash3string-Funktion

Gilt für: Häkchen ja Databricks SQL Häkchen bei ja Databricks Runtime 11.3 LTS und höher

Gibt ein ARRAY von H3-Zellen-IDs (dargestellt als STRING) zurück, die Sechsecken oder Fünfecken der angegebenen Auflösung entsprechen, die in der Eingabebereichsgeografie enthalten sind.

Syntax

h3_polyfillash3string ( 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 zwischen 0 und einschließlich 15 erwartet wird und der die Auflösung für die H3-Zellen-IDs angibt.

Gibt zurück

Ein ARRAY von STRING-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 als 0 oder größer als 15 ist, gibt die Funktion H3_INVALID_RESOLUTION_VALUE zurück.

Beispiele

-- Simple example where the input is a triangle in WKT format.
> SELECT h3_polyfillash3string('POLYGON((-122.4194 37.7749,-118.2437 34.0522,-74.0060 40.7128,-122.4194 37.7749))', 2)
  [82268ffffffffff,82269ffffffffff,822987fffffffff,8226e7fffffffff,822997fffffffff,8226f7fffffffff,822657fffffffff,8229affffffffff]

-- Simple example where the input is a triangle in hexadecimal WKB format.
> SELECT h3_polyfillash3string(unhex('0103000000010000000400000050fc1873d79a5ec0d0d556ec2fe342404182e2c7988f5dc0f46c567dae064140aaf1d24d628052c05e4bc8073d5b444050fc1873d79a5ec0d0d556ec2fe34240'), 2)
  [82268ffffffffff,82269ffffffffff,822987fffffffff,8226e7fffffffff,822997fffffffff,8226f7fffffffff,822657fffffffff,8229affffffffff]

-- Feeding an empty linestring in GeoJSON format (as opposed to a polygon or multipolygon).
> SELECT h3_polyfillash3string('{"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_polyfillash3string(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_polyfillash3string('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_polyfillash3string('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