离线地图加载"/>
百度离线地图加载
参照:.html
.htm
1.离线地图简介
百度地图SDK自2.0.0版本起,采用的是矢量版离线地图,请开发者在下载时注意选择。 使用离线地图,请下载。
2.初始化
在使用offline map之前需先创建MapView。MapView的创建详见Hello World部分的相关介绍。
初始化离线地图的核心代码如下:
源码 复制 打印 关于- MKOfflineMap mOffline = null; //申明变量
- MapController mMapController = mMapView.getController();
- //写在onCreate函数里
- mOffline = new MKOfflineMap();
- //offline 实始化方法用更改。
- mOffline.init(mMapController, new MKOfflineMapListener() {
- @Override
- public void onGetOfflineMapState(int type, int state) {
- switch (type) {
- case MKOfflineMap.TYPE_DOWNLOAD_UPDATE:
- {
- MKOLUpdateElement update = mOffline.getUpdateInfo(state);
- //mText.setText(String.format("%s : %d%%", update.cityName, update.ratio));
- }
- break;
- case MKOfflineMap.TYPE_NEW_OFFLINE:
- Log.d("OfflineDemo", String.format("add offlinemap num:%d", state));
- break;
- case MKOfflineMap.TYPE_VER_UPDATE:
- Log.d("OfflineDemo", String.format("new offlinemap ver"));
- break;
- }
- }
- }
- );
3.导入离线包
SDK支持导入离线包,将从官方渠道下载的离线包解压后,把其中的vmp文件夹拷入SD卡根目录下的BaiduMapSdk文件夹内。 使用离线地图,请下载。
源码 复制 打印 关于
- int num = mOffline.scan();
- //if (num != 0)
- //mText.setText(String.format("已安装%d个离线包", num));
4.下载离线包
SDK支持下载离线包。提供如下功能:
1. 返回热门城市列表。
2. 城市名搜索离线地图信息。
3. 启动下载。
4. 暂停下载。
5. 删除离线地图。
6. 多个APP共享一份离线地图数据。
--------------------------------------------------------------------项目应用---------------------------------------------------------------------------------
1.说明:
在应用开始启动时,会检查sd卡的相应目录是否存在离线地图文件,不存在时会进行异步拷贝操作,进入主界面即地图页面。
2.发现的问题:
在清空系统设置中的数据后,第一次进入,离线地图一直显示不了,退出后再次进入才能正常显示离线地图。
3.方案:
多次调试后发现,需要在地图文件存在的情况下,初始化mapview并进行离线scan操作
离线扫描方法
mOffline = new MKOfflineMap();mOffline.init(mMapController, new MKOfflineMapListener() {public void onGetOfflineMapState(int type, int state) {switch (type) {case MKOfflineMap.TYPE_DOWNLOAD_UPDATE:MKOLUpdateElement update = mOffline.getUpdateInfo(state);Log.v("OfflineDemo",String.format("update") + update.toString());break;case MKOfflineMap.TYPE_NEW_OFFLINE:mHandler.sendEmptyMessage(MAP_REFRESH);Log.v("OfflineDemo",String.format("add offlinemap num:%d", state));break;case MKOfflineMap.TYPE_VER_UPDATE:Log.v("OfflineDemo", String.format("new offlinemap ver"));break;}}});int num = mOffline.scan();
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);this.setContentView(R.layout.activity_welcome);copyOfflineMap();}private void copyOfflineMap() {new Thread() {public void run() {if (FileUtils.isExist(FileUtils.SDCARD_ROOT_PATH)&& !FileUtils.isExist(FileUtils.SDCARD_OFFLINE_MAP+ "beijing_131.dat")) {boolean res = FileUtils.copyFileToLocal(getApplicationContext(), R.raw.beijing_131,FileUtils.SDCARD_OFFLINE_MAP, "beijing_131.dat");Log.v("OfflineDemo", "0App.res=" + res);}if (FileUtils.isExist(FileUtils.SDCARD_ROOT_PATH)&& !FileUtils.isExist(FileUtils.SDCARD_OFFLINE_MAP_L+ "beijing_131.dat")) {boolean res = FileUtils.copyFileToLocal(getApplicationContext(), R.raw.beijing_131_l,FileUtils.SDCARD_OFFLINE_MAP_L, "beijing_131.dat");Log.v("OfflineDemo", "1App.res=" + res);}mHandler.sendEmptyMessageDelayed(0, 800);}}.start();}
更多推荐
百度离线地图加载
发布评论