IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 百度地图开发-实现离线地图功能 05 -> 正文阅读

[移动开发]百度地图开发-实现离线地图功能 05

上一篇我们根据研究学习,实现了实时定位显示功能,可以在地图上显示出自己所处的位置,并实时进行自动更新。那么接下来就让我们实现离线地图功能。

在日常的业务开发过程中,很多时候都会使用离线地图。那么我们需要在有网的时候加载并下载所处地区的地图,当没有运营商网络或WIFI的时候,就可以无感切换到离线地图,不会过大影响用户的使用。

实现离线地图功能

关于离线地图,这块的内容百度教程说明的不是很详细,具体的还是需要你下载他们提供的demo,自己去研究,否则很难实现离线地图的功能。

离线地图的实现主要有两种方式:

一、将自己提前下载好的离线地图文件存放到app软件的特定位置处。

这个方法目前官方是没有说明的,根据网上说法是之前版本有特殊说明,可以导入离线地图,最新版已经将此接口弃用掉了。但是经过我的研究发现,其实还是可以巧用的。

百度地图的下载文件是以.dat格式结尾的,根据对百度地图官方APP的研究,发现它会将下载的离线地图缓存到 Android/data/app包名/files/vmp 中,大家可以看下自己android手机缓存的百度地图离线地图地址。

其实我当时也在猜想,既然它官方缓存的地址是这里,那是不是就证明它在SDK中,是优先从这个地址中检索离线地图进行展示的。如果是这样子的话,是不是就可以把我提前下载好的地图文件放在这里。

事实证明确实是这样子的,将需要缓存目的地的离线地图放到这个目录下,在手机没有网络的情况下,可以加载显示出地图。

如果你的业务需求主动下载很困难的话,可以使用这种方式,远程给客户更新离线地图,方便其在现场使用。

具体地址见下图:顶部红框部分是地址,下部红圈部分是下载的天津市离线地图,在没有网络的情况下,SDK会默认加载离线地图进行显示。

二、通过MKofflineMap来主动下载地图。

咱们先按照官网给的教程走一篇,看到底会不会遇到难题。

如果是新手看离线地图这块的教程,会满脸懵逼的。官方只是给你罗列出几个具体的关键点,一些细节性的操作没有说明。

  • 初始化离线地图
MKOfflineMap mOffline = new MKOfflineMap();
// 传入MKOfflineMapListener,离线地图状态发生改变时会触发该回调
mOffline.init(listener);
  • 开始下载
//获取城市ID
ArrayList<MKOLSearchRecord> records = mOffline.searchCity(cityName);
if (records != null && records.size() == 1) {
    cityId = records.get(0).cityID;
}

// 开始下载离线地图
// cityID 城市的数字标识
mOffline.start(cityid);
  • 暂停下载
//暂停下载
mOffline.pause(cityid);
  • 停止下载
//停止下载
mOffline.pause(cityid);
  • 删除下载
//删除下载
mOffline.remove(cityid);
  • 更新下载
//更新下载
mOffline.update(cityid);

关于更新下载,在更新过程中会通过onGetOfflineMapState来回调信息,可查看更新进度、新离线地图安装、版本更新提示等功能。

上面的内容是官方给的教程,按照它进行操作确实可以下载到地图,但是没有提示,不友好,而且开发者根本不知道地图下载到哪里去了,需要自己去根据给的DEMO,再去研究才可以。

下面是结合官方教程和官方API,DEMO等,摸索出来的。目前只是简单实现地图的下载,下载进度值的显示。后面你可以根据自己的业务需求来进行定制操作。

1、初始化离线地图

2、通过城市ID下载对应地图

3、在回调函数中显示地图下载进度(0-100)

下来就让我们实际操作一遍

点击事件进行地图的下载和暂停

在监听事件mKOfflineMapListener中,利用回调函数来实时获取下载地图的进度。

运行后,点击开始下载,就可以实现天津市地图的离线操作,会在回调函数中获取到下载进度,实时打印显示在软件界面上。

当进度走完,你就会在红框地址的文件夹下面看到已经下载的天津的离线地图文件。

哈哈哈,是不是感觉很nice。

上面我只是简单的介绍下载离线地图,这里面关于围绕离线地图有很多玩法,具体根据自己的业务进行结合,可以实现。

好了今天的分享就在这里,感谢你的阅读。

对了提醒大家一句,多看DEMO,它比官方文档教程强太多了。

小寄语

人生短暂,我不想去追求自己看不见的,我只想抓住我能看的见的。

原创不易,给个关注。

我是阿辉,感谢您的阅读,如果对你有帮助,麻烦点赞、转发 谢谢。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-09-11 18:56:29  更:2021-09-11 18:58:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 17:09:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码