搜索
单车技术

共享 原创 离线地图制作以及导航——基于安卓系统——史上最齐(4月20日更新)

[复制链接] 查看:287445 | 回复:556
发表于 2013-5-16 19:25 61 只看该作者
很实用的教材,很好用的软件,很热心的大驴。 让我学了不少东西。 谢谢了,持续关注中。
发表于 2013-5-16 20:17 62 只看该作者
走得慢- 发表于 2013-5-16 19:09 请教:在有WiFi的地方下载地图,如何查询到想要的范围?Ourxmaps有查找功能吗? ...

一般的用法是,加载你的航线,通过航线就确定了你的地图范围,圈选地图的时候框选住整个航线就可以了。
发表于 2013-5-17 12:16 63 只看该作者
谢谢分享  
支持
发表于 2013-5-17 20:38 64 只看该作者
本帖最后由 qsccsqwar 于 2014-4-11 20:47 编辑

  前文已经讲解了如何使用GM(global_mapper)制作属于自己的离线地图。不过方法较为复杂,看起来步骤繁杂。虽然定制性强,DIY效果好,但是有没有简单的方式来为自己创建离线地图呢?当然有了。本外篇讲解使用MOBACMobile Atlas Creator)来下载离线地图。不过这个软件简单是简单,DIY效果就比GM差远了。废话不多说,开始分解MOBAC

一、MOBAC认识1.1 获得一个MOBAC

MOBAC是一款非常不错的地图下载软件,其开放性很强切开源,同时图源文件很好制作。因为是JAVA开发,所以各平台都可以用,LINUXIOS等系统都能使用。本篇讲解以windows为系统基础,分解MOBAC的使用。

MOBAC全称:Mobile AtlasCreator

中文汉化1.9下载点击下载

图标:

共享 原创 离线地图制作以及导航——基于安卓系统——史上最齐(4月20日更新)


MOBAC不仅仅能下载谷歌全系列的地图,还可以下载微软、诺基亚、高德等离线地图数据。图源文件只要掌握了格式,完全可以自己分析各种离线地图的URL,并通过MOBAC对地图进行下载。

共享的这个中文汉化版来源于百度,原始图源文件为MOBAC默认,而且由于版权问题,1.9版删除了谷歌图源,同时提供的大部分地图国内用不到。所以我重新优化了下图源文件,恢复了谷歌图源,我共享的程序提供图源:

AutoNav Street:高德地图-偏移

Bing MapsBing地图-偏移

Bing VirtualEarthBing卫星图-高清色彩好-

Google Ditu:谷歌混合地图-偏移

Google DM:谷歌地名图(透明层)-偏移

Google Earth:谷歌卫星图-

Google Hybrid:谷歌卫星图--图层齐

Google Hy:谷歌卫星图混合地标-18

Google Map:谷歌道路地名图-偏移

Google Map Terran:谷歌道路地名图反色-偏移

Google Terrain:谷歌高程图-偏移

MapABC RoadMapABC道路图-偏移

Microsoft Hybrid:微软卫星图-色彩好

Open Cycle:登高线混合地标图

Open Cycle Map:等高线图

Soso Street:搜搜地图-偏移

TianDitu 2.0:天地图


所有我标记偏移的地图数据都是因为政策原因,属于火星坐标,下载下来不能直接使用,必须经过纠偏,才能使用,否则会有600m左右的误差。而所有我没标记偏移的,都是下载后可以直接使用的。不存在偏移。

图源的问题还得再说一句。首先,谷歌等各种地图的供应商开发者协议是明确禁止个人开发者或者用户下载谷歌地图的,为的是保护知识产权。所以我共享的图源仅供大家测试地图使用,不对由使用我共享的程序所产生的各种后果负责。恩,建议大家自己用用就行了,就不要太张扬了。

1.2 关于加偏

关于偏移这里说一句,因为我国法律明确规定,为了安全需要(很自欺欺人的说),禁止使用真正的坐标用于导航或者定位。各电子地图必须经过国家测绘局核准,使用国家保密插件(SM模组)添加上偏移量才能使用。偏移量再各个地区并不完全一致,也就是不是全国都采用统一的某方向,某距离的偏移量。这样就导致了各种电子地图的地物都不在实际的经纬度坐标位置,也就是火星坐标。同时各个地图供应商为了防止别人抓取自己的地图,很多又在国家偏移的基础上使用自己的算法进行了二次加偏。

而我们现在用的很多程序看似定位准确,实际上是这样一个流程。拿老虎地图来说:国家测绘局对地图原始数据进行偏移处理,老虎地图安卓端程序使用偏移数据库将得到的GPS坐标(真实)转换成偏移后的坐标(),再将转换获得的经纬度()坐标投影到地图上,显示出你的正确位置。因为偏移是相对偏移,所以只要你的位置投影在假坐标上的正确点,那么相对关系也是正确的。(很是累赘,也许很安全吧。毕竟要攻击你,不是你纠偏就行的,而且纠偏数据库网络上基本是公开的。)

由于国家测绘局带领全国人民去了火星旅游。但是我们这些驴友估计早玩腻了火星,需要回到地球,这时候就需要纠偏或者使用没有加偏的地图。

什么地图加偏了呢?一般地标图、矢量化的地图是加偏的,而卫星图这些不包含地物的则是正确的。所以直接下载的大部分卫星图可以直接使用,投影上去的经纬坐标在实际地物上,而直接下载的地标数据都是偏的。这也就是为什么我们在谷歌地球上看,为什么道路总是在卫星图的实际道路不远处,因为矢量的道路数据生活在火星。

总之,想要生活在地球,那么就四种办法:即正确的坐标和正确的地图、错误的地图和错误的坐标(成品软件)、错误的地图转正确的地图+正确的坐标、错误的地图+转换错误的坐标。

1、使用卫星图或者各种没有加偏的地图(优点是没偏,自由度大,其次卫星图如果目视解译熟练的话,能够获得很多信息,缺点是没有加偏的图源不多);

2、使用开发好的成品导航软件,这些软件本身包含纠偏数据;

3、下载偏移的数据,使用各种方法,如:控制点矫正法、加密非加密转换法、手工修改四角坐标信息法等(优点是完全DIY,信息含量丰富,定制度最大,最自由);

4、使用偏移的地图,但是给手机上安装一个软件,这个软件可以截获GPS获得的真实坐标,然后转换成假坐标,再供应给手机的导航应用程序,从而使用错误的坐标进行正确的导航。

实际上总结下来就是两种方式,正确和正确,错误和错误,只有这样才能进行正确的导航。是不是废话多了点,下面进入正题。

1.3 MOBAC认识

我们点击MOBAC主程序图标,启动程序。恩?你是LINUX系统,恩,自己研究吧,只要装了JAVA,一样能用。

首次启动,程序会问你,创建那种类型的地图册,因为我们之前的教程都是使用oruxmaps,所以我们创建oruxmaps SQLite类型。至于地图册的名称,随便起便好了。

共享 原创 离线地图制作以及导航——基于安卓系统——史上最齐(4月20日更新)

程序主界面分三部分。顶上的菜单栏、左侧的地图下载流水线(不这么叫啊,应该是地图选择、离线下载设置、下载、系统设置)、右侧的GPX控制区。

菜单不常用,就一个可能会用到即,地图》选择区域》多变型。因为默认是使用矩形区域选择地图。如果你非要圈选个特殊区域,那就用这个了。

还有个就是面板,这个菜单里面可以隐藏和显示左右面板。

共享 原创 离线地图制作以及导航——基于安卓系统——史上最齐(4月20日更新)

重点讲解下左右面板。

左侧面板主要有:

坐标信息:显示圈选或者点击位置的坐标,可以设置坐标格式。

地图源:选择加载到主区域的地图来源,也是选择要下载的图源。

缩放比例:设置我们要下载的层级。常规16级够用,细节17级够用。

图片转换:因为服务器传递过来的地图一般都是PNG格式的,而MOBAC支持直接保存图片,这里设置是将下载地图转换为其他格式。

当前地图册:用于设置你的地图册,并且配置地图册的数据格式,之前我们设置的oruxmaps SQlite就是这个。

地图册配置:用于保存现有配置并在修改配置后可以快速还原。同时下载按钮在这里。

本地缓存:设置缓存使用情况及允许范围。

右侧面板:

GPX路点路点的加载,保存以及添加路点。

1.4 MOBAC文件夹认识

MOBAC主目录下,包含3个文件夹:atlasesmapsourcestilestore

atlases:已经下载好的地图册保存在这里;

mapsources:地图源XML文件和BSH文件再这里;

tilestore:地图缓存文件在这里(全部删除也没事)。

1人 评分 查看全部评分
发表于 2013-5-17 20:39 65 只看该作者
二、使用MOBAC下载地图

上面废话了一堆,不知道有几人看了。哎,不扯远了,直接进入正题。使用MOBAC下载地图。其实上面的废话很多,搞的这个软件很复杂似地,实际上,MOBAC的使用真的很简单。

我们依旧以封门导航为例。首先我们知道了所需要的地图区域。封门村。好了我们在MOBAC地图显示窗口,用鼠标滚珠缩放、右键移动、左键圈选。定位到我们要下载的区域。

如果已经知道了要下载的范围,直接左键圈选,如果不知道范围。点击下载程序zGPSconv,下载好了,启动程序:

共享 原创 离线地图制作以及导航——基于安卓系统——史上最齐(4月20日更新)

点击1后面的打开,打开之前做好的KML格式的路线文件,再点击二,点击转换,设置要保存的格式,这里设置成GPX。生成GPX格式的路线文件。找不到文件?记得点击文件格式选择:

共享 原创 离线地图制作以及导航——基于安卓系统——史上最齐(4月20日更新)

完成后点关闭软件即可。这时候在我们指定的路径就多了一个GPX路线文件。在MOBAC右侧面板,点击载入GPX,好了,这样在地图区域便会显示出我们之前所做的航线。圈选的时候圈选住航线所在范围即可。如果有一定可能性需要增加其他方向的撤退路线,我们只需要扩大范围就行。

共享 原创 离线地图制作以及导航——基于安卓系统——史上最齐(4月20日更新)

确定好下载区域后,用鼠标左键绘制下载区域,被粉红色覆盖区域就是会下载的区域。

发表于 2013-5-17 20:40 66 只看该作者
本帖最后由 qsccsqwar 于 2014-4-11 20:47 编辑

开始按照流水线配置离线地图。左侧面板,设置图源(使用我的提供的谷歌混合地标最适合山地导航,当然可以选择其他的)。接着勾选缩放比例,勾选12-16级即够用。接下来在当前地图册区域下面的新建地图册名称输入一个英文名称(这里用英文,下载好了随便改),点击添加所选的区域,这个区域会自动添加到你的地图册下面。继续往下看,有一个开始下载地图册,点击。

共享 原创 离线地图制作以及导航——基于安卓系统——史上最齐(4月20日更新)

记着勾选忽略下载错误并自动继续,否则可能会卡在某个丢失的图快上。

下载完成后点击打开下载文件夹,会看到:

共享 原创 离线地图制作以及导航——基于安卓系统——史上最齐(4月20日更新)

这个就是我刚刚下载的地图,里面有两个文件:

共享 原创 离线地图制作以及导航——基于安卓系统——史上最齐(4月20日更新)

XML文件是地图数据的属性和范围,后面那个是oruxmaps支持的地图数据库。

至此,一个离线地图便下载好了,我们按照之前导航教程里面讲解的,将下载好的离线地图复制到手机便可以使用。

是不是比用GM做离线地图简单很多?确实简单了不少,但是使用MOBAC做离线地图最大的缺点也在这里,因为简单,所以DIY性,定制性比较差,图源是什么,就是什么。当然可以比这个复杂点,比如我提供的图源就是使用谷歌卫星图作为底图,混合了天地图的地标。但是不是什么都能混合的,首先要保证覆盖层是透明的,其次要保证要么都是正确地标,要么都是错误地标。

2人点评 收起
发表于 2013-5-17 20:41 67 只看该作者
三、使用GPX点确认地图是否偏移

虽然我已经把图源文件列表给大家做成了汉语的,同时明确标记了漂移。通过我标记的“-偏移”,能够给大家一个明确的提示,这个地图是火星坐标。那么我们能否检测这个地图是否漂移呢?

当然可以了,接下来,我们就进行一次检验测试。首先将图源切换到一个没有偏移的地图上,比如谷歌卫星图。

MOBAC中,右侧面板,我们点击新建GPX,接着点击添加路点,点击后,在地图区域的任何一个你熟悉的区域,点击一下,会弹出:

共享 原创 离线地图制作以及导航——基于安卓系统——史上最齐(4月20日更新)

我们为路点随便输入一个名字。这时候就会在地图上出现一个路点:

共享 原创 离线地图制作以及导航——基于安卓系统——史上最齐(4月20日更新)

好了,保持不要移动地图,我们切图源。切换到一个漂移的地图上:

共享 原创 离线地图制作以及导航——基于安卓系统——史上最齐(4月20日更新)

发现我们的A点跑偏了。刚才我们设置的A点是正确点,在路上,但是现在跑到其他地方了。这就说明了这幅地图是偏移的。同理可以检测其他地图的偏移情况。

好了,使用MOBAC下载地图的教程到此结束,后面有空了我会写怎么制作自己的MOBAC图源文件。

1人 评分 查看全部评分
  • Magical茏
发表于 2013-5-18 09:42 68 只看该作者
准备写地图纠偏。方法挺多的,梳理出来需要点时间,更新会不定期。而且可能会自己写个程序用于纠偏。
1人 评分 查看全部评分
  • Magical茏
发表于 2013-5-20 13:11 69 只看该作者
有点牛逼…………
发表于 2013-5-20 14:17 70 只看该作者
看了点很实用,正是需要的东东,先记号,回家慢慢研究!
你需要登录后才可以回帖 登录 | 注册 |