永发信息网

如何使用android百度地图离线地图

答案:2  悬赏:30  手机版
解决时间 2021-03-01 05:01
  • 提问者网友:山高云阔
  • 2021-02-28 15:31
如何使用android百度地图离线地图
最佳答案
  • 五星知识达人网友:未来江山和你
  • 2021-02-28 16:01
1.首先把离线地图放在android工程下的assets里面。
注意:建议离线地图下载通过百度地图APIDEMO去下载,因为到官网上下载的离线地图文件格式不一样,APIDEMO的格式是.dat,而官网上的格式是.dat_svc有可能加载不了地图.
2.把离线地图从assets下拷贝到sd卡下
public static void copy(Context context) {
try {
String filepath = Environment.getExternalStorageDirectory() + "/"
+ "BaiduMapSDK" + "/" + "vmp" + "/" + "h" + "/"
+ "xxxxx.dat";
String path = Environment.getExternalStorageDirectory() + "/"
+ "BaiduMapSDK" + "/" + "vmp" + "/" + "h" + "/";
File file = new File(path);
if (!file.exists()) {
file.mkdir();
}
if (!(new File(filepath)).exists()) {
new File(filepath).createNewFile();
InputStream is = context.getAssets().open(
"xxxx.dat");
FileOutputStream fos = new FileOutputStream(filepath);
byte[] buffer = new byte[8192];
int count = 0;
while ((count = is.read(buffer)) > 0) {
fos.write(buffer, 0, count);
}
fos.close();
is.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
3.初始化离线地图
private MKOfflineMap mOffline = null;
MapController mMapController;
mMapController = mMapView.getController();
mOffline = new MKOfflineMap();
mOffline.init(mMapController, new MKOfflineMapListener() {
@Override
public void onGetOfflineMapState(int type, int state) {
// TODO Auto-generated method stub
switch (type) {
case MKOfflineMap.TYPE_DOWNLOAD_UPDATE: {
}
break;
case MKOfflineMap.TYPE_NEW_OFFLINE:
break;
case MKOfflineMap.TYPE_VER_UPDATE:
break;
}
}
});
全部回答
  • 1楼网友:春色三分
  • 2021-02-28 16:55
百度地图主程序要装在内存卡上,我试过将主程序装在手机内存里,用百度官方给出的方法安装离线地图,只有在安装完离线地图后第一次打开地图提示安装成功,退出后再进去离线地图就被清空了。安装完主程序后最好把地图打开定位加载下地图(这样做是为了得到该省份的缓存地图数据所存放的文件夹),下载离线地图包并解压,把文件夹里面.dat和.map 结尾的文件复制到date/baidu/baidumaps/date/以数字命名的文件夹下(前面提到过的省份缓存数据文件夹),随解压出来的还有另外两个文件,即城市名_l_baidu.cfg,城市名_l_baidu.cfg,把这两个文件放在date/baidu/baidumaps目录下,这样就能使用离线地图了,主程序一定要安装在内存卡上。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯