Partager via


Fonction h3_polyfillash3

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

Retourne un tableau d’ID de cellule H3 (représentés sous forme de BIGINT) correspondant aux hexagones ou aux pentagones, de la résolution spécifiée, qui sont contenus dans la géographie de la zone d’entrée.

Syntaxe

h3_polyfillash3 ( geographyExpr, resolutionExpr )

Arguments

  • geographyExpr : Une expression BINARY ou STRING représentant une zone géographique (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 : expression INT dont la valeur doit être comprise entre 0 et 15 inclus, en spécifiant la résolution des ID de cellule H3.

Retours

TABLEAU de valeurs BIGINT correspondant aux ID de cellule H3, de la résolution spécifiée, qui sont contenues par la géographie de la zone d’entrée.

La fonction retourne 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 correspondre à la description WKB d’un polygone ou d’un multipolygone. Si le premier argument d’entrée est de type STRING, la valeur d’entrée est censée être la description WKT ou GeoJSON d’un polygone ou d’un multipolygone. La dimension du polygone ou multipolygone d’entrée peut être 2D, 3DZ, 3DM ou 4D.

Conditions d'erreur

  • Si geographyExpr est de type BINARY et que la valeur est un WKB non valide ou ne représente pas un polygone ou multipolygone, la fonction retourne WKB_PARSE_ERROR.
  • Si geographyExpr est de type STRING et que la valeur est un WKT non valide ou ne représente pas un polygone ou multipolygone, la fonction retourne WKT_PARSE_ERROR.
  • Si geographyExpr est de type STRING et que la valeur est un GeoJSON non valide ou ne représente pas un polygone ou multipolygone, la fonction retourne 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_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