为何使用了离线地图还会消耗手机流量,有办法避免吗?
的有关信息介绍如下:终于有人意识到【离线地图】文字上的猫腻了,今天就来给大家解释解释!
1. 即使下载了【离线地图】,大多数地图APP在正常使用过程中依然会消耗流量。
2. 完全不消耗流量的地图APP(即【零流量地图】)是完全可以实现的。
先来了解一下
要详细解释这个问题,需要搞清楚手机离线地图发展的几个时代:
GIS(地理信息系统)这个东西比互联网出现得早。所以地图第一次显示在屏幕上的时候,它一定是离线的地图。从时间顺序上来讲,由于出现了在线地图,所以我们才反过来称不在线的地图叫做离线地图。
所以离线地图当然能做到完全不用流量了。早先的导航仪数据完全保存在光盘或存储卡上,用户要升级地图需要去经销商那里换新的光盘或存储卡才行。后来有了互联网,生产商可以让用户自己下载和拷贝地图数据,然后才发展了在线的地图模式。
在线的地图应该还是未来的大方向,但是受限于目前的网络条件啦什么的,在线离线混合的模式可以让用户的体验更好一些。偏在线的方式,网络好的时候在线,网络不好的时候用离线缓存的数据;偏离线的方式,有离线数据就用离线的,能本地处理就本地处理,在线的时候下载元数据,或者做数据的更新,以后接着主要用本地数据。这些都是合理的方案。
所以这样可能会造成你提到的使用离线数据为什么还有流量的问题。总之在目前,混合的方式是最好的方式。
首先电子地图和导航软件是两个概念。导航软件其实就是在电子地图数据的基础上加了个搜索引擎。车载上使用的导航软件,四维图新、高德、凯立德、道道通、美行、易图通等一般都是预装了电子地图数据和搜索引擎,如此不需要网络而只需根据接收到的GPS星号再加上各种算法来实现导航。
手机上的搜狗,百度等一些电子地图根本不具备测绘资质,基础数据都是买的,他们自己做的搜索引擎部分一般放到服务器,你下载了离线地图,这个时候你可以根据GPS定位你的位置而不需要流量,但当你搜索目的地规划路径需要导航时,就会用到他们的算法,这个时候就需要网络和他们的服务器连接后,再返回结果给你导航。另外有些功能,比如实时路况就必须连接网络。这些都会使用流量。建议题主亲戚买个GPS手持导航仪,预装了凯立德或者道道通或者高德或者四维地图的,根本不需要连接网络。
离线导航和离线定位是2个概念,三大平台基本所有软件都可以实现离线定位。
先说Nokia Drive,这货也许不是导航最精准的,但一定是速度最快的,管你在阿联酋,尼日利亚还是毛里求斯,都是秒搜,然后开始导航,不好意思问下,高德等能做到吗?之所以那么说,是因为在国内大多数时候,我们不需要手机导航,车里买个导航仪比什么都好,Nokia Drive解决了我们这种旅行爱好者的最大问题,我常常建议出国玩的朋友400快买台Lumia 520专门导航 。
安卓平台上可以使用破解版的R66,下载地图包,但是管你旗舰还是神器,别说秒搜,去一些国家,恐怕5000秒搜都困难,当然可以下载GPS AIDS这个软件,可以把5000秒控制在500秒内,R66的优点是,地图比Nokia细节更多,找路更方便,尤其是欧洲,北美等等。IOS导航在毛里求斯试过一次,速度比安卓略快,但是和WP比,真心就是beta中的beta了。
一、「先下再用」时代
早期的手机地图,必须先下载从几百MB到几G容量不等的地图数据包,然后配合导航应用使用。用过塞班手机的同学应该还记得著名的R66导航吧?当时就是这么用的。
印象中,那时的地图,等同于400 MB左右客户端 + 1G以上地图包 + 零流量(GPS定位时)。
二、「即需即下」时代
所谓「离线地图」,只相当于一张画满了建筑和道路的图层,由于平常人去的地方非常有限,没必要预置全世界的地图图层在手机中(会占据大量手机容量),因此部分地图APP采用了全在线地图的方式,「即需即下」,Goolge Map就是如此。在网络通畅、流量便宜的地区,这种服务非常方便。
看了早期的Google Map for Android,客户端15 MB,因为要下载图层,流量消耗没有上限,根据使用情况而定。
三、「离线地图」时代
由于每次都需要加载图层、流量消耗较大,工程师发现:与其每次下载图层文件,不如把一些常去地的图层做成大小能接受的数据包(即离线地图包),供用户在wifi等流量不敏感的环境下下载,这样使用地图时,就不用消耗读取图层所需要的流量了。「提前预知所需,先下再用」,百度、高德地图都是这个思路。
在制作离线地图包的过程中,工程师花了不少心思在减少地图包的大小上,比如通过矢量绘制等方法。目前主流的地图APP已经把城市地图包压缩在几十MB大小。
比如百度地图 for iOS,客户端46 MB,北京市18.6 MB地图包,根据搜索、导航、定位的使用情况,耗费几百KB到数MB不等的流量。
四、「零流量地图」时代
随着LBS服务的兴起、人们出行需求日益增多,用户又提出了新的问题:为何我下载了离线地图,定位、搜索地点、规划路线还需要联网?随着网络变化,地图部分服务的速度也会受到影响,这个有办法解决吗?
其实,地图定位分为GPS卫星定位和基站定位:在户外卫星信号较好时,采用GPS卫星定位,室内等卫星信号不好的地方,则通过手机接收到的基站或wifi信号,采用了多源融合及指纹等方式进行定位。后者需要耗费少许流量。同时,搜索地点、规划路线因为涉及到云端算法,必须请求到云端才能返回相应结果,该步骤也需要联网、消耗流量。
为了尽可能节省流量,工程师们再次脑洞大开:手机地图的使用场景主要是在室外,如果只通过GPS定位,关掉基站定位,同时把搜索、路线规划等服务从云端搬到手机上,不就解决了流量耗费的问题了嘛(当然室内定位时需要借助wifi或基站)?同时,由于运算都是在手机上进行,不需要去云端请求结果,等待时间也减少了很多。
事实上,这样做还得克服一堆困难——比如说,如何保证云端复杂的服务迁移到手机本机时,能够高效并且占用更少的资源?
工程师们再一次给出了解决办法:在选择合适的数据结构和算法后,采用漏洞模型只加载必要的数据,同时合理设计缓存、提升运行速度,并且提前做大量离线计算、存储中间结果。这也是为何部分地图存在「离线导航包」的原因。
在这个过程中,「提前做离线计算、存储中间结果」是非常有必要的:在离线公交路线的计算过程中,很多中间计算信息是固定不变、可以提前算好的,因此可以存储成中间数据。为了不让中间数据过大导致离线地图包太大,对这些数据做合理压缩,便可大大提升运行效率。
目前市面上的覆盖主流平台的零流量手机地图,只有腾讯地图一家,最新的iOS版本20MB左右客户端 ,北京市离线地图包+导航包约100MB 。使用时若全程开启零流量模式,除了部分GPS信号覆盖不到的地方可能需要耗费几Byte的流量进行定位 ,离线搜索、离线公交、离线步行规划、离线驾车导航都可看成是不消耗任何流量。补充:WP平台的Here地图也支持零流量功能。
五、可预期的未来
技术永无止境,手机离线地图的发展,也许还有几个值得期待的方向:
1、 地图包增量更新:城市发展日新月异,地图底图的更新也愈发频繁,但是总不能每次都下载完整的地图包吧?通过增量更新,可以让用户只更新增加的数据部分,可以想见,未来不用在WIFI网络下,都可以通过极少的流量获得最新的地图数据。
2、 离线街景地图:相比虚拟图层,人们可能更倾向于在街景照片中查看路口、参照建筑物,随着图片数据压缩技术、手机硬件技术的提升,未来可能在离线数据包中,就能看到关键路径上的街景参照物。
六、补充一个技术细节
手机的 GPS 模块返回的是 WGS84 坐标系的数据,绝大多数国家的电子地图可以通过这个坐标来定位。
而中国的相关部门出于安全等各种因素的考虑,不允许中国的电子地图直接使用这个坐标系,而是对其进行了一个偏移,形成了 GCJ-02 坐标,业内俗称为「火星坐标」。在 GCJ-02 的基础上,地图供应商可以再次加入偏移,形成自定义的火星坐标。
有几种iOS 的地图 SDK 中,都有一个接口是用于把 WGS84 坐标转成偏移后的坐标。但这些接口并不是本地执行的,而是需要发起一个网络请求,由服务器返回结果,这就导致没有联网时,无法正确地在中国地图上定位。此处有个不严谨的地方,中国的卫星地图可以用 WGS84 坐标系,所以理论上在显示卫星地图时,可以不需要联网就能定位。
实际上这个偏移算法是可以本地直接计算的,网上可以找到破解算法。所以在某些网络不好的地带,地质人还是自己做的地图应用来定位吧。
地信论坛
3s001.com
微信ID: bbs3s001
长按左侧二维码关注