次の方法で共有


h3_pointash3 関数

指定した解像度で指定されたポイントに対応する H3 セル ID (BIGINT として) を返します。

適用対象: check marked yes Databricks SQL プレビュー 「はい」のチェック マーク Databricks Runtime 11.3 LTS 以降

構文

h3_pointash3 ( geographyExpr, resolutionExpr )

引数

  • geographyExpr: WKBWKT、または GeoJSON でのポイントの地理的な場所を表す BINARY 式または STRING 式。 地理的な場所には、WGS84 座標参照系を参照する経度と緯度の座標が必要です。
  • resolutionExpr: H3 セル ID の解像度が指定されており、値が 0 から 15 の範囲であると想定される INT 式。

戻り値

指定した解像度で指定されたポイントに対応する H3 セル ID (BIGINT として) を返します。

いずれかの入力式が NULL の場合、この関数は NULL を返します。 最初の入力引数が BINARY 型の場合、入力値はポイントの WKB 記述であると想定されます。 最初の入力引数が STRING 型の場合、入力値は、ポイントの WKT (https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry) または GeoJSON 記述のいずれかであると想定されます。 入力ポイントの次元は、2D、3DZ、3DM、または 4D にすることができます。 WKBWKT、または GeoJSON 記述の経度と緯度の値は、WGS84 座標参照系内に存在していると想定されます。 最初の入力が空のポイントに対応する場合、関数は NULL を返します。

エラー条件

  • geographyExpr が BINARY 型で、値が無効な WKB であるかポイントを表していない場合、関数は WKB_PARSE_ERROR を返します。
  • geographyExpr が STRING 型で、値が無効な WKT であるかポイントを表していない場合、関数は WKT_PARSE_ERROR を返します。
  • geographyExpr が STRING 型で、値が無効な GeoJSON であるかポイントを表していない場合、関数は GEOJSON_PARSE_ERROR を返します。
  • resolutionExpr0 より小さいか 15 より大きい場合、関数は H3_INVALID_RESOLUTION_VALUE を返します。

-- Simple example.
> SELECT h3_pointash3('POINT(100 45)', 6)
  604116085645508607

-- The H3 cell ID for the Golden Gate Bridge at resolution 13.
> SELECT h3_pointash3('POINT(-122.4783 37.8199)', 13)
  635714569676958015

-- The function returns NULL if the input is the empty point.
> SELECT h3_pointash3('{"type":"Point","coordinates":[]}', 15)
  null

-- Feeding a multipoint in WKT format instead of a point.
> SELECT h3_pointash3('MULTIPOINT(100 45)', 6)
  [WKT_PARSE_ERROR] Error parsing WKT: Invalid or unsupported type 'MULTIPOINT' at position 1

-- Feeding an invalid GeoJSON string ("type" value is not correct).
> SELECT h3_pointash3('{"type":"POINT","coordinates":[]}', 15)
  [GEOJSON_PARSE_ERROR] Error parsing GeoJSON: Invalid or unsupported type '"POINT"' at position 9

-- Feeding an invalid WKB (invalid endianness value)
> SELECT h3_pointash3(unhex('0201000000516b9a779c9e5ec0c5feb27bf2e84240'), 2)
  [WKB_PARSE_ERROR] Error parsing WKB: Invalid byte order 2 at position 1

-- Resolution is out of range.
> SELECT h3_pointash3('POINT(-122.4783 37.8199)', 16)
  [H3_INVALID_RESOLUTION_VALUE] H3 resolution 16 must be between 0 and 15, inclusive