<noframes id="5hjpd"><progress id="5hjpd"><form id="5hjpd"></form></progress>

    <noframes id="5hjpd">

    <span id="5hjpd"><progress id="5hjpd"><progress id="5hjpd"></progress></progress></span>
      <noframes id="5hjpd">
      <ins id="5hjpd"><sub id="5hjpd"><rp id="5hjpd"></rp></sub></ins>
      <del id="5hjpd"><big id="5hjpd"></big></del>
      <track id="5hjpd"></track>

      iBeacon藍牙定位技術原理及實現

      導語 藍牙定位是iBeacon技術最常被應用的方向之一,基于藍牙定位可以實現諸如尋路、尋車、向導等很多商業需求,覓跡導航的定位系統也是基于iBeacon技術實現的。藍牙定位又可以分為一維定位和二維定位,本文將介紹兩種藍牙定位技術的實現原理及實現方法。

        藍牙定位是iBeacon技術最常被應用的方向之一,基于藍牙定位可以實現諸如尋路、尋車、向導等很多商業需求,覓跡導航的定位系統也是基于iBeacon技術實現的。藍牙定位又可以分為一維定位和二維定位,本文將介紹兩種藍牙定位技術的實現原理及實現方法。

        一維定位

        原理

        藍牙定位的底層技術是藍牙測距,關于藍牙測距在《微信小程序iBeacon測距及穩定程序的實現》一文中已經做了詳細介紹,這里不再贅述。

        所謂一維定位其實就是對藍牙測距技術的最簡單應用,只要將藍牙信標設備部署在指定點,當接收設備(手機)足夠靠近信標時,就認為用戶到達了指定點。之所以稱之為一維定位,是因為定位結果完全依附于信標設備的位置,沒有任何其他維度上的擴展。

      藍牙定位

      應用

        這種方式通常用在固定路線的沿途部署,為路線上的用戶提供定位信息。

        優點是部署成本和開發成本很低,缺點是只能應用在路線固定,并且定位點間隔不太密集的場景。典型的例子就是景區或者園區,景區內的路徑都是經過設計的,固定而且幾乎唯一;景點之間的距離也不會很近,至少在50m以上的間距。只要沿途以大致固定的間距部署信標設備,就可以為用戶提供相對實時而且準確的定位信息。

        實現

        一維定位的部署非常簡單,如上文所述,只要確定好信標設備的有效覆蓋范圍,然后沿途部署就可以。部署同時收集每個或部分信標設備的位置信息,作為程序的定位檢索依據。

        開發方面,移動設備只要將收到的信號做距離排序,找到距離最近的一個信標設備,如果距離在指定范圍內,就檢索該設備的位置信息,認為用戶到達了該地區。

        太簡單了,就不多說了。

        二維定位

        原理

        二維定位顧名思義,就是可以實現二維空間中的任意定位。定位的主要理論依據三角形三邊關系公式。

      iBeacon藍牙定位

        如上圖,已知三角形三邊長度,CD是底邊AB的垂線,AD和BD的長度計算公式分別為

      1. BD = (AB2+CB2-AC2)÷2AB 
      2. AD = (AB2-CB2+AC2)÷2AB 

        整體思路是,將信標設備在場地內按指定間距做網狀部署,使用戶在場地內任意點都可以接收到3個距離最近而且連線構成直角的定位點信息,如下圖

      iBeacon藍牙定位

        通過三角形三邊關系公式,可以計算出上圖中px和py的長度,也就是當前點在當前正方形網格中的坐標。

        再根據當前所在正方形在整個矩陣中的位置,結合部署間距,算出當前點在整個矩陣中的坐標。

        應用

        二維定位理論上適用于任何場景,通常用在用戶活動路徑不固定的自由空間中,比如展會、商場。

        優點是場地適應性更強,缺點是部署成本和開發成本相對較高。以商場為例,嚴格按照固定間距部署藍牙信標,往往需要結合實地情況選擇合適的距離,程序也要根據實際間距做相應的計算調整。另外還要考慮不規則區域的處理,往往會將一維定位和二維定位結合使用。

        實現

        上面原理部分說起來有點啰嗦,看圖其實很簡單。

        假設現在有一個30m * 30m的場地,將信標設備以10m為間距網狀部署,共需要16個信標,每個信標都按下圖所示標注上坐標信息

      藍牙定位技術原理

        此時用戶無論在場地內的任何位置,都將身處9個正方形網格中的一個(暫不考慮臨界情況),那么移動設備收到的距離最近的4個信標點,應該就是當前所在正方形的4個頂點。

        假設當前用戶此時在左上角第一個正方形中,根據藍牙測距結果,得到距離最近的3個信標點,對應的距離分別為distance1, distance2, distance3,如圖

      iBeacon藍牙定位技術原理

        三個頂點距離已知,部署間距已知,根據三邊關系公式可以得px, py的值,也就是當前點在當前網格中的坐標。

        在這之前先要解決一個問題,那就是三個點之間的關系。我們知道三個點肯定兩兩連線互為直角,但到底哪兩個點在橫軸上,哪兩個點在縱軸上。這需要結合點的坐標信息做進一步處理。

      1. //判斷三點(points)的關系 
      2. let xAxisPoints = []; 
      3. let yAxisPoints = []; 
      4. for (let i = 0; i < points.length; i++) { 
      5.   let point = points[i]; 
      6.   //找到Y軸點 
      7.   let xNO = point.x; 
      8.   let yPoints = points.filter(e => e.x === xNO) 
      9.   if (yPoints.length >= 2) { 
      10.     yAxisPoints = yPoints.sort((a, b) => a.y - b.y) 
      11.     if (xAxisPoints.length) { 
      12.       break
      13.     } 
      14.   } 
      15.   //找到X軸點 
      16.   let yNO = point.y; 
      17.   let xPoints = points.filter(e => e.y === yNO) 
      18.   if (xPoints.length >= 2) { 
      19.     xAxisPoints = xPoints.sort((a, b) => a.x - b.x) 
      20.     if (yAxisPoints.length) { 
      21.       break
      22.     } 
      23.   } 

        至此,就很容易算出定位點的橫軸坐標和縱軸坐標了,再分別加上當前網格在整個矩陣中的橫坐標和縱坐標,就得到了最終的定位坐標。

        上例中的xAxisPoints和yAxisPoints已經對坐標信息做了排序,橫軸數組第一個點的x值,以及縱軸數組第一個點的y值,就是網格在整個矩陣中的橫坐標和縱坐標。

        總結

        一維定位和二維定位分別有各自的應用場景,其中二維定位對實施能力提出了較高的要求,F實環境中往往還需要將一維定位和二維定位結合使用,這里需要程序設計上處理好兩種情況的兼容。

        得到定位信息,往往只是項目的第一步。比如在導航系統中,定位信息需要匹配最近的目標點,整個導航功能才可以開始使用。有機會后面會對導航系統的實現,做進一步的分享。

      http://www.randomwithlife.com/ true iBeacon藍牙定位技術原理及實現 http://www.randomwithlife.com/show-47-1125-1.html report <?php echo strlen($content) / 2; ?> 藍牙定位是iBeacon技術最常被應用的方向之一,基于藍牙定位可以實現諸如尋路、尋車、向導等很多商業需求,覓跡導航的定位系統也是基于iBeacon技術實現的。藍牙定位又可以分為一維定位和二維定位,本文將介紹兩種藍牙定位技術的實現原理及實現方法。
      本站歡迎任何形式的轉載,但請務必注明出處,尊重他人勞動成果
      轉載請注明: 文章轉載自:愛思資源網 http://www.randomwithlife.com/show-47-1125-1.html

      [前端插件推薦] Plugin

      1 2 3 4
      • jQuery實現逐字逐句顯示插件l-by-l.min.js
      • jQuery帶方向感知的鼠標滑過圖片邊框特效插件
      • jQuery HotKeys監聽鍵盤按下事件keydown插件
      • 響應式無限輪播jQuery旋轉木馬插件
      響應式無限輪播jQuery旋轉木馬插件
      web前端開發
      愛思資源網 Copyright 2012-2014 www.randomwithlife.com All rights reserved.(晉ICP備13001436號-1)
      欧美精品久久久久久久自慰

      <noframes id="5hjpd"><progress id="5hjpd"><form id="5hjpd"></form></progress>

        <noframes id="5hjpd">

        <span id="5hjpd"><progress id="5hjpd"><progress id="5hjpd"></progress></progress></span>
          <noframes id="5hjpd">
          <ins id="5hjpd"><sub id="5hjpd"><rp id="5hjpd"></rp></sub></ins>
          <del id="5hjpd"><big id="5hjpd"></big></del>
          <track id="5hjpd"></track>