微信的“附近的人”和“摇一摇”功能是怎样实现的?

2015-04-06 19:45:01 +08:00
 Junco

RT,如果将每个终端的地理坐标都存进数据库的话,每次有新用户摇一摇的时候,都需要从数据库中取出其它人的坐标信息进行一次距离计算,代价好像有点太大,不知道有什么好办法?

4467 次点击
所在节点    程序员
6 条回复
jarlyyn
2015-04-06 21:42:39 +08:00
我猜:

搜索关键字:geohash

把地理位置hash成一个一个小方块。
附近的理论上说就是找同一个小方块的人。
est
2015-04-07 09:27:00 +08:00
这就是为什么面试题老是考算法特别是排序的原因。。。
unknownservice
2015-04-07 10:39:34 +08:00
还记得地摊上找针的梗吗?道理是一样的,划格子就可以了。
Arrowing
2015-04-07 12:30:13 +08:00
简单,使用mongodb,支持位置查找,哈哈。。。
Sfan
2015-04-07 15:30:59 +08:00
可以看一下这个 ... http://www.wubiao.info/401
sjrong1988
2015-05-27 17:42:22 +08:00
还有没有其他方案

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/181937

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX