h3_pointash3 函数

返回对应于指定分辨率下提供的点的 H3 单元格 ID(表示为 BIGINT)。

适用于:勾选“是” Databricks SQL 预览版 勾选“是” Databricks Runtime 11.3 LTS 及更高版本

语法

h3_pointash3 ( geographyExpr, resolutionExpr )

参数

  • geographyExpr:表示点地理位置的 BINARY 或 STRING 表达式(采用 WKBWKTGeoJSON 格式)。 地理位置应具有参考 WGS84 坐标参考系统的经纬度坐标(以度为单位)。
  • resolutionExpr:一个 INT 表达式,其值应介于 015 之间(含),它指定 H3 单元格 ID 的分辨率。

返回

返回对应于指定分辨率下提供的点的 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。 WKBWKTGeoJSON 说明中的经度和纬度值应在 WGS84 坐标参考系统中。 如果第一个输入对应于空点,则函数会返回 NULL。

错误条件

  • 如果 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.
> 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