安卓百度离线地图的下载以及使用

2018-01-04  本文已影响0人  Active_Loser

本节整理百度离线地图下载,暂停,更新。删除等知识

初始化离线地图

mOffline = new MKOfflineMap();
mOffline.init(this);

注意,数据包大小需要做如下处理

/**
 * V4.5.0起,保证数据不溢出,使用long型保存数据包大小结果
 */
public String formatDataSize(long size) {
        String ret = "";
        if (size < (1024 * 1024)) {
            ret = String.format("%dK", size / 1024);
        } else {
            ret = String.format("%.1fM", size / (1024 * 1024.0));
        }
        return ret;
}
MKOLUpdateElement e = (MKOLUpdateElement) getItem(index);
通过e.update返回boolean,判断下载的离线地图是否有更新
通过e.geoPt.longitude获取纬度
通过e.geoPt.latitude获取经度

注意在Activity周期onpause里判断,暂停下载

 MKOLUpdateElement temp = mOffline.getUpdateInfo(cityid);
if (temp != null && temp.status == MKOLUpdateElement.DOWNLOADING) {
       mOffline.pause(cityid);
}

在实现的MKOfflineMapListener方法onGetOfflineMapState中判断,可以更新进度提示,更新提示等

 @Override
    public void onGetOfflineMapState(int type, int state) {
        switch (type) {
            case MKOfflineMap.TYPE_DOWNLOAD_UPDATE: {
                MKOLUpdateElement update = mOffline.getUpdateInfo(state);
                // 处理下载进度更新提示
                if (update != null) {
                    stateView.setText(String.format("%s : %d%%", update.cityName,
                            update.ratio));
                    updateView();
                }
            }
            break;
            case MKOfflineMap.TYPE_NEW_OFFLINE:
                // 有新离线地图安装
                Log.d("OfflineDemo", String.format("add offlinemap num:%d", state));
                break;
            case MKOfflineMap.TYPE_VER_UPDATE:
                // 版本更新提示
                // MKOLUpdateElement e = mOffline.getUpdateInfo(state);
                break;
            default:
                break;
        }
    }

本文主要做于收集整理笔记使用,关于文章的源码,请移步我的GitHub

上一篇 下一篇

猜你喜欢

热点阅读