南京地铁建设集团:造福全人类,制作brut google maps离线地图(更新ZIP压缩挂载)
来源:百度文库 编辑:中财网 时间:2024/05/07 18:57:11
[交通导航] 造福全人类,制作brut google maps离线地图(更新ZIP压缩挂载)
google, maps, 电脑, 离线 本帖最后由 qexing 于 2011-1-19 20:51 编辑10-11-19 更新:
-------------------------------------------------------------------------------------
新版本的 brut google maps 已直接支持ZIP格式地图,但似乎对容量非常大的ZIP地图支持不好
而且比较郁闷的是增加新地图需要重新压缩ZIP文件,这个比较麻烦,但使用起来比较简单
新版本的 brut google maps 的默认地图格式已经更改,将下载下来的地图压缩成ZIP格式
(压缩方式改为 ”不压缩“ 或者 ”存储“),存到下面的路径:
如果用新的 andnav 格式,ZIP文件为:
/sdcard/brut.googlemaps/tiles/map-zh_CN-andnav.zip
如果用老的地图格式,ZIP文件为:
/sdcard/brut.googlemaps/tiles/map-zh_CN.zip
其中,zh_CN 为手机的 locale 地区的名称,如果手机ROM是英文的可以改成:en_US,如果是其它国家或地区,
则需要改成相应的 locale 名称
新本 brut google maps 下载链接:
http://bbs.gfan.com/viewthread.php?tid=300658
下载新地图格式的 gmapmaker 也需要更新,新的 gmapmaker 已经放到 115 网盘:
http://u.115.com/file/f16cdbe6f2
-------------------------------------------------------------------------------------
前几天看到机锋上的这个google maps离线地图包下载帖子:
http://bbs.gfan.com/viewthread.php?tid=255353
下载下来后,发现这个离线地图包有几个缺点:
1、文件太大,有些不需要的地方也加进去了
2、缩放级别太少,无法对需要的位置进行比较好的放大缩小处理
3、无法自己制作
因此,google并亲自实验了N天之后,终于掌握自己制作 brut Google maps 离线地图包的方法。
可以做到完全在电脑上制作,不受手机网络限制,并能根据自己的需要选择范围进行制作,可以任意选择放大缩小级别范围。
注意:此离线地图包是在 Google.Maps.v4.4.0.4414-brut16 版本上测试通过的,
请先安装 brut 版 google maps 以支持保存和调阅离线地图文件,安装方法请自己搜索论坛,谢谢。。
下面描述步骤:
1、首先下载修改过的支持 brut google maps 的 gmapmaker 工具,由于刚开始实验时产生的地图为中英文混杂的,
因此我对这个工具又做了点修改,改为调用 Google maps china 纯中文地图,下载链接,解压缩,里面会有 gmapmaker.exe 文件和相关的文件:
http://u.115.com/file/f1b11d8b6e
注:如果哪位机油想用原版的中英文混杂的 google maps 地图,可以将压缩包中的 gMapMaker.exe.config.bak 改为 gMapMaker.exe.config
有的机油不想用 google maps china,而需要使用其它的地图源,可以自己修改 gMapMaker.exe.config 配置文件中的
“
现贴上使用 google 卫星地图的配置文件:
gMapMakerConfig-GoogleStat.rar (1.43 KB)
需要注意的如果使用这个配置文件产生的卫星地图文件,需要放到 “SD卡\离线地图目录\tiles\satellite-zh_CN" 目录中,而不是 map-zh_CN 了。
2、访问这个网站:http://mapcacher.com/,图示如下:
鼠标点击选择你要制作的地图范围,zoom level 设置缩放的级别范围,一般最大到20,level of details 可以选择为 slow and detailed,
type of maps 选择为 google road maps (china),然后点击 “Generate !” 按钮,稍等片刻,下载产生的 map 文件。
3、使用文本编辑器打开下载的 map 文件,将第一行改为:BrutMap,保存,例如我的 map 文件内容为:
- BrutMap
- 15-20: 31.59867813336546, 120.78472137451172 : 31.606280782822488, 120.78643798828125
- 15-20: 31.59867813336546, 120.78643798828125 : 31.605988373227984, 120.7888412475586
- 15-20: 31.59897054295996, 120.7888412475586 : 31.605988373227984, 120.79570770263672
- 15-20: 31.59897054295996, 120.79570770263672 : 31.60481873484998, 120.79605102539062
- 15-20: 31.59897054295996, 120.79605102539062 : 31.59926295255446, 120.79639434814453
4、运行支持 brut google maps 的 gmapmaker,截图如下:
cache folder 中选择离线地图保存的目录,max parallel downloads 设置下载最大并发线程,网络好的话可以设置为 10,
选中 group by zoom,最重要的 operating mode 改为最后一项:burtmaps mode, download tiles using a .map file,
hash size 和 tiles per file 都设置为 1,然后点击“GO”按钮,会让你选择 map 文件,选择刚才下载并修改过的 map 文件,
然后就会开始自动下载离线地图文件了,剩下就是等待了。。。。
5、全部下载完毕之后,你所选择的地图保存目录下会产生一个 MGMapsCache 文件夹,目录结果如下:
删除这个 MGMapsCache 文件夹下的 cache.conf 文件(其实不删也无所谓),将 MGMapsCache 下的所有文件夹移动到
手机SD卡的 brut google maps 的离线地图目录中。
如果是 google maps 4.4 brut 版本,目录应该是:\brut.googlemaps,如果是 google maps 原版 4.5.0 版本,应该是:\com.google.android.apps.maps
拷贝到 “SD卡\上面的离线地图目录\tiles\map-zh_CN” 目录中,目录结构如下:
6、打开 android 设置 - 应用程序 - 管理应用程序,选择 地图或者 maps,清除缓存,然后重新打开 brut google maps,
确保在设置 - 更多 - 高级设置 里启用了 brut 的“从缓存读取地图“ 和 “保存地图缓存“,
这样就可以在没有网络的情况下离线定位浏览 google maps 了。。。
感谢各位机油支持,已用 Google.Maps.v4.4.0.4414-brut16 版本在 GPS 开启的情况下加这个离线地图包测试,
选中了 brut 的漂移修正,几乎完美,HOHO。。。
关于地图的大小需要注意:
如果选择的区域较大,或者缩放级别较多的话(经过实际测试,到19级就已经非常详细了),产生的文件会非常零散,拷贝时间也会比较长,
请各位机油自己权衡哦。。。
下载拷贝完之后可以对存储地图的分区和SD卡分区做下碎片整理,哈哈
以下ZIP压缩挂载的操作需要root权限,而且比较复杂,如果怕麻烦或者不好root操作,大可略过,请酌情考虑,HOHO。。。
2010-10-21 更新:
===============================================================
===============================================================
已经实验成功通过ZIP压缩文件挂载地图,这样不但可以减少空间占用,而且会减少SD卡分区的碎片,同时各位机油方便共享各省市的离线地图数据
下面以我所在的常熟市地图为例,简单介绍步骤如下
(下面新创建的城市目录名请自己更换,我是以我现在所在的常熟 - ChangShu 为例子的)
(下面的都是以交通地图为例的:map-zh_CN,如果要卫星地图,将目录换为:satellite-zh_CN)
(此部分操作需要对linux、adb等使用等有一定了解,同时你所用的android需要fuse文件系统支持,这个一般都已经有了):
1、将 map-zh_CN 目录下的所有数字分组的目录压缩成一个ZIP文件,直接压缩所有数字目录,不能对上一层目录进行压缩
(建议通过7zip或者winzip进行压缩,winrar文件太大处理不了),效果如下:
压缩前的0~19级的20个数字分组大小:
压缩后的ChangShu.zip大小:
2、下载我自己静态编译的两个 fuse 文件系统程序(fuse-zip 和 unionfs),
上传到手机的 /system/xbin 目录中,并增加可执行权限(建议,运行起来方便,也可以放在别处):
fuse-progs.rar (573.21 KB)
3、将SD卡的 brut.googlemaps 目录结构通过 adb shell 或者其它终端修改如下:
--- 准备存放ZIP压缩地图文件的目录:
mkdir /sdcard/brut.googlemaps/datas
--- 将ZIP压缩文件(例如:ChangShu.zip)拷贝到上面的目录中
--- 创建ZIP地图文件的挂载目录:
mkdir /sdcard/brut.googlemaps/mnts
mkdir /sdcard/brut.googlemaps/mnts/ChangShu
--- 创建在线浏览地图时的缓存地图存放目录:
mkdir /sdcard/brut.googlemaps/real
mkdir /sdcard/brut.googlemaps/real/map-zh_CN
--- 将地图目录中的所有其它缓存文件移动到上面的目录
busybox mv /sdcard/brut.googlemaps/tiles/map-zh_CN/* /sdcard/brut.googlemaps/real/map-zh_CN
4、创建一个脚本,方便以后挂载,有条件的机油可以自己修改 boot image 中的 init.rc 脚本来自动挂载(不建议,哈哈)
脚本内容如下:
fuse-zip -o ro /sdcard/brut.googlemaps/datas/ChangShu.zip /sdcard/brut.googlemaps/mnts/ChangShu
unionfs -o allow_other,nonempty /sdcard/brut.googlemaps/real/map-zh_CN=rw:/sdcard/brut.googlemaps/mnts/ChangShu=ro /sdcard/brut.googlemaps/tiles/map-zh_CN
第一句是将ZIP压缩文件挂载到相应的城市目录,第二句是将在线缓存地图目录与ZIP缓存目录合并到真正的离线地图目录
为方便各位,将示例脚本上传如下:
maps.rar (206 Bytes)
5、运行脚本,测试挂载是否成功:
ls /sdcard/brut.googlemaps/tiles/map-zh_CN
如果能看到原来的数字分组目录,说明挂载成功,然后开启地图测试能否使用就行了哈。。。
希望 brut google maps 以后可以直接支持ZIP地图格式,HOHO~~~~
使用这种压缩挂载方法之后,如果需要增加新的城市地图,下载压缩之后放到 /sdcard/brut.googlemaps/datas 目录,
然后在 /sdcard/brut.googlemaps/mnts 下创建一个新的挂载目录,接着修改脚本,增加新的城市目录,以北京为例:
--- 将北京的地图 BeiJing.zip 拷贝到 /sdcard/brut.googlemaps/datas 下
mkdir /sdcard/brut.googlemaps/mnts/BeiJing
将脚本改为(需要注意命令格式):
fuse-zip -o ro /sdcard/brut.googlemaps/datas/ChangShu.zip /sdcard/brut.googlemaps/mnts/ChangShu
fuse-zip -o ro /sdcard/brut.googlemaps/datas/BeiJing.zip /sdcard/brut.googlemaps/mnts/BeiJing
unionfs -o allow_other,nonempty /sdcard/brut.googlemaps/real/map-zh_CN=rw:/sdcard/brut.googlemaps/mnts/ChangShu=ro:/sdcard/brut.googlemaps/mnts/BeiJing=ro /sdcard/brut.googlemaps/tiles/map-zh_CN
===============================================================
===============================================================
制作google page
google网页制作工具使用说明?
替全人类问个问题
克隆技术怎样造福人类
克隆如何造福人类?
为人类造福
科学造福人类事例
造福他人,恳请帮助
请问法语selon brut和avant filetage 分别是什么意思?
what means "brut casting" in Chinese
如果我能号召全人类的力量...
为什么奥运会是全人类的最高盛会
找全人类第一次登月的故事
什么语言最适合统一全人类?
谁知道怎样开发或制作像GOOGLE的搜索引擎
自己制作的google pages为啥在浏览器中打不开呢?
怎样利用或制作google提供的个人主页?
化学物质可以造福于人类
科技造福人类的事例
造福当代,惠及子孙是什么意思
植树造福子孙的上联?
我要制作个像google图标样式的小图片 有谁告诉我怎么制作!
为什么我们(全人类)永远都看不到月球的另一面
发动全人类高手帮忙找转换电影格式软件