location based design. 类似yelp,要求使用quad-tree

看到网上面经被问到,要使用quad tree 不要使用geoHash, 因为那个面试官认为“closest points might not have closest geo hash” 就像课上提到的一样,可能两个最近的点的路线不是最短的。那像这种改怎么办?谢谢!

这里推荐的方案 Geohash/Google S2 是专门为 location-based 设计。我认为使用 Geohash/Google S2 在实践中比 quadtree 更优。Quadtree 也可以用来解决这个问题,但是需要在这个基础上做地球球面的优化以及自己实现一系列的功能,比如范围搜索,不如直接使用 Google S2.
确实两点间最近的路线不是一条直线,但跟 Geohash/Google S2 vs Quadtree 没有关系。两点间路线需要根据地图的路网来计算路线。
Geohash/Google S2 的主要使用场景是范围搜索。