GeoHash算法
应用场景
应用于很多和地理相关的应用,如地图导航查找附近的加油站,美团外卖中商家的距离,查找附近的人;这些建筑和人的距离是怎么计算出来的呢?
拿加油站的例子,我现在在上海某区,我要找距离我200米以内的加油站,上海有几百个加油站,如果都遍历一遍,计算和我的距离,效率太低了。所以缩小范围再遍历,是一个有效的方法。这就可能用到GeoHash算法。
GeoHash算法就是将经纬度编码,将二维变成一纬,给地址位置分区。
GeoHash是一种地址编码方法。他能够把二维的空间经纬度数据编码成一个字符串
基本知识
某一坐标的定位,一般用经纬度进行标记,经度范围是-180-180,纬度范围是-90-90。
GeoHash算法步骤
Step1:经纬度转二进制
location(53.5998310000, 123.3007050000)
纬度范围是[-90,90],可以对纬度算二进制编码,每次都对半,在右半边就是1,在左半边就是0,一共是15位。
同理,地球经度区间是[-180,180],可以对经度进行编码,一共15位,不