手機(jī)定位的基本原理
目前智能手機(jī)的使用已經(jīng)越來(lái)越普遍,手機(jī)定位也是手機(jī)上的一個(gè)核心基礎(chǔ)功能。舉一個(gè)常見(jiàn)的應(yīng)用如叫車,司機(jī)需要知道你在哪里,同時(shí)打車軟件也需要基于司機(jī)和乘客的位置規(guī)劃一條路線,讓司機(jī)更高效的行駛到用戶這里。這就是典型的定位服務(wù)的應(yīng)用。當(dāng)然,除去這種應(yīng)用,用戶位置本身的展示,也是地圖產(chǎn)品中不可缺少的。那么app是如何得知當(dāng)前設(shè)備所處的位置的呢?

可用于無(wú)線定位的信號(hào):①GPS信號(hào)②基站信號(hào)③wifi信號(hào),以上三種是最常用的定位方式,此外還有藍(lán)牙/IP/地磁場(chǎng)等手段
通常智能手機(jī)有以下兩種定位方式:
一,調(diào)用系統(tǒng)級(jí)定位能力:
無(wú)論哪個(gè)系統(tǒng)(IOS、安卓、WP)都提供了一套系統(tǒng)級(jí)定位能力,這樣的定位能力,對(duì)應(yīng)著是一套系統(tǒng)級(jí)API,這個(gè)API一般來(lái)說(shuō),總是會(huì)有如下幾個(gè)
精度的選項(xiàng):
- 高精度:能搜到GPS衛(wèi)星,則使用GPS定位,否則,則使用WIFI定位,如果WIFI和GPS都無(wú)法定位成功,只能根據(jù)基站來(lái)給出定位結(jié)果了。
- 平衡功耗:禁用GPS(因?yàn)樗浅:碾?,優(yōu)先使用WIFI,如果WIFI不可用,則用基站來(lái)進(jìn)行定位。
- 低功耗(被動(dòng)定位):根據(jù)不同系統(tǒng)的規(guī)定,實(shí)現(xiàn)方式也不同,但大體上都是共享其他app的定位結(jié)果,即其他app以高精度、平衡功耗的方式得到位置,那么這個(gè)位置也一并推送給當(dāng)前使用“低功耗定位”的app,也就是該app不消耗額外的能耗,就完成了定位。
當(dāng)然,這種系統(tǒng)級(jí)定位能力是有著軟肋的,軟肋在于以下兩點(diǎn):①在基站、WIFI定位能力上,系統(tǒng)定位能力取決于系統(tǒng)自己在這方面投入數(shù)據(jù)收集推算的能力,這個(gè)是參差不齊的。舉個(gè)簡(jiǎn)單的例子,百度和高德在中國(guó)采集了成百上千個(gè)公共場(chǎng)所的室內(nèi)定位信息,使之能達(dá)到米級(jí)的室內(nèi)定位,蘋果做了嗎?谷歌做了嗎?微軟做了嗎?他們?cè)趺春蛧?guó)內(nèi)的服務(wù)商拼效果?
二、調(diào)用第三方定位SDK
對(duì)于可以公開(kāi)讀取基站、WIFI信息的Android手機(jī)系統(tǒng),國(guó)內(nèi)的百度、高德等地圖廠商自行實(shí)現(xiàn)了定位SDK,該定位SDK的作用就是通過(guò)系統(tǒng)接口讀取到原始定位信息,然后借助于各家自行部署維護(hù)的數(shù)據(jù)庫(kù),查詢到當(dāng)前掃描到的基站、WIFI的位置,最終計(jì)算出更準(zhǔn)確的定位結(jié)果,通過(guò)SDK的接口,返回給開(kāi)發(fā)者。這么做的好處,在于能夠讓app的定位能力脫離對(duì)手機(jī)系統(tǒng)的依賴。
舉個(gè)例子,一個(gè)app他如果只是調(diào)用系統(tǒng)定位接口,那么在行貨手機(jī),由于手機(jī)廠商已經(jīng)把定位的網(wǎng)絡(luò)服務(wù)器重定向?yàn)閲?guó)內(nèi)定位服務(wù)商,所以肯定可以定位,但是在水貨手機(jī)上因?yàn)橄到y(tǒng)底層是直接連google服務(wù)器的,就會(huì)無(wú)法定位。但用戶就是上帝,出現(xiàn)了這個(gè)事情在用戶看來(lái),就是不能接受的,為了保證app在所有手機(jī)上都可以定位,開(kāi)發(fā)者就會(huì)不得不使用第三方的獨(dú)立定位SDK。
