geohash入门指南
Geohash编码是一种地理位置编码技术,它可将一个gps坐标(含经、纬度)点,转化为一个字符串;
wx3y5697
通过编码后得到的字符串,表达的是:包含被编码gps坐标点的一个矩形范围;

GEOHASH编码原理
参考:https://blog.csdn.net/okiwilldoit/article/details/118897109

在地球经纬度范围内,不断通过二分来划分矩形范围,通过观察gps坐标点所落的范围,来反复生成0/1二进制码。
在满足精度要求后,将所得的二进制编码通过base32编码技术转成字符串码,如下所示:

GEOHASH码的精度
字符串长度越长,表达的精度越高,矩形范围越小,越逼近原gps坐标点;
相反,长度越短,表达的精度越低,矩形范围越大;
geohash码的精确度对应表格:

GEOHASH编码工具包
gps坐标 转码成 geohash编码,这个算法不需要自己手写,有现成的工具包
pip install pygeohash
from pygeohash import encode, decode# 编码经纬度为Geohash字符串
geohash = encode(39.9042, 116.4074)
print(geohash) # 输出:wx4g0ec1mlatitude = 39.9042 # 纬度
longitude = 116.4074 # 经度
# geohash5
geohash = encode(latitude, longitude, 5) # 5表示geohash的长度
print(geohash)# 解码Geohash字符串为经纬度
location = decode('wx4g0ec1m')
print(location) # 输出:(39.9042, 116.4074)