您的位置:首页 > 其它

使用Geohash搜寻附近位置是有bug的

2015-12-04 16:00 274 查看
摘要: 这么明显的问题

有很多人说可以通过geohash把GPS经纬度转换为字符串,然后通过字符串的前缀匹配获得原始点附近的点(存
在数据库中)。但这样做有个明显的bug,只要考虑如下的java代码运行结果,就知道了:

System.out.println(Geohash.encode(45.000001, 118.768011));
System.out.println(Geohash.encode(45.000002, 118.768011));
System.out.println(Geohash.encode(44.999999, 118.768011));
System.out.println(Geohash.encode(44.999989, 118.768011));

计算出来的hash值分别如下:
y8h2n8h0p0pv
y8h2n8h0p0rg
wxuryxupzpzf
wxuryxupzjzy

可以看出,存在明显的45度分割值,也就是说如果原始点在分割线附近,那么通过前缀匹配是不可能把原始点所有的附近点都找到的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  geohash 附近