關於obd圍欄報警的實現思考

圍欄報警做爲obd較爲重要的一個功能實質上是依靠軟件技術來實現的一個功能。算法

什麼是圍欄

根據地圖服務提供能的路書功能,咱們能將車輛行駛的座標在地圖上造成軌跡標示出來,若是車主將車停靠在某一個位置,而對這個位置的環境不放心的時候,車主能夠在地圖上將車所在的區域設置一個圍欄,並設置若是車輛離開圍欄則將警報信息發送給車主,這就是圍欄報警。安全

有哪些圍欄以及使用場景

通常狀況下兩種圍欄便可知足大部分常規需求。spa

一是規則圍欄,以某一個位置畫一個圓圈。這種圍欄通常用來設定車輛的安全位置,當車發生移動並走出圍欄則觸發報警。blog

二是多邊形圍欄,多邊形圍欄既能夠知足規則一的使用場景也能夠較爲複雜的需求。如車輛行徑路線的管理,在地圖上將某一段路使用圍欄圍起來,劃定車輛的行駛範圍,當車輛超出行駛範圍時觸發警報。圖片

圍欄的實現

規則一圍欄的實現較爲簡單,知道圓的半徑後,根據車輛上報的座標計算距離中心點的距離和半徑作對比便可知道是否進入或開出圍欄。it

規則二的實現涉及到較爲複雜的算法,即爲:判斷一個點是否在一個多邊形區域內。較爲可靠的算法是投影法,以原始點爲起點,沿着Y軸向上下兩個防線分別話一條垂直線,判斷這條線與多邊形圍欄的邊相交點的個數。若是爲偶數個則表示在多邊形外,若是爲奇數個則表示在多邊形內。百度地圖

圖片描述

如上圖中,目標點1座標點在內部,以起始點畫一條垂直線,即Y軸。在Y軸的上下兩方和圍欄在A,B點各有一處相交,則能夠判斷是在多邊形內。class

目標點2,3分別和多邊形圍欄的各個邊相交的狀況爲:百度

目標點2,Y上0個,Y下兩個軟件

目標點3:Y上0個,Y下0個

因此目標點2和目標點3都在多邊形圍欄外。

在實現的過程當中要注意一點很是重要的問題,那就是無論是北斗仍是GPS仍是伽利略上傳的座標點是WGS標準的座標,在百度地圖或者高德地圖上應用時須要轉爲地圖相應的座標才行,不然是失之毫厘謬以千里。

在圍欄的設置過程當中,若是爲一輛車在其必經的路線上設置了一個較小區域時,應當考慮到車速狀況。obd平均15秒(能夠設置上報間隔)上報一次數據,若是在進入圍欄前上報了一條數據,等下一條上報時,已經穿過圍欄了,這種狀況並不會觸發報警。

相關文章
相關標籤/搜索