Android 百度地图sdk3.2下 离线地图包的导入

时间:2021-01-14 01:38:08

前段时间用百度地图,在使用离线地图包导入的时候发现一个问题,从百度官网下载的离线包无法导入,但是用百度地图的demo可以下载离线包使用,当时对方式没什么要求,能用就行,就用他们demo下载离线包,最近对方式有要求了,必须得使用离线包的方式

然后用百度地图的demo都无法导入,然后去网上一查,呵呵,各种同道中人在饱受折磨,经过仔细观察,发现了一些门道,希望能帮助你们

首先,百度离线地图包下载完,在BaiduMap下vmp下有个文件夹,这要注意了这是以一个字母命名的,h或者l,问题就出现在这两个命名上

百度上有这么一句话: 

前提:获取自己手机的分辨率。

操作:选完品牌后,在机型下拉列表最下方选择“高分屏包(分辨率480*800及以上机型通用)”or“低分屏包(分辨率480*800)

Android 百度地图sdk3.2下 离线地图包的导入

注:如540*960使用高分屏包(分辨率480*800及以上)

我的平板的分辨率好像是1024*600的,因为是工业平板,没有我的品牌我就用的是htc one s的,下载完之后vmp下是h,复制,黏贴,就导不进去

偶然间发现,我原先用demo下载的离线地图是在vmp/l下面,并且在导入失败后也会自动生成一个l  的文件,所以我觉得可能是离线包下错了

然后重新从百度地图官网上下载,品牌还是选的htc,型号的时候,把下拉列表框拉到最下,选的低分屏包,然后再导入就成功了

也没用scan方法,直接用mOffline.importOfflineData(); 

主要代码:

activity需要implements MKOfflineMapListener,自动补一个

@Override
public void onGetOfflineMapState(int arg0, int arg1) {
// TODO Auto-generated method stub

}

MKOfflineMap mOffline = new MKOfflineMap();
mOffline.init(this);
int num = mOffline.importOfflineData();  
String msg = "";  
if (num == 0) {  
    msg = "没有导入离线包,这可能是离线包放置位置不正确,或离线包已经导入过";  
else {  
   msg = String.format("成功导入 %d 个离线包,可以在下载管理查看", num);  
}  
Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();  

就成功了