h3_polyfillash3
関数
適用対象: Databricks SQL Databricks Runtime 11.3 LTS 以降
入力された面状の地理的な場所に含まれているもので、指定した解像度の六角形または五角形に対応する H3 セル ID (BIGINT として表されます) の ARRAY を返します。
構文
h3_polyfillash3 ( geographyExpr, resolutionExpr )
引数
geographyExpr
: WKB、WKT、または GeoJSON での地域の地理的な場所 (ポリゴンまたはマルチポリゴン) を表す BINARY または STRING 式。 地理的な場所には、WGS84 座標参照系を参照する経度と緯度の座標が必要です。resolutionExpr
: H3 セル ID の解像度を指定する、値が0
から15
の範囲と予想される INT 式。
戻り値
入力された面状の地理的な場所に含まれる、指定した解像度の H3 セル ID に対応する BIGINT 値の配列。
いずれかの入力式が NULL の場合、この関数は NULL を返します。 最初の入力引数が BINARY 型の場合、入力値は多角形またはマルチポリゴンの WKB 記述であると想定されます。 最初の入力引数が STRING 型の場合、入力値は、多角形またはマルチポリゴンの WKT または GeoJSON 記述のいずれかである必要があります。 入力ポリゴンまたはマルチポリゴンの次元は、2D、3DZ、3DM、または 4D にすることができます。
エラー条件
geographyExpr
が BINARY 型で、値が無効な WKB であるか、多角形またはマルチポリゴンを表していない場合、関数は WKB_PARSE_ERROR を返します。geographyExpr
が STRING 型で、値が無効な WKT であるか、多角形またはマルチポリゴンを表していない場合、関数は WKT_PARSE_ERROR を返します。geographyExpr
が STRING 型で、値が無効な GeoJSON であるか、多角形またはマルチポリゴンを表していない場合、関数は GEOJSON_PARSE_ERROR を返します。resolutionExpr
が0
より小さいか15
より大きい場合、関数は H3_INVALID_RESOLUTION_VALUE を返します。
例
-- 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