关于百度地图周边雷达的回调函数会重复调用问题的解决方案

//构造请求参数,其中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();

}

}

上面那个函数是百度地图的周边雷达的回调函数,每次发起周边位置查询请求的时候调用一次,不会重复调用。

首先说下这个问题,百度地图的周边雷达发情周边请求时,只会回调一次回调函数,这是百度技术员给的回答。

但是,我debug程序的时候,发现当我上一次查询周边之后,会调用一次回调函数,当我再次查询周边的时候,可能会回调两次回调函数。

造成这个问题的原因,是因为我完成周边查询之后,也调用了回调函数之后,没有清除周边位置信息,这样可能回调函数会把上次的查询结果再次回调一次,如果清除了位置信息就ok了,代码是这样的:

RadarSearchManager.getInstance().removeNearbyInfoListener(this);

RadarSearchManager.getInstance().clearUserInfo();

RadarSearchManager.getInstance().destroy();

ok,搞定,耗费了我一天的时间了~~~

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-10 23:30:42

关于百度地图周边雷达的回调函数会重复调用问题的解决方案的相关文章

2015/01/23 – 不要对异步回调函数进行同步调用

绝对不能对异步回调函数(即使在数据已经就绪)进行同步调用. 如果对异步回调函数进行同步调用的话,处理顺序可能会与预期不符,可能带来意料之外的后果. 对异步回调函数进行同步调用,还可能导致栈溢出或异常处理错乱等问题. 如果想在将来某时刻调用异步回调函数的话,可以使用 setTimeout 等异步API. function onReady(fn) { var readyState = document.readyState; if (readyState == 'interactive' || re

python通过multiprocessing 实现带回调函数的异步调用的代码

下边代码段是关于python通过multiprocessing 实现带回调函数的异步调用的代码. from multiprocessing import Pool def f(x): if __name__ == '__main__': pool = Pool(processes=1) # Start a worker processes. result = pool.apply_async(f, [10], callback) # Evaluate "f(10)" asynchron

百度地图坐标转换的异步回调事件

在后台拿到数据后,需要将坐标转化为百度坐标进行标注打点,同时进行划线. 代码如下: 1.请求service拿到坐标数据 //设备定位 $scope.loadPosition = function () { deviceService.Position($scope.coudition, function success(result, status) { line=[]; if (status) { if (result.data.length > 0) { line.push(result.d

百度地图周边物去除

去除周边的建筑物+名称 可以参考文章:https://blog.csdn.net/u013455430/article/details/80528931 原文地址:https://www.cnblogs.com/wmc1125/p/11421160.html

百度地图_api

这一天主要讲的是百度地图api的使用,由于百度有很详细的开发文档了,所以我这里只做一个大概的笔记 百度地图API的使用 1,入门 1.1,三大核心 ①SDKInitializer 整个百度的初始化工具类,引擎 ②MapView 用来显示地图的控件 ③baiduMap 相当于控制器,缩放,旋转,移动 1.2,准备工作(到百度地图LBS开放平台上查看) 获取API Key,按网上的帮助文档走步骤 获取SHA1码 百度地图的Key和应用是相互绑定的,一个Key对应一个应用. 1.3,创建工程拷贝jar

百度地图坐标转换服务封装(优化批量并发异步访问)

本人接触网页地图以来已有5年之窗,与百度地图打交道少说也有3年以上了,百度坐标转换从最开始的只支持单组坐标转换到现在的批量转换(限制每次100组),而且是无规律的算法纠偏,根本不好复制这种算法到本地进行转换,每次只能乖乖的ajax get到百度服务接口返回结果. 这种做法对于单组坐标的转换体验上影响不大,但是当我们需要纠偏的坐标量很多的时候,按正常的写法ajax异步请求,而且每次最多只能传入100组坐标,只能分批来调,而且是异步处理,还要定义一堆全局变量记住状态值,代码量多且复杂,项目大就难以管

关于js的callback回调函数的理解

回调函数的处理逻辑理解: 所谓的回调函数处理逻辑,其实就是先将回调函数的代码 冻结(或者理解为闲置),接着将这个回调函数的代码放到回调函数管理器的队列里面. 待回调函数被触发调用的时候,对应的回调函数的代码才会从管理器队列取出来并自动执行(激活回调函数的代码),实现异步的编程效果. 不过,对于一些必须要等回调函数执行完毕才可以确定的动作,实际上,就是会掉入一个层层回调的局面了.这点也是回调函数的复杂的地方! 换句话说,只要您要获取的值是要被回调才确定的,那接下来的所有代码都必须用回调的方式来编写

回调函数、Java接口回调 总结

回调函数 谈到回调,我们得先从回调函数说起,什么叫回调函数呢? 回调函数是什么?    百度百科的解释:回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数.回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外一方调用的,用于对该事件或条件进行响应.    接着,我们从下图简单说明一下回调函数.    已知图形上面三种模块,此时标号2能称为回调函数吗? 答案:不能,只有当标号2函

android菜鸟学习笔记30----Android使用百度地图API(一)准备工作及在应用中显示地图

1.准备工作: 百度地图API是免费开放的,但是需要申请API Key: 1)先注册一个百度开发者帐号 2)进入百度开放服务平台http://developer.baidu.com/ 3)进入LBS云 4)点击右上角的API控制台,没有登录的话会先跳转到登录页面,登录成功之后就进入应用控制台了: 5)点击创建应用: 应用类型选择Android SDK,注意下面的安全码,格式是数字签名+应用包名,中间用分号分隔.数字签名的获得: Eclipse中window->Preferences->Andr