首页 > 代码库 > Android 百度地图sdk3.2下 离线地图包的导入
Android 百度地图sdk3.2下 离线地图包的导入
前段时间用百度地图,在使用离线地图包导入的时候发现一个问题,从百度官网下载的离线包无法导入,但是用百度地图的demo可以下载离线包使用,当时对方式没什么要求,能用就行,就用他们demo下载离线包,最近对方式有要求了,必须得使用离线包的方式
然后用百度地图的demo都无法导入,然后去网上一查,呵呵,各种同道中人在饱受折磨,经过仔细观察,发现了一些门道,希望能帮助你们
首先,百度离线地图包下载完,在BaiduMap下vmp下有个文件夹,这要注意了这是以一个字母命名的,h或者l,问题就出现在这两个命名上
百度上有这么一句话:
前提:获取自己手机的分辨率。
操作:选完品牌后,在机型下拉列表最下方选择“高分屏包(分辨率480*800及以上机型通用)”or“低分屏包(分辨率480*800)
注:如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();
就成功了
Android 百度地图sdk3.2下 离线地图包的导入