Freigeben über


h3_coverash3-Funktion

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

Gibt ein ARRAY mit BIGINT-Werten zurück, die H3-Zellen-IDs darstellen. Diese Werte entsprechen der minimalen Menge von Sechsecken oder Fünfecken mit der angegebenen Auflösung, die die eingegebene lineare oder flächige Geografie vollständig abdecken.

Syntax

h3_coverash3 ( geographyExpr, resolutionExpr )

Argumente

  • geographyExpr: Ein BINÄR- oder STRING-Ausdruck, der eine lineare (Linienzeichenfolge oder Multi-Linienzeichenfolge) oder geografische Fläche (Polygon oder Multipolygon) in WKB, WKT oder GeoJSON darstellt. Für die Geographie müssen Längen- und Breitengrade vorhanden sein, die auf WGS84-Koordinatenreferenzsystem verweisen.
  • resolutionExpr: Ein INT-Ausdruck mit einem Wert zwischen 0 und einschließlich 15, der die Auflösung für die H3-Zellen-IDs angibt.

Gibt zurück

Ein ARRAY mit BIGINT-Werten, die dem minimalen Satz von H3-Zellen-IDs mit der angegebenen Auflösung entsprechen, die die eingegebene lineare oder flächige Geographie vollständig abdecken.

Die Funktion gibt NULL zurück, wenn einer der Eingabeausdrücke NULL ist. Wenn das erste Eingabeargument vom Typ BINARY ist, muss der Eingabewert die WKB-Beschreibung eines Polygons oder eines Multipolygons sein. Wenn das erste Eingabeargument vom Typ STRING ist, muss der Eingabewert entweder der WKT oder die GeoJSON-Beschreibung einer Linienzeichenfolge, eines Polygons oder eines Multipolygons sein. Die Dimension der Eingabelinienzeichenfolge -multilinienzeichenfolge, des Eingabepolygons oder -multipolygons kann 2D, 3DZ, 3DM oder 4D sein.

Fehlerbedingungen

  • Wenn geographyExpr vom Typ BINÄR ist und der Wert entweder ein ungültiger WKB ist oder keine Linienzeichenfolge, Multilinienzeichenfolge, kein Polygon oder Multipolygon darstellt, gibt die Funktion den Fehler WKB_PARSE_ERROR zurück.
  • Wenn geographyExpr vom Typ STRING ist und der Wert entweder ein ungültiger WKT ist oder keine Linienzeichenfolge, Multilinienzeichenfolge, kein Polygon oder Multipolygon darstellt, gibt die Funktion den Fehler WKT_PARSE_ERROR zurück.
  • Wenn geographyExpr vom Typ STRING ist und der Wert entweder ein ungültiger GeoJSON ist oder keine Linienzeichenfolge, Multilinienzeichenfolge, kein Polygon oder Multipolygon darstellt, gibt die Funktion den Fehler 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_coverash3('POLYGON((-122.4194 37.7749,-118.2437 34.0522,-74.0060 40.7128,-122.4194 37.7749))', 0)
  [577164439745200127, 577199624117288959, 577234808489377791, 577762574070710271]

-- Simple example where the input is a triangle in hexadecimal WKB format.
> SELECT h3_coverash3(unhex('0103000000010000000400000050fc1873d79a5ec0d0d556ec2fe342404182e2c7988f5dc0f46c567dae064140aaf1d24d628052c05e4bc8073d5b444050fc1873d79a5ec0d0d556ec2fe34240'), 0)
  [577164439745200127, 577199624117288959, 577234808489377791, 577762574070710271]

-- Simple example where the input is a linestring in GeoJSON format.
SELECT h3_coverash3('{"type":"LineString","coordinates":[[-122.4194,37.7749],[-118.2437,34.0522],[-74.0060,40.7128]]}', 1)
  [582248581512036351, 581698825698148351, 581707621791170559, 581716417884192767, 581641651093503999, 581650447186526207, 581672437419081727]

-- Feeding an empty multipoint in GeoJSON format (as opposed to a linestring, polygon, multilinestring, or multipolygon).
> SELECT h3_coverash3('{"type":"MultiPoint","coordinates":[]}', 2)
  [GEOJSON_PARSE_ERROR] Error parsing GeoJSON: Invalid or unsupported type '"MultiPoint"' at position 9

-- Feeding an invalid WKB (invalid endianness value)
> SELECT h3_coverash3(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_coverash3('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_coverash3('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