圍欄報警作為obd較為重要的乙個功能實質上是依靠軟體技術來實現的乙個功能。
根據地圖服務提供能的路書功能,我們能將車輛行駛的座標在地圖上形成軌跡標示出來,如果車主將車停靠在某乙個位置,而對這個位置的環境不放心的時候,車主可以在地圖上將車所在的區域設定乙個圍欄,並設定如果車輛離開圍欄則將警報資訊傳送給車主,這就是圍欄報警。
一般情況下兩種圍欄即可滿足大部分常規需求。
一是規則圍欄,以某乙個位置畫乙個圓圈。這種圍欄一般用來設定車輛的安全位置,當車發生移動並走出圍欄則觸發報警。
二是多邊形圍欄,多邊形圍欄既可以滿足規則一的使用場景也可以較為複雜的需求。如車輛行徑路線的管理,在地圖上將某一段路使用圍欄圍起來,劃定車輛的行駛範圍,當車輛超出行駛範圍時觸發警報。
規則一圍欄的實現較為簡單,知道圓的半徑後,根據車輛上報的座標計算距離中心點的距離和半徑做對比即可知道是否進入或開出圍欄。
規則二的實現涉及到較為複雜的演算法,即為:判斷乙個點是否在乙個多邊形區域內。較為可靠的演算法是投影法,以原始點為起點,沿著y軸向上下兩個防線分別話一條垂直線,判斷這條線與多邊形圍欄的邊相交點的個數。如果為偶數個則表示在多邊形外,如果為奇數個則表示在多邊形內。
如上圖中,目標點1座標點在內部,以起始點畫一條垂直線,即y軸。在y軸的上下兩方和圍欄在a,b點各有一處相交,則可以判斷是在多邊形內。
目標點2,3分別和多邊形圍欄的各個邊相交的情況為:
目標點2,y上0個,y下兩個
目標點3:y上0個,y下0個
所以目標點2和目標點3都在多邊形圍欄外。
在圍欄的設定過程中,如果為一輛車在其必經的路線上設定了乙個較小區域時,應當考慮到車速情況。obd平均15秒(可以設定上報間隔)上報一次資料,如果在進入圍欄前上報了一條資料,等下一條上報時,已經穿過圍欄了,這種情況並不會觸發報警。
關於博弈的思考
博弈,決策,永恆的主題 在博弈的過程中不要考慮是否公平,而是要考慮是否對你自己有利。這句話很值得思考。人生無時無刻不在博弈,無論是在微觀上,兩個人之間的談話 還是在巨集觀上每次人生抉擇的過程,博弈,總是在乙個恰當的視點上讓人設身處地的感受到。在博弈的過程中,公平與否,很多人都在抱怨 有的時候是與自己...
關於執行的思考
方 的實施,貫穿於軟體開發的整個過程。實施的關鍵在於執行,而執行由很多瑣碎的活動組成。在軟體開發實踐中,執行應該被放到乙個完整的體系環境中去考慮,單純強調執行本身,是無法解決執行問題的。在討論執行這個話題之前,我認為有必要先來看看東西方文化的差異。中國近代哲學史上有一種觀點,即地理環境決定了文化差異...
關於IncludeAction的思考
關於struts中的includeaction 類,傳說可以實現類似標記的功能,將乙個網頁嵌入到另乙個網頁,但基於安全等一系列因素,在基於struts的應用系統中,推薦使用includeaction。org.apache.struts.actions.includeaction 類提供 包含 指定u...