高德开发者论坛

标题: V3.X版本离线地图升级指南 [打印本页]

作者: 小溪儿1988    时间: 2016-1-7 13:32
标题: V3.X版本离线地图升级指南
本帖最后由 小溪儿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)




作者: amap_1364051951    时间: 2016-1-8 16:42
数据库在哪个目录下啊?amap\data\vmap目录下有.dat文件,amap\data\AMAP2目录下有也有下载信息,json字符串"mCompleteCode":100。打开wifi和GPS,不连接任何网络,但是地图不加载。所以现在想看看数据库里是不是也有数据,但是不知道在哪个目录
作者: zhengxiangyu    时间: 2016-1-11 17:03
amap_35941913 发表于 2016-1-8 16:42
数据库在哪个目录下啊?amap\data\vmap目录下有.dat文件,amap\data\AMAP2目录下有也有下载信息,json字符 ...

数据库是在应用程序的私有目录
/data/data/包名/databases/xx.db
作者: amap_1772780015    时间: 2016-1-11 19:08
示例代码见下边下载下来怎么是乱码
作者: amap_1364051951    时间: 2016-1-12 14:18
本帖最后由 amap_35941913 于 2016-1-12 14:20 编辑
郑翔宇er 发表于 2016-1-11 17:03
数据库是在应用程序的私有目录
/data/data/包名/databases/xx.db

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



作者: zhengxiangyu    时间: 2016-1-12 18:47
amap_35941913 发表于 2016-1-12 14:18
没有哦,里面没有offlineDbV.db ,也没有offline.db,下面这几个应该不是吧?请问这是为什么呢,.dat的文 ...

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

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

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

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

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

重启应用也不行
作者: zhengxiangyu    时间: 2016-1-15 15:19
amap_35941913 发表于 2016-1-13 15:38
重启应用也不行

你这个情况比较奇怪啊,重启应用都不行。
加载不出来的现象试显示为网格吗, 还是说有一部分是网格有一部分不是。
作者: amap_1364051951    时间: 2016-1-19 09:01
郑翔宇er 发表于 2016-1-15 15:19
你这个情况比较奇怪啊,重启应用都不行。
加载不出来的现象试显示为网格吗, 还是说有一部分是网格有一部 ...

基本上全是网格。偶尔一个缩放级别的时候,会有一半是网格
作者: zhengxiangyu    时间: 2016-1-19 19:37
amap_35941913 发表于 2016-1-19 09:01
基本上全是网格。偶尔一个缩放级别的时候,会有一半是网格

那楼主要不先下载全国概要图,然后在下载其他城市,看看能不能显示出来呢
作者: amap_1305155199    时间: 2016-2-2 16:44

作者: amap_1305155199    时间: 2016-2-2 16:44

作者: amap_1581100317    时间: 2016-3-18 16:21
假如之前删除应用了这么办?




欢迎光临 高德开发者论坛 (https://lbsbbs.amap.com/) Powered by Discuz! X3.2