Partager via


Fonction h3_coverash3string

S’applique à : coche marquée oui Databricks SQL case marquée oui Databricks Runtime 13.3 LTS et versions ultérieures

Renvoie un ARRAY de valeurs STRING représentant les ID de cellules H3. Ces valeurs correspondent à l'ensemble minimal d'hexagones ou de pentagones, de la résolution spécifiée, qui couvrent entièrement la géographie linéaire ou surfacique d'entrée.

Syntaxe

h3_coverash3 ( geographyExpr, resolutionExpr )

Arguments

  • geographyExpr : expression BINARY ou STRING représentant une géographie linéaire (chaîne de lignes ou multilignes) ou surfacique (polygone ou multipolygone) dans WKB, WKT, ou GeoJSON. La géographie doit avoir des coordonnées de longitude et de latitude en degrés faisant référence au système de référence de coordonnées WGS84.
  • resolutionExpr: Une expression INT, avec une valeur comprise entre 0 et 15 inclus, spécifiant la résolution des ID de cellule H3.

Retours

Un ARRAY de valeurs STRING correspondant à l'ensemble minimal d'ID de cellules H3, de la résolution spécifiée, qui couvrent entièrement la géographie linéaire ou surfacique d'entrée.

La fonction renvoie NULL si l'une des expressions d'entrée est NULL. Si le premier argument d'entrée est de type BINARY, la valeur d'entrée doit être la description WKB d'une chaîne de lignes, d'un polygone, d'une chaîne multiligne ou d'un multipolygone. Si le premier argument d'entrée est de type STRING, la valeur d'entrée doit être la description WKT ou GeoJSON d'une chaîne de lignes, d'un polygone, d'une chaîne multiligne ou d'un multipolygone. La dimension de la chaîne de lignes, du polygone, de la chaîne multiligne ou du multipolygone en entrée peut être 2D, 3DZ, 3DM ou 4D.

Conditions de l’erreur

  • Si geographyExpr est de type BINARY et que la valeur est un WKB non valide ou ne représente pas une chaîne de lignes, un polygone, une chaîne multiligne ou un multipolygone, la fonction renvoie WKB_PARSE_ERROR.
  • Si geographyExpr est de type STRING et que la valeur est un WKT non valide ou ne représente pas une chaîne de lignes, un polygone, une chaîne multiligne ou un multipolygone, la fonction renvoie WKT_PARSE_ERROR.
  • Si geographyExpr est de type STRING et que la valeur est un GeoJSON non valide ou ne représente pas une chaîne de lignes, un polygone, une chaîne multiligne ou un multipolygone, la fonction renvoie GEOJSON_PARSE_ERROR.
  • Si resolutionExpr est inférieure à 0 ou supérieure à 15, la fonction retourne H3_INVALID_RESOLUTION_VALUE.

Exemples

-- Simple example where the input is a triangle in WKT format.
> SELECT h3_coverash3string('POLYGON((-122.4194 37.7749,-118.2437 34.0522,-74.0060 40.7128,-122.4194 37.7749))', 0)
  [8027fffffffffff,8029fffffffffff,802bfffffffffff,8049fffffffffff]

-- Simple example where the input is a triangle in hexadecimal WKB format.
> SELECT h3_coverash3string(unhex('0103000000010000000400000050fc1873d79a5ec0d0d556ec2fe342404182e2c7988f5dc0f46c567dae064140aaf1d24d628052c05e4bc8073d5b444050fc1873d79a5ec0d0d556ec2fe34240'), 0)
  [8027fffffffffff,8029fffffffffff,802bfffffffffff,8049fffffffffff]

-- Simple example where the input is a linestring in GeoJSON format.
SELECT h3_coverash3string('{"type":"LineString","coordinates":[[-122.4194,37.7749],[-118.2437,34.0522],[-74.0060,40.7128]]}', 1)
  [8148fffffffffff, 8129bffffffffff, 812a3ffffffffff, 812abffffffffff, 81267ffffffffff, 8126fffffffffff, 81283ffffffffff]

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