我现在做的是在应用中每次拍照或是摄像后,有一个保存按钮,点击保存的时候开启定位服务,有坐标信息后在定位信息的回调中发送广播,然后接受坐标信息。但是现在遇到的一个问题是地理位置已经移动了,但是返回的坐标信息却没有改变。比如在地点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中的离线定位的定义是什么啊?是指使用什么方式定位还是指离线定位是使用之前的地理位置信息)