广东体彩网 > 技术文档 > 技术文档 > mongdb的lbs位置查询的php语法

mongdb的lbs位置查询的php语法

时间:2016-7-1 已查看1190次

# 插入数据 lng对应经度  lat对应纬度 均为float型

广东体彩网db.collection.insert({location:[lng,lat],title:'test title'})

# 创建2D空间索引

广东体彩网# 2dsphere支持球面检索  2d二维空间搜索

db.collection.ensureIndex({location:'2dsphere'})

# 按照半径搜索 搜索半径内的所有的点 按照由近到远排序

广东体彩网db.collection.find(

广东体彩网    {

        location:

        {

广东体彩网            $geoWithin:

广东体彩网            {

广东体彩网                $centerSphere: [ [lng, lat], 检索半径]

广东体彩网            }

        }

    }

)

广东体彩网# 搜索全部数据 按照由近到远排序

广东体彩网db.collection.find(

广东体彩网    {

        location:

广东体彩网        {

            $near:

            [lng, lat]

广东体彩网        }

    }

)

广东体彩网搜索出的结果已经是由远到近排序了,如果需要输出距离计算。$geoNear搜索返回的数据中已有distance(距离),不过不支持其他命令,如limit



php代码:

广东体彩网// 搜寻附近的坐标  

function query($dbconn, $tablename, $longitude, $latitude, $maxdistance, $limit=10){  

    $param = array(  

        'location' => array(  

广东体彩网            '$geoWithin' => array(  

广东体彩网                '$geometry' => array(  

                    'centerSphere' => array(array(doubleval($longitude), doubleval($latitude)),$maxdistance/111),   

                )

广东体彩网            )  

广东体彩网        )  

    );  

  

广东体彩网    $coll = $dbconn->selectCollection($tablename);  

广东体彩网    $cursor = $coll->find($param);  

    $cursor = $cursor->limit($limit);  

      

    $result = array();  

    foreach($cursor as $v){  

广东体彩网        $result[] = $v;  

广东体彩网    }    

  

广东体彩网    return $result;  

}  


上一篇:php利用stream_socket_server与stream_socket_client 下一篇:php下的mongodb地理位置搜寻
广东体彩网/注册//登录/平台/官网(安全无忧购彩) 广东体彩网/注册//登录/平台/官网(安全无忧购彩) 广东体彩网/注册//登录/平台/官网(安全无忧购彩) 广东体彩网/注册//登录/平台/官网(安全无忧购彩) 广东体彩网/注册//登录/平台/官网(安全无忧购彩) 广东体彩网/注册//登录/平台/官网(安全无忧购彩) 广东体彩网/注册//登录/平台/官网(安全无忧购彩) 广东体彩网/注册//登录/平台/官网(安全无忧购彩) 赢多多/注册//登录/平台/官网(安全无忧购彩) 赢多多/注册//登录/平台/官网(安全无忧购彩) 赢多多/注册//登录/平台/官网(安全无忧购彩) 赢多多/注册//登录/平台/官网(安全无忧购彩) 赢多多/注册//登录/平台/官网(安全无忧购彩) 赢多多/注册//登录/平台/官网(安全无忧购彩) 赢多多/注册//登录/平台/官网(安全无忧购彩) 赢多多/注册//登录/平台/官网(安全无忧购彩) 赢多多/注册//登录/平台/官网(安全无忧购彩) 赢多多/注册//登录/平台/官网(安全无忧购彩) 赢多多/注册//登录/平台/官网(安全无忧购彩) 赢多多/注册//登录/平台/官网(安全无忧购彩)