自2018年10月18日起,高德开发者论坛除车机板块外,其他板块将停止发帖与维护,如您有使用问题请 提交工单 联系我们,感谢您的理解。

查看: 2867|回复: 14
打印 上一主题 下一主题

[应用案例] V3.X版本离线地图升级指南

[复制链接]
最佳答案
432 

5

主题

4048

帖子

8759

积分

超级版主

Rank: 8Rank: 8

积分
8759
跳转到指定楼层
楼主
发表于 2016-1-7 13:32:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
发表帖子
API/SDK版本号: V3.X
产品: 3D地图
手机型号:
使用接口: OfflineMapManager
本帖最后由 小溪儿1988 于 2016-1-7 13:37 编辑

使用2.7.0(或以前)下载的离线地图,升级到3.x之后不能使用了。因为他们完全不一样了,无论是文件大小还是目录结构全都不一样。那么问题来了,升级之后要怎么才能知道2.7.0有下载哪些离线城市呢?
先看一下2.7.0的离线下载,打开Demo开始下载 北京和上海
下载完成之后到本地去看一下,这里面有两个文件,mini_mapv3这里面是缓存文件,VMAP2里面是每个城市的下载信息,包括下载进度啊之类的,使用的是json字串。(下载进度还有一个地方存放得更详细,在数据库中,后面会提到。)
进入 mini_mapv3看一下,130322等等一堆东西,就是地图缓存数据,就是下载的离线地图解压出来的东西,最下面的连个文件,是离线地图的配置文件,里面有版本号之类的东西。

还有一个地方会记录离线地图的下载情况,而且更详细,包括下载进度,下载状态以及每个城市对应的缓存文件(仅限离线地图,路口放大图那些不在这里面)
使用数据库查看工具(SQliteEdit 可以直接从网上下载),打开看看。
可以看到有两个数据库,logdb.db是一些日志记录,不用理会,还有一个offline.db这个就是离线地图的记录(3.x的数据库名字叫做offlineDbV.db 所以只要不卸载,单纯的覆盖安装的话,offline.db这个文件是不会被删掉的。)
打开瞅一眼
有一堆东西,一一看一下,前两个每个数据库都有,就不管了看后三个
Update_item 每个城市的adcode 下载进度,下载链接,大小状态等等 最全面的一个
Update_item_download_info 断点续传的进度记录,2.7.0应该是分5块下载
Update_item_file解压后每个城市离线文件对应位置,标识是adcode

然后重点来了,现在需要做的就是从数据库中读取文件就行了,直接上代码
运行结果为了简便使用打印输出
示例代码见下边
代码.zip (1.33 KB, 下载次数: 54)



回复

使用道具 举报

最佳答案
0 

1

主题

6

帖子

27

积分

新手上路

Rank: 1

积分
27
沙发
发表于 2016-1-8 16:42:26 | 只看该作者
数据库在哪个目录下啊?amap\data\vmap目录下有.dat文件,amap\data\AMAP2目录下有也有下载信息,json字符串"mCompleteCode":100。打开wifi和GPS,不连接任何网络,但是地图不加载。所以现在想看看数据库里是不是也有数据,但是不知道在哪个目录
回复 支持 反对

使用道具 举报

最佳答案
334 

8

主题

2587

帖子

5772

积分

超级版主

Rank: 8Rank: 8

积分
5772
板凳
发表于 2016-1-11 17:03:09 | 只看该作者
amap_35941913 发表于 2016-1-8 16:42
数据库在哪个目录下啊?amap\data\vmap目录下有.dat文件,amap\data\AMAP2目录下有也有下载信息,json字符 ...

数据库是在应用程序的私有目录
/data/data/包名/databases/xx.db
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

1

帖子

8

积分

新手上路

Rank: 1

积分
8
地板
发表于 2016-1-11 19:08:47 | 只看该作者
示例代码见下边下载下来怎么是乱码
回复 支持 反对

使用道具 举报

最佳答案
0 

1

主题

6

帖子

27

积分

新手上路

Rank: 1

积分
27
5#
发表于 2016-1-12 14:18:25 | 只看该作者
本帖最后由 amap_35941913 于 2016-1-12 14:20 编辑
郑翔宇er 发表于 2016-1-11 17:03
数据库是在应用程序的私有目录
/data/data/包名/databases/xx.db

没有哦,里面没有offlineDbV.db ,也没有offline.db,下面这几个应该不是吧?请问这是为什么呢,.dat的文件和json字符串的文件都是有的,但是数据库始终找不到。


回复 支持 反对

使用道具 举报

最佳答案
334 

8

主题

2587

帖子

5772

积分

超级版主

Rank: 8Rank: 8

积分
5772
6#
发表于 2016-1-12 18:47:19 | 只看该作者
amap_35941913 发表于 2016-1-12 14:18
没有哦,里面没有offlineDbV.db ,也没有offline.db,下面这几个应该不是吧?请问这是为什么呢,.dat的文 ...

没有的话 应该是没有下载过离线地图或者是程序被卸载过
如果有 .dat的话解析一下那个里面json数据也是可以的
那些也只有在下载之后才会有
回复 支持 反对

使用道具 举报

最佳答案
0 

1

主题

6

帖子

27

积分

新手上路

Rank: 1

积分
27
7#
发表于 2016-1-13 14:23:13 | 只看该作者
本帖最后由 amap_35941913 于 2016-1-13 14:24 编辑
郑翔宇er 发表于 2016-1-12 18:47
没有的话 应该是没有下载过离线地图或者是程序被卸载过
如果有 .dat的话解析一下那个里面json数据也是可 ...

我直接调用demo里的下载,数据库有了,update_item里的数据如图,你看看里面的文件路径对吗?还有其他字段显示正常吗?离线地图还是加载不了,请问加载离线是需要写代码来加载吗?还是要怎么回事才能加载?
回复 支持 反对

使用道具 举报

最佳答案
334 

8

主题

2587

帖子

5772

积分

超级版主

Rank: 8Rank: 8

积分
5772
8#
发表于 2016-1-13 15:12:23 | 只看该作者
本帖最后由 郑翔宇er 于 2016-1-13 15:13 编辑
amap_35941913 发表于 2016-1-13 14:23
我直接调用demo里的下载,数据库有了,update_item里的数据如图,你看看里面的文件路径对吗?还有其他字段 ...

确定一个情况,下载完成之后重启应用可以显示吗
如果可以的话,那说明数据都没啥问题,楼主可以调用一个reloadMapCore 或者在初始化OfflineMapManager的时候传入amap对象就可以显示
回复 支持 反对

使用道具 举报

最佳答案
0 

1

主题

6

帖子

27

积分

新手上路

Rank: 1

积分
27
9#
发表于 2016-1-13 15:38:54 | 只看该作者
郑翔宇er 发表于 2016-1-13 15:12
确定一个情况,下载完成之后重启应用可以显示吗
如果可以的话,那说明数据都没啥问题,楼主可以调用一个re ...

重启应用也不行
回复 支持 反对

使用道具 举报

最佳答案
334 

8

主题

2587

帖子

5772

积分

超级版主

Rank: 8Rank: 8

积分
5772
10#
发表于 2016-1-15 15:19:48 | 只看该作者

你这个情况比较奇怪啊,重启应用都不行。
加载不出来的现象试显示为网格吗, 还是说有一部分是网格有一部分不是。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|高德开发者论坛

Copyright ©2014 高德开发者论坛.All Rights Reserved |京ICP证070711号

意见反馈 常见问题 服务条款 联系我们
快速回复 返回顶部 返回列表