简介
1. 什么是周边雷达功能?
周边雷达功能,是面向移动端开发者的一套SDK功能接口。同步支持Android和iOS端。它的本质是一个连接百度LBS开放平台前端SDK产品和后端LBS云的中间服务。
2. 利用周边雷达能够实现什么?
开发者利用周边雷达功能,可以便捷的在自己的应用内,帮助用户实现查找周边跟“我”使同样一款App的人,这样一个功能。
3. 周边雷达功能的典型使用场景
(1)查看周边都有谁跟“我”使用同一个App,分布在哪里?
(2)查看周边用户在听什么歌、看什么文章、有什么新动态?
(3)查看周边有什么最新发生的新闻、资讯?
4. 使用周边雷达功能的流程
第一步、注册周边雷达
在使用周边雷达功能之前,需要对应用的密钥(Key)做相应的注册操作。周边雷达支持应用位置信息上传,及一个或多个应用之间实现相互的位置信息查看功能。
第二步、集成SDK
周边雷达是地图SDK产品的一个功能模块,需要使用周边雷达功能的开发者,需在官网下载包含周边雷达功能的地图SDK,并将其集成到自己的开发环境中即可。
具体SDK集成方式请参考《开发指南 – 配置环境及发布》章节的介绍。
第三步、开发
完成周边雷达注册和SDK集成后,即可开始具体功能的开发工作。
具体使用方法请参考后文的详细介绍及官方Demo示例。
坐标说明
百度地图SDK接口和返回内容的坐标目前仅支持百度BD09坐标,如果您使用的是GPS WGS84坐标或国测局GCJ02坐标,需要将WGS84坐标或GCJ02坐标转换为BD09坐标。
相应的接口和转换方法请参考坐标转换,请勿使用非官方的转换方法。
注册周边雷达功能
注册周边雷达是使用其相应功能的基础前提。通过注册可实现一个或多个应用之间的关系绑定,实现相互之间的位置信息查看。
点击如下按钮,进入我的周边雷达管理及新建页面。
初始化周边雷达功能
在使用位置信息上传和检索周边位置信息之前,需要对周边雷达功能模块进行初始化操作。初始化的核心代码如下:
RadarSearchManagermManager = RadarSearchManager.getInstance();
位置信息上传
周边雷达功能模块,支持将用户的位置等信息上传到百度LBS云服务,从而实现应用内部及应用之间的位置信息查看。
目前支持单次位置信息上传和位置信息连续自动上传两种模式。
单次位置信息上传的核心代码如下:
//周边雷达设置监听
mManager.addNearbyInfoListener(this);
//周边雷达设置用户身份标识,id为空默认是设备标识
mManager.setUserID(userID);
//上传位置
RadarUploadInfo info = new RadarUploadInfo();
info.comments = “用户备注信息”;
info.pt = pt;
mManager.uploadInfoRequest(info);
//监听上传结果
@Override
publicvoidonGetUploadState(RadarSearchError error) {
// TODO Auto-generated method stub
if (error == RadarSearchError.RADAR_NO_ERROR) {
//上传成功
Toast.makeText(RadarDemo.this, "单次上传位置成功", Toast.LENGTH_LONG)
.show();
} else {
//上传失败
Toast.makeText(RadarDemo.this, "单次上传位置失败", Toast.LENGTH_LONG)
.show();
}
}
位置信息连续自动上传的核心代码如下:
//设置自动上传的callback和时间间隔
mManager.startUploadAuto(this, 5000);
//实现上传callback,自动上传
@Override
publicRadarUploadInfoOnUploadInfoCallback() {
// TODO Auto-generated method stub
RadarUploadInfo info = new RadarUploadInfo();
info.comments = “用户备注信息”;
info.pt = pt;
return info;
}
周边位置检索
利用周边雷达功能,可实现周边(处于同一个周边雷达关系内)用户位置信息检索的能力。
检索过程支持距离、时间等约束条件;返回结果支持按照距离、时间远近的排序。
核心代码如下:
//构造请求参数,其中centerPt是自己的位置坐标
RadarNearbySearchOption option = newRadarNearbySearchOption().centerPt(pt).pageNum(pageIndex).radius(2000);
//发起查询请求
mManager.nearbyInfoRequest(option);
@Override
publicvoidonGetNearbyInfoList(RadarNearbyResult result,
RadarSearchError error) {
// TODO Auto-generated method stub
if (error == RadarSearchError.RADAR_NO_ERROR) {
Toast.makeText(RadarDemo.this, "查询周边成功", Toast.LENGTH_LONG)
.show();
//获取成功,处理数据
} else {
//获取失败
Toast.makeText(RadarDemo.this, "查询周边失败", Toast.LENGTH_LONG)
.show();
}
}
清除用户信息
用户信息清除后,将不会再被其他人检索到。
清除信息的核心代码如下:
mManager.clearUserInfo();
//处理清除的监听
@Override
publicvoidonGetClearInfoState(RadarSearchError error) {
// TODO Auto-generated method stub
if (error == RadarSearchError.RADAR_NO_ERROR) {
//清除成功
Toast.makeText(RadarDemo.this, "清除位置成功", Toast.LENGTH_LONG)
.show();
} else {
//清除失败
Toast.makeText(RadarDemo.this, "清除位置失败", Toast.LENGTH_LONG)
.show();
}
}
释放周边雷达资源
在停止使用周边雷达功能时,需释放资源。初始化的核心代码如下:
//移除监听
mManager.removeNearbyInfoListener(this);
//清除用户信息
mManager.clearUserInfo();
//释放资源
mManager.destroy();
mManager = null;