处理Geohash的函数
Geohash
Geohash 是一种地理编码系统,它将地球表面细分为网格形状的桶,并将每个单元格编码为一个短字符串,包含字母和数字。它是一种层次数据结构,因此Geohash字符串越长,地理位置的精度就越高。
如果您需要手动将地理坐标转换为Geohash字符串,可以使用 geohash.org。
geohashEncode
将纬度和经度编码为一个 geohash 字符串。
语法
输入值
longitude
— 您想要编码的坐标的经度部分。浮动范围为[-180°, 180°]
。 Float。latitude
— 您想要编码的坐标的纬度部分。浮动范围为[-90°, 90°]
。 Float。precision
(可选) — 结果编码字符串的长度。默认为12
。整数范围为[1, 12]
。 Int8。
备注
- 所有坐标参数必须是相同类型:要么是
Float32
,要么是Float64
。 - 对于
precision
参数,任何小于1
或大于12
的值会隐式转换为12
。
返回值
- 编码坐标的字母数字字符串(使用修改过的 base32 编码字母表)。 String。
示例
查询:
结果:
geohashDecode
将任何 geohash 编码字符串解码为经度和纬度。
语法
输入值
hash_str
— Geohash 编码字符串。
返回值
示例
geohashesInBox
返回给定精度下落在给定边界内并相交的 geohash 编码字符串的数组,基本上是一个展平到数组的二维网格。
语法
参数
longitude_min
— 最小经度。范围:[-180°, 180°]
。 Float。latitude_min
— 最小纬度。范围:[-90°, 90°]
。 Float。longitude_max
— 最大经度。范围:[-180°, 180°]
。 Float。latitude_max
— 最大纬度。范围:[-90°, 90°]
。 Float。precision
— Geohash 精度。范围:[1, 12]
。 UInt8。
备注
所有坐标参数必须是相同类型:要么是 Float32
,要么是 Float64
。
返回值
备注
如果结果数组超过 10'000'000 项,函数将抛出异常。
示例
查询:
结果: