结合MongoDB开发LBS应用-查看附近的人

最近负责的APP要上查看附件的人的功能

之前用coreseek做过类似附近的人的功能,觉得搭建索引整个下来太麻烦了

就开始寻找新的解决方案,查找到深入浅出Symfony2 - 结合MongoDB开发LBS应用,里面介绍了4个可选方案,推荐使用MongoDB来实现

首先加一点往MongoDB数据

img

了解下geoNear的参数使用,如下的查询语句可以查询为某经纬度为中心附近的用户(从近到远),也计算去距离了。

img1

thinkphp实现的代码,距离单位都是km

 
$where['geoNear'] = 'user_coordinate';
$where['near'] = array($longitude,$latitude);
$where['spherical'] = true;
$where['maxDistance'] = $maxDistance/6371;
$where['distanceMultiplier'] = 6371;
$where['query'] = array("status"=>1);

$res = $this->_user_coordinate_mod->command($where);
if (!empty($res['results'])) {
foreach ($res['results'] as $key => $value) {
$data[$key] = $value['obj'];
$data[$key]['dis'] = $value['dis'];
}

}
return $data;

就这样搞定了

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注