為何使用了離線地圖還會消耗手機流量,有辦法避免嗎? | 知乎問答精選

 

A-A+

為何使用了離線地圖還會消耗手機流量,有辦法避免嗎?

2018年09月30日 知乎問答精選 暫無評論 閱讀 1 ℃ 次

【賀濱的回答(408票)】:

做地圖有段時間了,值得欣慰的是,終於有人意識到了「離線地圖」文字上的貓膩了。

先直接解答題主的疑惑:

1、 即使下載了「離線地圖」,大多數地圖APP在正常使用過程中依然會消耗流量。

2、 完全不消耗流量的地圖APP(即「零流量地圖」)是完全可以實現的。

要詳細解釋這個問題,需要搞清楚手機離線地圖的發展的幾個時代:

一、「先下再用」時代

早期的手機地圖,必須先下載從幾百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或基站)?同時,由於運算都是在手機上進行,不需要去雲端請求結果,等待時間也減少了很多。

事實上,這樣做還得克服一堆困難——比如說,如何保證雲端複雜的服務遷移到手機本機時,能夠高效並且佔用更少的資源?

工程師們再一次給出了解決辦法:在選擇合適的數據結構和算法後,採用漏洞模型只加載必要的數據,同時合理設計緩存、提升運行速度,並且提前做大量離線計算、存儲中間結果。這也是為何部分地圖存在「離線導航包」的原因。

在這個過程中,「提前做離線計算、存儲中間結果」是非常有必要的:在離線公交路線的計算過程中,很多中間計算信息是固定不變、可以提前算好的,因此可以存儲成中間數據。為了不讓中間數據過大導致離線地圖包太大,對這些數據做合理壓縮,便可大大提升運行效率。比如目前,全北京公交離線數據,也只要8MB。

搭車做個我廠的廣告:目前市面上的覆蓋主流平台的零流量手機地圖,只有騰訊地圖一家,最新的iOS版本20MB左右客戶端 ,北京市離線地圖包+導航包約100MB 。使用時若全程開啟零流量模式,除了部分GPS信號覆蓋不到的地方可能需要耗費幾Byte的流量進行定位 ,離線搜索、離線公交、離線步行規劃、離線駕車導航都可看成是不消耗任何流量。

謝謝評論中的朋友提醒:WP平台的Here地圖也支持零流量功能,這裡為自己的無知道歉。

五、可預期的未來

技術永無止境,手機離線地圖的發展,也許還有幾個值得期待的方向:

1、 地圖包增量更新:城市發展日新月異,地圖底圖的更新也愈發頻繁,但是總不能每次都下載完整的地圖包吧?通過增量更新,可以讓用戶只更新增加的數據部分,可以想見,未來不用在WIFI網絡下,都可以通過極少的流量獲得最新的地圖數據。

2、 離線街景地圖:相比虛擬圖層,人們可能更傾向於在街景照片中查看路口、參照建築物,隨著圖片數據壓縮技術、手機硬件技術的提升,未來可能在離線數據包中,就能看到關鍵路徑上的街景參照物。

一孔之見,希望能拋磚引玉。

利益相關:本人騰訊員工。

【孫竟的回答(20票)】:

補充一個技術細節。

手機的 GPS 模塊返回的是 WSG84 坐標系的數據,絕大多數國家的電子地圖可以通過這個坐標來定位。

而中國的相關部門出於安全等各種因素的考慮,不允許中國的電子地圖直接使用這個坐標系,而是對其進行了一個偏移,形成了 GCJ-02 坐標,業內俗稱為「火星坐標」。在 GCJ-02 的基礎上,地圖供應商可以再次加入偏移,形成自定義的火星坐標。

在幾年前我接觸過的幾種 iOS 的地圖 SDK 中,都有一個接口是用於把 WSG84 坐標轉成偏移後的坐標。但這些接口並不是本地執行的,而是需要發起一個網絡請求,由服務器返回結果,這就導致沒有聯網時,無法正確地在中國地圖上定位。此處有個不嚴謹的地方,中國的衛星地圖可以用 WSG84 坐標系,所以理論上在顯示衛星地圖時,可以不需要聯網就能定位。

實際上這個偏移算法是可以本地直接計算的,網上可以找到破解算法。

所以在某些網絡不好的地帶,我就用自己做的地圖應用來定位。

至於 @賀濱 所說的騰訊地圖,應該也是內置了偏移算法。

我沒有找到相關的法律文件,但從一些新聞報導來看,車載導航內置這個計算模塊(稱為保密插件)需要支付 10 元的許可費,手機上可能也有類似的規定。我就不繼續猜測只有騰訊內置偏移算法的原因了,可能人家就是有錢呢……

最後,我並沒有全面地回答這個問題。

除了定位以外,流量還會消耗在搜索目標地點、查詢路徑、顯示交通流量等行為上,希望不要因此被誤導。

【董杉的回答(13票)】:

謝邀哈。GIS(地理信息系統)這個東西比互聯網出現得早。所以地圖第一次顯示在屏幕上的時候,它一定是離線的地圖。從時間順序上來講,由於出現了在線地圖,所以我們才反過來稱不在線的地圖叫做離線地圖。

所以離線地圖當然能做到完全不用流量了。早先的導航儀數據完全保存在光盤或存儲卡上,用戶要升級地圖需要去經銷商那裡換新的光盤或存儲卡才行。後來有了互聯網,生產商可以讓用戶自己下載和拷貝地圖數據,然後才發展了在線的地圖模式。

回答這樣的問題顯得人都老了~

補充:

在線的地圖應該還是未來的大方向,但是受限於目前的網絡條件啦什麼的,在線離線混合的模式可以讓用戶的體驗更好一些。偏在線的方式,網絡好的時候在線,網絡不好的時候用離線緩存的數據;偏離線的方式,有離線數據就用離線的,能本地處理就本地處理,在線的時候下載元數據,或者做數據的更新,以後接著主要用本地數據。這些都是合理的方案。

所以這樣可能會造成你提到的使用離線數據為什麼還有流量的問題。總之在目前,混合的方式是最好的方式。

【知乎用戶的回答(5票)】:

前凱立德員工略微表達下自己的認知:

先給答案:當然能做到完全不需要流量。。

首先電子地圖和導航軟件是兩個概念。

導航軟件其實就是在電子地圖數據的基礎上加了個搜索引擎。

車載上使用的導航軟件,四維圖新、高德、凱立德、道道通、美行、易圖通等一般都是預裝了電子地圖數據和搜索引擎,如此不需要網絡而只需根據接收到的GPS星號再加上各種算法來實現導航。

手機上的搜狗,百度等一些電子地圖根本不具備測繪資質,基礎數據都是買的,他們自己做的搜索引擎部分一般放到服務器,你下載了離線地圖,這個時候你可以根據GPS定位你的位置而不需要流量,但當你搜索目的地規劃路徑需要導航時,就會用到他們的算法,這個時候就需要網絡和他們的服務器連接後,再返回結果給你導航。

另外有些功能,比如實時路況就必須連接網絡。這些都會使用流量。

建議題主親戚買個GPS手持導航儀,預裝了凱立德或者道道通或者高德或者四維地圖的,根本不需要連接網絡。

如有謬誤,請指出,謝謝。

【張成祥的回答(11票)】:

諾基亞駕車離線模式完全不用流量精確導航用過的都知道逆天的是還有離線搜索功能,前提好像是你把此省的地圖包下下來(用不了多少兆)

【zhengjet的回答(6票)】:

專為諾記here地圖系列點個贊。誰用誰知道,用過都說好

【海濤的回答(2票)】:

當然可以!

以前的 便攜式的導航(如 凱立德 運行於 wince),沒有任何移動、網絡流量可以利用的,地圖瀏覽、導航 同樣非常好用。

現在的有個安卓應用 RMapsExt.apk(360,550字節) ,複製了下列地圖文件

346,893,312 China_maps.sqlitedb

108,359,680 SZ_HK_maps.sqlitedb

96,075,776 SZ_maps.sqlitedb

328,340,800 ZSJ_maps.sqlitedb

就可以離線使用。

【知乎用戶的回答(1票)】:

典型的地圖應用如百度地圖至少包含兩個部分(下面的離線=零流量):

1 地圖數據加載

可以完全做到離線

2 附加功能使用

定位:可以完全離線,但是這意味著你只能依靠GPS定位,手機自帶的GPS的定位精度和所需要時間想必大家很清楚。

搜索:技術上可以做到離線,但是費力不討好,考慮到數據和服務的更新換代很少人把這部分做到離線。

路況、打車等需要實時中心服務器計算或者跟第三方有交互的都做不到。

---------------

題外話,互聯網時代,各巨頭都狠不得把用戶7x24小時綁到他家產品和服務上,讓其形成依賴,結果你費了老大勁兒整了一個完全離線的出來,這是要鬧哪樣?

所以看看百度、高德這些也僅僅是搞了個離線」地圖」出來,沒人腦殘到完全做一個離線的地圖應用,因為地圖只是個載體,附加之上的應用才是殺手鑭。

【徐英涵的回答(1票)】:

很多人沒搞清楚地圖和導航是兩個軟件,於是看到了坐井觀天的諾基亞用戶得瑟。

導航軟件一般不需要流量,比如百度導航、高德導航。

地圖軟件一般都需要流量,比如百度地圖、高德地圖。

【kkrystal的回答(2票)】:

一直都是用百度地圖吧...

1,先入為主,剛學會用地圖的時候接觸的就是就是PC上的百度地圖,後來用上智能機,手機上自然也裝的是百度地圖。

2,信息量挺豐富,雖然谷歌的最精準,但大家都懂的,卡成那樣還能用麼,百度地圖的信息量就能滿足我日常生活中在哪兒,去哪兒,找哪兒以及怎麼去的各種需求。

3,O2O功能,商家信息比較多,能找到身邊適合的地方,尤其是在百度收購了糯米之後,一些團購及本地化服務的優惠力度還是不錯的。

4,使用習慣,中間為了林志玲下載過一個高德地圖,實在用的是不順手啊,只好殘忍拒絕志玲的五分好評,最終還是卸載了。

【知乎用戶的回答(0票)】:

幾個概念區分一下:

離線地圖:支持在無網絡的情況下離線瀏覽地圖,目前大部分APP都支持

離線導航:需要下載專門的導航數據包,能夠在無網絡的情況下進行路線規劃和導航

離線檢索:也需要下載專門的POI數據包,現在一般跟離線導航放在一起。

離線地圖+導航+檢索才可以稱為無流量。

話說百度導航從一開始就有這玩意,現在還實現了數據增量更新,這才是解決的業界難題吧。

【唐欣的回答(0票)】:

我同學這個月剛從美帝回來,電話卡不能在國內使用,但是開車的時候用的是百度地圖的離線地圖啊,照常可以導航啊,完全不需要流量啊

【陳肖恩的回答(0票)】:

理論上可以,注意只是理論。

主要離線地圖就是下載特定區域範圍的地圖地形包或區塊(不包括衛星圖),由於多是矢量信息,實際數據量是足夠支持一定比例的放大觀看的。基本滿足地圖查閱需求。

但一些細緻化信息,如具體某個點的詳細商業信息,由於數據太多,需要定時更新,一般不可能有離線模式。

衛星圖已經是非矢量圖,數量太大了,也不可能完全離線,最多有一個鎖定級別的衛星比例圖,只能是點陣放大,不會是動態更換更大界別的衛星比例圖。

【宋柏林的回答(0票)】:

這個問題——

進入手機設置——蜂窩數據——蜂窩移動數據關閉。

點擊home建——點擊地圖——你會發現你的地圖依舊能使用。

我用的是高德,我確定沒問題,並且能搜索地名。

【柯木木的回答(0票)】:

有的啊。比如凱立德。你想用上海的地圖,前提是先下載好上海地圖的數據包,大概幾百兆左右

【知乎用戶的回答(0票)】:

原理很簡單,離線地圖裡包含地圖的經緯度信息,手機的gps能獲取當前的經緯度,這樣就能找到在地圖上對應的位置。但是有些搜索的功能還是要流量的,因為應用提供商通常會在搜索結果提供大量相關信息,於是把這個功能做的很複雜,需要服務器來處理。

【知乎用戶的回答(0票)】:

避免辦法:用的時候關蜂窩,路線地點可以提前搜索好收藏起來,這樣在沒有網絡的情況下也可以查看。

定位沒有網也可以用。

【李糊塗的回答(0票)】:

按你所說的,就這麼解釋好了:

手機應用產生的流量可以進行分類

  • 展示地圖需要的流量
  • 獲取其他信息需要的流量(打車軟件?那比如那些語音文件的下載,實時信息的更新)

離線地圖從理論上講可以免去#1 的流量,但是#2 的流量,無論如何都無法免去

標籤:-科技 -互聯網 -生活 -地圖 -地圖應用


相關資源:





給我留言