GeoHash实现按距离排序、范围查找

简介

几乎所有的O2O应用中都会存在“按范围搜素、离我最近、显示距离”等等基于位置的交互。
根据一个中心点,搜索范围内的所有小区,然后根据小区分布在地图中生成板块边界。

GeoHash

geohash的原理不讲了,大家可以自行google之;geohash算法能把二维的经纬度编码成一维的字符串,它的特点是越相近的经纬度编码后越相似,所以可以通过前缀like的方式去匹配周围的小区。

根据经纬度,计算geo_code,这时可以指定精度计算,那指定多长呢?
我们需要一个geo_code长度和距离的对照表:
https://en.wikipedia.org/wiki/Geohash#Cell_Dimensions

image.png

假设我们的需求是1公里范围内的商户,geo_code的长度设置为5就可以了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容