st_geohash 函数

适用于:检查标记为“是”的 Databricks SQL 检查标记为“是”是 Databricks Runtime 17.1 及更高版本

Important

此功能目前以公共预览版提供。

注释

此功能在 Databricks SQL 经典仓库上不可用。 若要详细了解 Databricks SQL 仓库,请参阅 SQL 仓库类型

以给定精度返回输入 GEOMETRY 值的地理哈希。 如果未指定精度,表达式的行为就像指定的精度为 -1 一样。

Syntax

st_geohash ( geoExpr [, precisionExpr] )

Arguments

  • geoExpr:一个 GEOMETRY 值。
  • precisionExpr:输出 geohash 的可选精度(有效位数)。

Returns

STRING 类型的值,表示输入几何图形的 geohash。

更确切地说:

  • 如果输入几何图形为空,则表达式返回 NULL
  • 如果精度为 0,则返回空字符串。
  • 如果精度为正值,则表达式以指定的精度返回几何图形边界框中心的地理hash 值。
  • 如果精度为负数,表达式将返回 geohash 值,此值与完全覆盖输入几何图形边界框的最大精度(但不超过 12)的 geohash 网格桶相对应。 如果此类 geohash 网格存储桶不存在,则返回空字符串。

有关地理散列的更多详细信息,请参阅 维基百科

如果输入为 NULL.,则函数返回 NULL

错误条件

Examples

-- Returns the geohash of a point at default precision.
> SELECT st_geohash(st_geomfromtext('POINT(-122.4261475 37.77374268)'));
  9q8yyhebpbpb
-- Returns the geohash of a point at precision 6.
> SELECT st_geohash(st_geomfromtext('POINT(-122.4261475 37.77374268)'), 6);
  9q8yyh
-- Returns the geohash of a linestring at default precision.
> SELECT st_geohash(st_geomfromtext('LINESTRING(-122.43 37.77,-122.42 37.78)'));
  9q8yy
-- Returns the geohash of a linestring at precision 9.
> SELECT st_geohash(st_geomfromtext('LINESTRING(-122.43 37.77,-122.42 37.78)'), 9);
  9q8yyhsz6
-- Returns empty string for a large geometry that doesn't fit in any geohash bucket.
> SELECT length(st_geohash(st_geomfromtext('LINESTRING(0 0,60 60)')));
  0