您当前的位置: iOS SDK > 开发指南 > 周边雷达
周边雷达

简介

1. 什么是周边雷达功能?

周边雷达功能,是面向移动端开发者的一套SDK功能接口。同步支持Android和iOS端。它的本质是一个连接百度LBS开放平台前端SDK产品和后端LBS云的中间服务。


8fb2ad6c-e0cf-47c2-b72d-cae5f6531278.JPG

2. 利用周边雷达能够实现什么?

开发者利用周边雷达功能,可以便捷的在自己的应用内,帮助用户实现查找周边跟“我”使同样一款App的人,这样一个功能。

3. 周边雷达功能的典型使用场景

(1)查看周边都有谁跟“我”使用同一个App,分布在哪里?

(2)查看周边用户在听什么歌、看什么文章、有什么新动态?

(3)查看周边有什么最新发生的新闻、资讯?

4. 使用周边雷达功能的流程

第一步 注册周边雷达

在使用周边雷达功能之前,需要对应用的密钥(Key)做相应的注册操作。周边雷达支持应用位置信息上传,及一个或多个应用之间实现相互的位置信息查看功能。

第二步 集成SDK

周边雷达是地图SDK产品的一个功能模块,需要使用周边雷达功能的开发者,需在官网下载包含周边雷达功能的地图SDK,并将其集成到自己的开发环境中即可。 具体SDK集成方式请参考《开发指南 – 配置开发环境》章节的介绍。

第三步 开发

完成周边雷达注册和SDK集成后,即可开始具体功能的开发工作。 具体使用方法请参考后文的详细介绍及官方Demo示例。

坐标说明

百度地图SDK接口和返回内容的坐标目前仅支持百度BD09坐标,如果您使用的是GPS WGS84坐标或国测局GCJ02坐标,需要将WGS84坐标或GCJ02坐标转换为BD09坐标。

相应的接口和转换方法请参考坐标转换请勿使用非官方的转换方法。

注册周边雷达功能

注册周边雷达是使用其相应功能的基础前提。通过注册可实现一个或多个应用之间的关系绑定,实现相互之间的位置信息查看。

点击如下按钮,进入我的周边雷达管理及新建页面。

2.png

初始化周边雷达功能

在使用位置信息上传和检索周边位置信息之前,需要对周边雷达功能模块进行初始化操作。初始化的核心代码如下:

1、周边雷达管理类使用了单例模式,并且通过引用计数的方式管理这个实例。可以使用使用下边的方法获取实例(引用计数加1):

BMKRadarManager *_radarManager = [BMKRadarManagergetRadarManagerInstance];
在不需要时,通过下边的方法使引用计数减1
[BMKRadarManagerreleaseRadarManagerInstance];

2、在上传和拉取位置信息前,需要设置userid,否则会自动生成.设置userid的代码如下:

[_radarManager.userId = @"baidu_mapsdk_radarid"];

3、通过添加radar delegate获取自动上传时的位置信息,以及获得雷达操作结果,代码如下:

[_radarManageraddRadarManagerDelegate:self];//添加radar delegate

在不需要时,需要移除radar delegate,否则会影响内存的释放。代码如下:

[_radarManagerremoveRadarManagerDelegate:self];//不用需移除,否则影响内存释放

位置信息上传

周边雷达功能模块,支持将用户的位置等信息上传到百度LBS云服务,从而实现应用内部及应用之间的位置信息查看。

目前支持单次位置信息上传和位置信息连续自动上传两种模式。

单次位置信息上传的核心代码如下:

//构造我的位置信息
BMKRadarUploadInfo *myinfo = [[BMKRadarUploadInfoalloc] init];
myinfo.extInfo = @"hello,world";//扩展信息
myinfo.pt = CLLocationCoordinate2DMake(39.916, 116.404);//我的地理坐标
//上传我的位置信息
BOOL res = [_radarManageruploadInfoRequest:myinfo];
if (res) {
NSLog(@"upload 成功");
    } else {
NSLog(@"upload 失败");
}

位置信息连续自动上传的核心代码如下:

//启动自动上传用户位置信息,需要实现getRadarAutoUploadInfo获取我的位置信息
[_radarManagerstartAutoUpload:5];

周边位置检索

利用周边雷达功能,可实现周边(处于同一个周边雷达关系内)用户位置信息检索的能力。 检索过程支持距离、时间等约束条件;返回结果支持按照距离、时间远近的排序。

第一步,发起检索请求,核心代码如下:

BMKRadarNearbySearchOption *option = [[BMKRadarNearbySearchOptionalloc] init]
    ;
option.radius = 8000;//检索半径
option.sortType = BMK_RADAR_SORT_TYPE_DISTANCE_FROM_NEAR_TO_FAR;//排序方式
option.centerPt = _CLLocationCoordinate2DMake(39.916, 116.404);//检索中心点
//发起检索
BOOL res = [_radarManagergetRadarNearbySearchRequest:option];
if (res) {
NSLog(@"get 成功");
    } else {
NSLog(@"get 失败");
}

第二步,实现BMKRadarManagerDelegate回调方法获取结果,核心代码如下:

- (void)onGetRadarNearbySearchResult:(BMKRadarNearbyResult *)result error:(BMKRadarErrorCode)error {
NSLog(@"onGetRadarNearbySearchResult  %d", error);
if (error == BMK_RADAR_NO_ERROR) {
    }
}