藍牙定位是iBeacon技術(shù)最常被應(yīng)用的方向之一,基于藍牙定位可以實現(xiàn)諸如尋路、尋車、向?qū)У群芏嗌虡I(yè)需求,也是基于iBeacon技術(shù)實現(xiàn)的。藍牙定位又可以分為一維定位和二維定位,本文將介紹兩種藍牙定位技術(shù)的實現(xiàn)原理及實現(xiàn)方法。
藍牙定位一維定位
原理
藍牙定位的底層技術(shù)是藍牙測距,所謂一維定位其實就是對藍牙測距技術(shù)的最簡單應(yīng)用,只要將藍牙信標設(shè)備部署在指定點,當接收設(shè)備(手機)足夠靠近信標時,就認為用戶到達了指定點。之所以稱之為一維定位,是因為定位結(jié)果完全依附于信標設(shè)備的位置,沒有任何其他維度上的擴展。
應(yīng)用
這種方式通常用在固定路線的沿途部署,為路線上的用戶提供定位信息。
優(yōu)點是部署成本和開發(fā)成本很低,缺點是只能應(yīng)用在路線固定,并且定位點間隔不太密集的場景。典型的例子就是景區(qū)或者園區(qū),景區(qū)內(nèi)的路徑都是經(jīng)過設(shè)計的,固定而且?guī)缀跷ㄒ?;景點之間的距離也不會很近,至少在50m以上的間距。只要沿途以大致固定的間距部署信標設(shè)備,就可以為用戶提供相對實時而且準確的定位信息。
實現(xiàn)
一維定位的部署非常簡單,如上文所述,只要確定好信標設(shè)備的有效覆蓋范圍,然后沿途部署就可以。部署同時收集每個或部分信標設(shè)備的位置信息,作為程序的定位檢索依據(jù)。
開發(fā)方面,移動設(shè)備只要將收到的信號做距離排序,找到距離最近的一個信標設(shè)備,如果距離在指定范圍內(nèi),就檢索該設(shè)備的位置信息,認為用戶到達了該地區(qū)。
太簡單了,就不多說了。
藍牙定位二維定位
原理
二維定位顧名思義,就是可以實現(xiàn)二維空間中的任意定位。定位的主要理論依據(jù)三角形三邊關(guān)系公式。
如上圖,已知三角形三邊長度,CD是底邊AB的垂線,AD和BD的長度計算公式分別為
BD = (AB2+CB2-AC2)÷2AB
AD = (AB2-CB2+AC2)÷2AB
整體思路是,將信標設(shè)備在場地內(nèi)按指定間距做網(wǎng)狀部署,使用戶在場地內(nèi)任意點都可以接收到3個距離最近而且連線構(gòu)成直角的定位點信息,如下圖
通過三角形三邊關(guān)系公式,可以計算出上圖中px和py的長度,也就是當前點在當前正方形網(wǎng)格中的坐標。
再根據(jù)當前所在正方形在整個矩陣中的位置,結(jié)合部署間距,算出當前點在整個矩陣中的坐標。
應(yīng)用
二維定位理論上適用于任何場景,通常用在用戶活動路徑不固定的自由空間中,比如展會、商場。
優(yōu)點是場地適應(yīng)性更強,缺點是部署成本和開發(fā)成本相對較高。以商場為例,嚴格按照固定間距部署藍牙信標,往往需要結(jié)合實地情況選擇合適的距離,程序也要根據(jù)實際間距做相應(yīng)的計算調(diào)整。另外還要考慮不規(guī)則區(qū)域的處理,往往會將一維定位和二維定位結(jié)合使用。
實現(xiàn)
上面原理部分說起來有點啰嗦,看圖其實很簡單。
假設(shè)現(xiàn)在有一個30m * 30m的場地,將信標設(shè)備以10m為間距網(wǎng)狀部署,共需要16個信標,每個信標都按下圖所示標注上坐標信息
此時用戶無論在場地內(nèi)的任何位置,都將身處9個正方形網(wǎng)格中的一個(暫不考慮臨界情況),那么移動設(shè)備收到的距離最近的4個信標點,應(yīng)該就是當前所在正方形的4個頂點。
假設(shè)當前用戶此時在左上角第一個正方形中,根據(jù)藍牙測距結(jié)果,得到距離最近的3個信標點,對應(yīng)的距離分別為distance1, distance2, distance3,如圖
三個頂點距離已知,部署間距已知,根據(jù)三邊關(guān)系公式可以得px, py的值,也就是當前點在當前網(wǎng)格中的坐標。
在這之前先要解決一個問題,那就是三個點之間的關(guān)系。我們知道三個點肯定兩兩連線互為直角,但到底哪兩個點在橫軸上,哪兩個點在縱軸上。這需要結(jié)合點的坐標信息做進一步處理。
至此,就很容易算出定位點的橫軸坐標和縱軸坐標了,再分別加上當前網(wǎng)格在整個矩陣中的橫坐標和縱坐標,就得到了最終的定位坐標。
上例中的xAxisPoints和yAxisPoints已經(jīng)對坐標信息做了排序,橫軸數(shù)組第一個點的x值,以及縱軸數(shù)組第一個點的y值,就是網(wǎng)格在整個矩陣中的橫坐標和縱坐標。
總結(jié)
一維定位和二維定位分別有各自的應(yīng)用場景,其中二維定位對實施能力提出了較高的要求。現(xiàn)實環(huán)境中往往還需要將一維定位和二維定位結(jié)合使用,這里需要程序設(shè)計上處理好兩種情況的兼容。
得到定位信息,往往只是項目的第一步。比如在導(dǎo)航系統(tǒng)中,定位信息需要匹配最近的目標點,整個導(dǎo)航功能才可以開始使用。有機會后面會對導(dǎo)航系統(tǒng)的實現(xiàn),做進一步的分享。
本文轉(zhuǎn)自網(wǎng)路,侵刪