调用百度定位的SDK进行定位,位置已经移动了,但是定位到的坐标没有变化?

毛豆啊 2017-04-11 05:26:05
我现在做的是在应用中每次拍照或是摄像后,有一个保存按钮,点击保存的时候开启定位服务,有坐标信息后在定位信息的回调中发送广播,然后接受坐标信息。但是现在遇到的一个问题是地理位置已经移动了,但是返回的坐标信息却没有改变。比如在地点A拍摄了一张照片,我点击了保存,然后此时定位到一个经纬度信息为11,6.2345,39.2345。然后我移动到地点B(地点B与地点A两者相距5km),拍摄了一张照片,点击保存后,返回的经纬度信息还是11,6.2345,39.2345。谁能解释下原因啊。我开启定位的代码是放在了一个继承了Application的MyApplicationLocation类中,每次开启定位使用如下方式开启:MyApplicationLocation.getInstance.onLineRequest();

在MyApplicationLocation中部分代码如下


public LocationClient mLocationClient = null;
private static MyApplicationLocation instance = null;

@Override
public void onCreate() {
super.onCreate();
instance = this;
mLocationClient = new LocationClient(getApplicationContext()); // 声明LocationClient类
mLocationClient.registerLocationListener(this); // 注册监听函数
}


public static MyApplicationLocation getInstance() {
return instance;
}


public void onLineRequest() {
setOption();
start();
if (mLocationClient != null && mLocationClient.isStarted()) {
mLocationClient.requestLocation(); // 发起定位,异步获取当前位置
}
}


然后剩下的就是在onReceiveLocation(BDLocation location)这个回调方法中发送定位到的坐标信息了。在设置参数时setScanSpan(1000)设置为了1000,所以并不是仅定位一次,再有就是每次点击保存图片时都会重新设置一遍啊,我刚去看了下百度地图SDK的官方api,也没有发现类似的参数或是方法,其中有一个方法是getLastKnownLocation(),官方的说明是:同步定位,返回最近一次定位结果,但是我每次定位都是新发出一个定位请求啊,求解下定位信息重复的原因,是因为缓存的原因吗?有没有什么解决方法?谢谢啦。(还有就是想问下,百度定位SDK中的离线定位的定义是什么啊?是指使用什么方式定位还是指离线定位是使用之前的地理位置信息)
...全文
1598 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
~楚云间 2019-09-11
  • 打赏
  • 举报
回复
var point = new BMap.Point(lon, lat);
num = true;
markerArr[i].setPosition(point);
D8945 2018-12-26
  • 打赏
  • 举报
回复
你要把 setOption();的代码发出来
毛豆啊 2017-04-21
  • 打赏
  • 举报
回复
有没有知道问题出在哪里的大神帮忙指导一下,谢谢啦。
毛豆啊 2017-04-14
  • 打赏
  • 举报
回复
问题大概出在哪里呢?

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧