V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Junco
V2EX  ›  程序员

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

  •  
  •   Junco · 2015-04-06 19:45:01 +08:00 · 4405 次点击
    这是一个创建于 3498 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    6 条回复    2015-05-27 17:42:22 +08:00
    jarlyyn
        1
    jarlyyn  
       2015-04-06 21:42:39 +08:00   ❤️ 2
    我猜:

    搜索关键字:geohash

    把地理位置hash成一个一个小方块。
    附近的理论上说就是找同一个小方块的人。
    est
        2
    est  
       2015-04-07 09:27:00 +08:00 via Android
    这就是为什么面试题老是考算法特别是排序的原因。。。
    unknownservice
        3
    unknownservice  
       2015-04-07 10:39:34 +08:00
    还记得地摊上找针的梗吗?道理是一样的,划格子就可以了。
    Arrowing
        4
    Arrowing  
       2015-04-07 12:30:13 +08:00
    简单,使用mongodb,支持位置查找,哈哈。。。
    Sfan
        5
    Sfan  
       2015-04-07 15:30:59 +08:00
    可以看一下这个 ... http://www.wubiao.info/401
    sjrong1988
        6
    sjrong1988  
       2015-05-27 17:42:22 +08:00
    还有没有其他方案
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2878 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 13:39 · PVG 21:39 · LAX 06:39 · JFK 09:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.