问下研究过 [附近的人] 功能的朋友,你的解决是什么?
两三年前做过类似于微信『附近的人』功能,就是基于地理位置信息算出离你最近的人。当时使用的是 MongoDB 的 $near
方案,在已经存入用户坐标后,使用类似以下代码算出来:
'$near' => [
'$geometry' => ['type' => 'Point', 'coordinates' => $mylocation],
'$maxDistance' => 50 * 1000, // unit is meter, 50 公里内
]
当时选择这个方案有几个考虑点:
- 速度可接受,100w 数据内少于 0.3 秒;
- 实现起来比较简单,只需要加个 MongoDB 然后存储地理位置信息即可查询;
- 架构相对简单,只多了个 MongoDB;
- 应用使用量不是很大。
对于研究过这个话题的同学,想听听看你们最终使用的方案是什么?为什么选择这个方案?方案的亮点在哪里?
推荐文章: