Freigeben über


h3_polyfillash3string-Funktion

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

Gibt eine ARRAY von H3-Zell-IDs zurück, die als STRING, entsprechend Sechsecken oder Fünfecken der angegebenen Auflösung dargestellt werden, deren Mittelpunkte in der Eingabe-Arealgeografie enthalten sind.

Syntax

h3_polyfillash3string ( geographyExpr, resolutionExpr )

Argumente

  • geographyExpr: Ein BINARY oder STRING Ausdruck, der eine Arealgeografie (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, dessen Wert zwischen 0 und 15 einschließlich erwartet wird und die Auflösung für die H3-Zell-IDs angibt.

Gibt zurück

Ein ARRAY Wert STRING , der den H3-Zell-IDs der angegebenen Auflösung entspricht, deren Schwerpunkte in der Eingabebereichsgeografie enthalten sind.

Die Funktion gibt NULL zurück, wenn einer der Eingabeausdrücke NULL ist. Wenn das erste Eingabeargument vom Typ BINARYist, wird erwartet, dass der Eingabewert die WKB-Beschreibung eines Polygons oder eines Multipolygons ist. Wenn das erste Eingabeargument vom Typ STRINGist, wird erwartet, dass der Eingabewert entweder das WKT oder die GeoJSON-Beschreibung eines Polygons oder eines Multipolygons ist. Die Dimension des Eingabepolygons oder Multipolygons kann 2D, 3DZ, 3DM oder 4D sein.

Fehlerbedingungen

  • Wenn geographyExpr der Typ BINARY ist und der Wert entweder eine ungültige WKB ist oder kein Polygon oder Multipolygon darstellt, gibt die Funktion WKB_PARSE_ERROR zurück.
  • Wenn geographyExpr der Typ STRING ist und der Wert entweder ein ungültiges WKT ist oder kein Polygon oder Multipolygon darstellt, gibt die Funktion WKT_PARSE_ERROR zurück.
  • Wenn geographyExpr der Typ STRING ist und der Wert entweder ein ungültiges GeoJSON-Objekt 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