离线定位
更新时间:2019年06月03日
百度地图Android定位SDK自V7.3版本起,面向广大开发者提供了离线定位的能力。
Android定位SDK离线定位功能的作用主要是在开发者app网络出现不良情况下,仍然能够给出定位结果,保证了网络异常情况下的定位成功率。整个离线定位功能由定位SDK内部自己实现,无需开发者做额外配置,但需要说明的是离线定位功能并不能百分之百保证在网络异常时定位成功,且只是输出x,y坐标,相应的反地理编码(省市区等信息)并不能输出。随着用户使用定位sdk的次数越来越多,离线定位的成功率也会越来越高。
离线定位结果是在开启定位SDK之后,当网络出现异常的时候自动回调的,网络正常时会回调正常的定位结果。
1核心代码段如下
public class MyLocationListener extends BDAbstractLocationListener{ @Override public void onReceiveLocation(BDLocation location){ //此处的BDLocation为定位结果信息类,通过它的各种get方法可获取定位相关的全部结果 if (location.getLocType() == BDLocation.TypeOffLineLocation) { // 离线定位成功 Log.i("baidu_location_result", "offline location success"); double lat = location.getLatitude(); double lon = location.getLongitude(); } else if (location.getLocType() == BDLocation.TypeOffLineLocationFail) { // 离线定位失败 Log.i("baidu_location_result", "offline location fail"); } else { Log.i("baidu_location_result", "location type = " + location.getLocType()); } } }