处理 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 编码字符串数组,这些字符串落在并相交于给定区域的边界,基本上是展平为数组的 2D 网格。
语法
参数
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 项,函数将抛出异常。
示例
查询:
结果: