简介
几乎所有的O2O应用中都会存在“按范围搜素、离我最近、显示距离”等等基于位置的交互。
根据一个中心点,搜索范围内的所有小区,然后根据小区分布在地图中生成板块边界。
GeoHash
geohash的原理不讲了,大家可以自行google之;geohash算法能把二维的经纬度编码成一维的字符串,它的特点是越相近的经纬度编码后越相似,所以可以通过前缀like的方式去匹配周围的小区。
根据经纬度,计算geo_code,这时可以指定精度计算,那指定多长呢?
我们需要一个geo_code长度和距离的对照表:
https://en.wikipedia.org/wiki/Geohash#Cell_Dimensions
假设我们的需求是1公里范围内的商户,geo_code的长度设置为5就可以了。