天天看點

(二)WI-FI輔助定位

   最早做Wi-Fi定位的是Skyhook。IPhone/IOS開始也用Skyhook,但從4.0開始,蘋果開始用自己的資料庫,Skyhook被無情的抛棄。Apple自己的定位資料庫建立很順理成章:Skyhook收集資料還要派車走街串巷,但Apple有衆多的IPhone使用者幫忙crowd-sourcing,所有IOS使用者都可以為蘋果貢獻匿名的定位資料:一個坐标及其周邊的所有Wi-Fi AP和基站的資訊。

  

  說個題外話,如果有水友對于IOS定位很有興趣,可以看看下面的兩篇文章(這兩篇文章的連結來源于知乎的匿名使用者,感謝他的分享):

  How the iPhone knows where you are

http://www.macworld.com/article/1159528/how_iphone_location_works.html

 這篇文章把iPhone定位的原理說的很清楚。最早的純GPS定位最慢要12.5分鐘,現在定位神速的多是依靠Wi-Fi或基站輔助的AGPS

  Apple Q&A on Location Data

http://www.apple.com/pr/library/2011/04/27Apple-Q-A-on-Location-Data.html

  上面一文裡有提到的蘋果官方的說明。因為11年有人發現iPhone裡竟然儲存了使用者一年多的定位記錄,還同步到iTunes備份,嚴重危害使用者隐私。導緻蘋果發此文澄清。

  總之Apple會依靠使用者上傳的Wi-Fi以及基站資料建立一個大的資料庫,使用者都在默默奉獻… (Google也是這麼幹的,不過也派車隊,Google車比較多)

  使用者的裝置上會儲存使用者自己最近7天的Wi-Fi AP/基站資料,以及從Apple下載下傳的大資料庫的一小部分資料,覆寫使用者的周邊地區。這些資料都有助于GPS快速定位,甚至在到了5代依舊令人發指的不裝GPS晶片的iPod Touch上面靠Wi-Fi獨立定位。

  扯了這麼說,話說回來

WI-FI輔助定位

  1.每一個無線AP都有一個全球唯一的MAC位址,并且一般來說無線AP在一段時間内是不會移動的

  2.裝置在開啟Wi-Fi的情況下,即可掃描并收集周圍的AP信号,無論是否加密,是否已連接配接,甚至信号強度不足以顯示在無線信号清單中,都可以擷取到AP廣播出來的MAC位址

(二)WI-FI輔助定位

  3.裝置将這些能夠标示AP的資料發送到位置伺服器,伺服器檢索出每一個AP的地理位置,并結合每個信号的強弱程度,計算出裝置的地理位置并傳回到使用者裝置

  4.位置服務商要不斷更新、補充自己的資料庫,以保證資料的準确性,畢竟無線AP不像基站塔那樣基本100%不會移動

(二)WI-FI輔助定位

  這樣的位置服務商現在來說隻有Skyhook和Google兩家.他們收集位置資料的方式也是相似的

  (一)主動采集

  Google的街景拍攝車還有一個重要的功能就是采集沿途的無線信号,并打上通過GPS定位出的坐标回傳至伺服器;

  Skyhook在美國及歐洲一些國家也是直接開着信号采集車采集AP和基站的信号資料,相對來說覆寫城市沒有Google多,目前中國僅有少數城市有覆寫,并且他們在包括中國在内的多個國家招募有償工作者,以協助Skyhook收集位置資料。當然你也可以直接在其網站上送出一個MAC位址。

  (二)使用者送出:

  通常是以靜默方式向同時擁有Wi-Fi和GPS的終端使用者收集位置資料

  Android手機使用者在開啟“使用無線網絡定位”時會提示是否允許Google的定位服務手機匿名地點資料。

  

  用通俗的話來說吧,谷歌的工程師們是這樣想的:一個wifi熱點的覆寫範圍僅有幾十米,全世界絕大多數的wifi熱點都是固定位置的,他們又擁有獨一無二的MAC位址,如果應用基站定位的原理,那麼就可以獲得相當精确的位置資訊了。可是,世界上那麼多wifi熱點,你總不能跑到各個國家,敲開市民的門去測量吧?谷歌想到了他的神器——谷歌地圖。

  假如你的家裡有個自己設立的無線路由器,經常開機,你的鄰居正在陽台上用手機玩谷歌地圖,恰好他手機的wifi是開着的,不過沒有連接配接你家的熱點。當你的鄰居用GPS準确在地圖上定位後,谷歌伺服器會記錄周邊的wifi熱點資訊。正好,你的路由器開着,然後被記錄到資料庫了:某國家某省某市某小區某樓東側(其實是用經緯度)有一個MAC位址為12-2e-3f-4a-09-3d的wifi熱點。幾天後你打算晚上吃川菜,于是連上你的路由器打開谷歌地圖打算搜尋,這時你驚奇的發現沒開GPS,但是你的位置卻精确的定位在某國家某省某市某小區某樓東側。這是為什麼呢?這就是WI-FIi依賴定位:你打開谷歌地圖後,會上傳周圍的wifi熱點資訊,然後2-2e-3f-4a-09-3d上傳到伺服器上,伺服器根據這個位址回報你鄰居用GPS定位出來的經緯度給你,進而實作精确比對位置。當世界上N多N多人重複上述定位的時候,谷歌就可以建立起來一個豐富而且強大的wifi熱點位置資料庫。

  

  知道原理之後确定它的定位條件也不難:1、必須開啟wifi,無論是否連接配接某一個熱點。2、手機必須能上網,移動資料或者wifi聯網皆可。(不要指望谷歌允許手機内置這些熱點的位置資訊,這可是筆财富)

  Wifi定位有衆多優勢,這也就是為什麼很使用定位時會經常跳出來詢問是否打開WI-FI的原因了。個人感覺WI-FI定位有很大的潛力,特别是在WI-FI衆多的今天,不過它還有很大缺點,希望能夠解決這一難題吧~下一篇将介紹ANDROID和IOS的WI-FI輔助定位(轉載)