国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種公務(wù)車(chē)輛監(jiān)管中位置預(yù)警的方法

      文檔序號(hào):6722580閱讀:217來(lái)源:國(guó)知局
      專(zhuān)利名稱(chēng):一種公務(wù)車(chē)輛監(jiān)管中位置預(yù)警的方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及地理信息系統(tǒng)(GIS)和公務(wù)車(chē)輛監(jiān)管領(lǐng)域,尤其涉及一種公務(wù)車(chē)輛監(jiān)管中位置預(yù)警的方法,具體的說(shuō)是一種利用緩沖區(qū)分析生成算法和單調(diào)鏈報(bào)警算法來(lái)進(jìn)行空間判定的公務(wù)車(chē)輛位置預(yù)警的方法。
      背景技術(shù)
      目前,我國(guó)正在建設(shè)節(jié)約型和諧社會(huì),也要求政府職能部門(mén)必須加強(qiáng)自身的管理,而公務(wù)車(chē)輛監(jiān)管就是其中非常重要的一部分。公務(wù)車(chē)輛監(jiān)管中涉及到位置預(yù)警的關(guān)鍵技術(shù)難點(diǎn)是:如何準(zhǔn)確判定公務(wù)車(chē)輛是否到達(dá)敏感地點(diǎn)、偏離規(guī)定線路以及出入電子圍欄,并能及時(shí)產(chǎn)生預(yù)警信息。當(dāng)前,緩沖區(qū)作為空間分析的重要方法,在許多領(lǐng)域均有應(yīng)用,但在準(zhǔn)確性上還存在一些不足。其中,緩沖區(qū)分析的傳統(tǒng)算法主要有兩種,一是角平分線算法,二是凸角圓弧算法,它們?cè)谏删彌_時(shí)都有欠缺,存在邊界失真的現(xiàn)象,特別在處理緩沖區(qū)邊界的自相交問(wèn)題時(shí)準(zhǔn)確性不夠,不能滿足公務(wù)車(chē)輛監(jiān)管中的實(shí)際需求。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于提供一種公務(wù)車(chē)輛監(jiān)管中位置預(yù)警的方法,采用簡(jiǎn)化的數(shù)據(jù)結(jié)構(gòu),不僅節(jié)省了大量的存儲(chǔ)空間,而且大大節(jié)省了運(yùn)算時(shí)間,保證了公車(chē)監(jiān)管中位置預(yù)警的實(shí)時(shí)性要求。一種公務(wù)車(chē)輛監(jiān)管中位置預(yù)警的方法,包括以下步驟:步驟1、使用緩沖區(qū)分析生成算法,根據(jù)預(yù)警類(lèi)別和緩沖半徑,生成敏感地點(diǎn)緩沖區(qū)、規(guī)定線路緩沖區(qū)、電子圍欄緩沖區(qū);步驟2、使用單調(diào)鏈報(bào)警算法,用于判別通過(guò)GNSS獲取的公務(wù)車(chē)輛當(dāng)前位置點(diǎn)與已生成的敏感地點(diǎn)緩沖區(qū)、規(guī)定線路緩沖區(qū)、電子圍欄緩沖區(qū)的空間關(guān)系,并根據(jù)預(yù)設(shè)的報(bào)警規(guī)則進(jìn)行報(bào)警。所述的步驟I中生成敏感地點(diǎn)緩沖區(qū)、規(guī)定線路緩沖區(qū)和電子圍欄緩沖區(qū)的做法是:(I)設(shè)敏感地點(diǎn)的坐標(biāo)點(diǎn)為A,在A點(diǎn)所在平面上任取一點(diǎn)B,連接A、B兩點(diǎn)作為緩沖半徑r,設(shè)緩沖半徑 繞A點(diǎn)沿著順時(shí)針?lè)较虻絏軸形成的角度為a,圓心A(x,y),緩沖半徑r繞A點(diǎn)逆時(shí)針旋轉(zhuǎn)角度P ,生成點(diǎn)坐標(biāo)A’(x’,y’),其中X,sx+TfsinU+3 )y’ =y+T fcos ( a + )¢=0, T 1; 2 T 1;.,(n-1) T1, T j = 2 /n,n為由正多邊形的邊數(shù),即可得到敏感地點(diǎn)緩沖區(qū)邊界的內(nèi)接正n邊形的各頂點(diǎn)坐標(biāo);(2)設(shè)規(guī)定線路的坐標(biāo)集構(gòu)成目標(biāo)線,首先生成目標(biāo)線上第一個(gè)坐標(biāo)點(diǎn)的右側(cè)區(qū)域,連接第一個(gè)點(diǎn)與下一個(gè)點(diǎn)構(gòu)成直線,根據(jù)點(diǎn)緩沖區(qū)分析生成算法,角a從開(kāi)始,根據(jù)T2= 31/6逆時(shí)針遞增取點(diǎn)(31,JI +T2, JI +2 T2---),直到a =3 31/2,共生成4個(gè)坐標(biāo)點(diǎn);其次生成目標(biāo)線上第k個(gè)拐點(diǎn)B的區(qū)域,判斷拐點(diǎn)B的凹凸性;根據(jù)目標(biāo)線方向取第k-1個(gè)點(diǎn)A,k+1個(gè)點(diǎn)C,分別連接A、B和B、C生成直線AB、BC ;設(shè)AB、BC的叉積為L(zhǎng),由矢量代數(shù)的右手法則,計(jì)算L:若L>0, A、B、C為逆時(shí)針?lè)较?,拐點(diǎn)B為凸點(diǎn);若L〈0,A、B、C順時(shí)針?lè)较?,拐點(diǎn)B為凹點(diǎn);gL=0,A、B、C三點(diǎn)共線;設(shè)此與X正半軸的夾角為a,AB與BC的夾角為P,若拐點(diǎn)為凸點(diǎn),則把步驟(I)中的角a改為從0=a+3Ji/2-0開(kāi)始,其他的如步驟(I)算法生成頂點(diǎn)坐標(biāo);若拐點(diǎn)為凹點(diǎn),則對(duì)應(yīng)的緩沖點(diǎn)為AB、BC的平行上移的形成的凸交點(diǎn);然后生成目標(biāo)線上末端點(diǎn)的右側(cè)區(qū)域,連接末端點(diǎn)和目標(biāo)線上的倒數(shù)第二點(diǎn)構(gòu)成直線AB,其緩沖點(diǎn)的生成方法如步驟(I);若是左側(cè)區(qū)域生成,參照如上關(guān)于右側(cè)區(qū)域分析生成算法的步驟,不同之處在于應(yīng)從目標(biāo)線上的最后一點(diǎn)開(kāi)始; (3)電子圍欄的坐標(biāo)集構(gòu)成目標(biāo)面,當(dāng)目標(biāo)對(duì)象是面時(shí),則把面的外圍多邊形作為一條閉合的線,再用步驟(2)中的規(guī)定線路緩沖區(qū)的生成方法實(shí)現(xiàn)。所述的解決規(guī)定線路緩沖區(qū)或電子圍欄緩沖區(qū)邊界線的失真現(xiàn)象的做法是:(41)將上述生成的規(guī)定線路緩沖區(qū)或電子圍欄緩沖區(qū)稱(chēng)為初始化緩沖區(qū),如果軸線上當(dāng)前節(jié)點(diǎn),即轉(zhuǎn)折點(diǎn)處該側(cè)的角為凹角,計(jì)算其夾角a,該節(jié)點(diǎn)相鄰兩條邊為rl、r2,上一節(jié)點(diǎn)與當(dāng)前節(jié)點(diǎn)之間的距離為rl邊的距離,設(shè)為|rl |,當(dāng)前節(jié)點(diǎn)與下一節(jié)點(diǎn)之間的距離為r2邊的距離,設(shè)為|r2|,rl U r2分別與夾角a的一半的正切值的乘積為|rl |tana /2、r2 | tan a /2 ;當(dāng) rl tan a /2<r<=|r2 | tan a /2,視為無(wú)失真,但出現(xiàn)了凹陷現(xiàn)象,故需截去處于平行線下的緩沖點(diǎn)及其相關(guān)凹陷線段,平行連接平行線被截去的線段,處理失真步驟結(jié)束;當(dāng)r> |rl I tan a /2,產(chǎn)生失真現(xiàn)象,進(jìn)入步驟(42);(42)、根據(jù)當(dāng)前坐標(biāo)點(diǎn)及其前后坐標(biāo)點(diǎn)的凹凸性創(chuàng)建鏈表,點(diǎn)k-1為點(diǎn)k的前一個(gè)坐標(biāo)點(diǎn),若點(diǎn)k-1為凸角,取點(diǎn)k-1的對(duì)應(yīng)點(diǎn)集中的第一個(gè)點(diǎn),所述的點(diǎn)k-1的對(duì)應(yīng)點(diǎn)集是以點(diǎn)k-1為圓心,以緩沖半徑r為半徑,以點(diǎn)k到點(diǎn)k-1節(jié)點(diǎn)方向?yàn)?度方向,逆時(shí)針旋轉(zhuǎn)90°所形成的1/4圓弧上的所有點(diǎn);若點(diǎn)k-1為凹角,取點(diǎn)k-2的對(duì)應(yīng)點(diǎn)集中的最后一個(gè)坐標(biāo)點(diǎn);該點(diǎn)k+1為點(diǎn)k的后一個(gè)坐標(biāo)點(diǎn),若點(diǎn)k+1為凸角,取點(diǎn)k+1的對(duì)應(yīng)點(diǎn)集中的第一個(gè)坐標(biāo)點(diǎn);若點(diǎn)k+1為凹角,取點(diǎn)k+2的對(duì)應(yīng)點(diǎn)集中的最后一個(gè)坐標(biāo)點(diǎn),把這些坐標(biāo)點(diǎn)按目標(biāo)線的線路方向順序插入鏈表中,形成修改過(guò)的坐標(biāo)點(diǎn)序列表;(43)、刪除初始化緩沖區(qū)邊界上的失真坐標(biāo)點(diǎn),該初始化緩沖區(qū)為直接生成、未進(jìn)行特殊處理的緩沖區(qū)結(jié)果,此時(shí)對(duì)應(yīng)的也是失真的坐標(biāo)點(diǎn)序列表,然后使用步驟(42)中修改過(guò)的坐標(biāo)點(diǎn)序列表替換失真的坐標(biāo)點(diǎn)序列表。所述的處理規(guī)定線路緩沖區(qū)或電子圍欄緩沖區(qū)邊界線自相交的做法是:(51)逐步判斷規(guī)定線路緩沖區(qū)或電子圍欄緩沖區(qū)邊界上各個(gè)線段是否相交,首末線段、相鄰線段除外;(52)如果相交,則記錄所有的自相交點(diǎn);(53)定義兩個(gè)動(dòng)態(tài)數(shù)組,一個(gè)用于存儲(chǔ)緩沖區(qū)邊界多邊形有序結(jié)點(diǎn)坐標(biāo)的動(dòng)態(tài)數(shù)組Arrayl和另一個(gè)用于存儲(chǔ)所有自相交多邊形有序結(jié)點(diǎn)坐標(biāo)的動(dòng)態(tài)數(shù)組Array2 ;(54)將以上產(chǎn)生的緩沖區(qū)邊界多邊形的各結(jié)點(diǎn)按生成順序存入數(shù)組Arrayl中;
      (55)應(yīng)用遞歸方法求取所有自相交多邊形并存入數(shù)組Array2中;(56)再采用面積的定積分的近似算法,判斷數(shù)組Array2中自相交多邊形的方向,如果是順時(shí)針?lè)较颍瑒t是緩沖區(qū)邊界多邊形的內(nèi)環(huán);如果是逆時(shí)針?lè)较?,則面積絕對(duì)值最大的多邊形是緩沖區(qū)邊界多邊形的外環(huán),而其它逆時(shí)針?lè)较虻亩噙呅尾皇蔷彌_區(qū)的組成部分;(57)連接所有求得的緩沖區(qū)交點(diǎn),即得到邊界結(jié)果。所述的步驟2的具體做法是:(I)創(chuàng)建鏈表采用單鏈表來(lái)表示目標(biāo)多邊形和參照多邊形,單鏈表的每一個(gè)結(jié)點(diǎn)按頂點(diǎn)輸入的順序存儲(chǔ)多邊形的一個(gè)頂點(diǎn),最后一個(gè)結(jié)點(diǎn)的指針指向第一個(gè)結(jié)點(diǎn),每個(gè)鏈表由一個(gè)頭指針指向第一個(gè)結(jié)點(diǎn),采用上述數(shù)據(jù)結(jié)構(gòu)創(chuàng)建目標(biāo)多邊形和參照多邊形鏈表,判斷并計(jì)算第一個(gè)交點(diǎn);(2)計(jì)算交點(diǎn)運(yùn)用解析幾何計(jì)算目標(biāo)多邊形中的每條邊所在直線和參照多邊形中的任意邊所在直線,按直線一般方程求兩條線段的交點(diǎn),并判斷交點(diǎn)坐標(biāo)是否為實(shí)際交點(diǎn);若為實(shí)際交點(diǎn),則把該交點(diǎn)以其在目標(biāo)多邊形上的先后順序,按多邊形路線方向插入到兩個(gè)多邊形的鏈表中;若出現(xiàn)經(jīng)過(guò)交點(diǎn)的線段經(jīng)過(guò)多邊形頂點(diǎn)的情況,在求出交點(diǎn)后,不再將相同交點(diǎn)插入到鏈表中;若出現(xiàn)經(jīng)過(guò)交點(diǎn)的線段與參照多邊形的某一邊重疊的情況,忽略該重疊的參照邊,只對(duì)重合邊以外的多邊形的邊求交;(3)遍歷鏈表遍歷步驟(I)創(chuàng)建的目標(biāo)多邊形和參照多邊形鏈表,如果存在交點(diǎn),則可以判斷位置點(diǎn)在緩沖區(qū)內(nèi);(4)根據(jù)以下預(yù)設(shè)的報(bào)警規(guī)則,來(lái)產(chǎn)生預(yù)警信息:(41)、到達(dá)敏感地點(diǎn)的報(bào)警規(guī)則:位置點(diǎn)在緩沖區(qū)內(nèi);(42)、偏離規(guī)定線路的報(bào)警規(guī)則:位置點(diǎn)在緩沖區(qū)外;(43)、出入電子圍欄的報(bào)警規(guī)則:位置點(diǎn)由緩沖區(qū)內(nèi)變?yōu)榫彌_區(qū)外、或由緩沖區(qū)外變?yōu)榫彌_區(qū)內(nèi)。本發(fā)明公開(kāi)了一種公務(wù)車(chē)輛監(jiān)管中位置預(yù)警的方法,提出了一種新的緩沖區(qū)分析生成算法,解決了傳統(tǒng)算法中存在的缺陷,簡(jiǎn)化了公務(wù)車(chē)輛監(jiān)管中敏感地點(diǎn)緩沖區(qū)、規(guī)定線路緩沖區(qū)、電子圍欄緩沖區(qū)的生成過(guò)程,在一定程度上解決了邊界失真現(xiàn)象,而且能更準(zhǔn)確處理緩沖區(qū)自相交問(wèn)題;基于已生成的緩沖區(qū),提出了一種單調(diào)鏈報(bào)警算法,用于判別通過(guò)GNSS獲取的公務(wù)車(chē)輛當(dāng)前位置點(diǎn)與已生成的敏感地點(diǎn)緩沖區(qū)、規(guī)定線路緩沖區(qū)、電子圍欄緩沖區(qū)的空間關(guān)系,以達(dá)到準(zhǔn)確預(yù)警的目的。


      圖1為本發(fā)明中敏感地點(diǎn)緩沖區(qū)生成過(guò)程示意圖;圖2為本發(fā)明中規(guī)定線路緩沖區(qū)生成過(guò)程示意圖;圖3為本發(fā)明中規(guī)定線路緩沖區(qū)的邊界自相交解決效果示意圖;圖4-1為本發(fā)明單調(diào)鏈報(bào)警算法涉及的交點(diǎn)情況之一;
      圖4-2為本發(fā)明單調(diào)鏈報(bào)警算法涉及的交點(diǎn)情況之二 ;圖4-3為本發(fā)明單調(diào)鏈報(bào)警算法涉及的交點(diǎn)情況之三。以下結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳述。
      具體實(shí)施例方式一種公務(wù)車(chē)輛監(jiān)管中位置預(yù)警的方法,包括以下步驟:步驟1、使用緩沖區(qū)分析生成算法,根據(jù)預(yù)警類(lèi)別和緩沖半徑,生成敏感地點(diǎn)緩沖區(qū)、規(guī)定線路緩沖區(qū)、電子圍欄緩沖區(qū):(1)敏感地 點(diǎn)緩沖區(qū)的生成:如圖1所示,敏感地點(diǎn)的坐標(biāo)點(diǎn)為A,算法的結(jié)果是要生成坐標(biāo)點(diǎn)A的緩沖區(qū)。在A點(diǎn)所在平面上任取一點(diǎn)B,連接A、B兩點(diǎn)作為緩沖半徑r,設(shè)緩沖半徑r繞A點(diǎn)沿著順時(shí)針?lè)较虻絏軸形成的角度為a,圓心A(x,y),緩沖半徑!■繞A點(diǎn)逆時(shí)針旋轉(zhuǎn)角度@,生成點(diǎn)坐標(biāo)A’(x’,y’),其中x,sx+TfsinU+3 )y,=y+T fcos ( a + 運(yùn))¢=0, T 1; 2 T 1;.,(n-1) T1, T j = 2 /n,n為由正多邊形的邊數(shù),即可得到敏感地點(diǎn)緩沖區(qū)邊界的內(nèi)接正n邊形的各頂點(diǎn)坐標(biāo);(2)規(guī)定線路緩沖區(qū)的生成:如圖2所示,規(guī)定線路的坐標(biāo)集構(gòu)成目標(biāo)線,算法的結(jié)果是要生成目標(biāo)線的緩沖區(qū)。首先生成目標(biāo)線上第一個(gè)坐標(biāo)點(diǎn)的右側(cè)區(qū)域,連接第一個(gè)點(diǎn)與下一個(gè)點(diǎn)構(gòu)成直線,根據(jù)點(diǎn)緩沖區(qū)分析生成算法,角a從n開(kāi)始,根據(jù)T2=Ji/6逆時(shí)針遞增取點(diǎn)(31,JI +T2, 31 +2 T2...),直至Ij a =3 31 /2,共生成 4 個(gè)坐標(biāo)點(diǎn);其次生成目標(biāo)線上第k個(gè)拐點(diǎn)B的區(qū)域,判斷拐點(diǎn)B的凹凸性。根據(jù)目標(biāo)線方向取第k-1個(gè)點(diǎn)A,k+1個(gè)點(diǎn)C,分別連接A、B和B、C生成直線AB、BC ;設(shè)AB、BC的叉積為L(zhǎng),由矢量代數(shù)的右手法則,計(jì)算L:若L>0,A、B、C為逆時(shí)針?lè)较?,拐點(diǎn)B為凸點(diǎn);若L〈0,A、B、C順時(shí)針?lè)较?,拐點(diǎn)B為凹點(diǎn);若L=0,A、B、C三點(diǎn)共線。設(shè)BC與X正半軸的夾角為a,AB與BC的夾角為P,若拐點(diǎn)為凸點(diǎn),則把步驟(I沖的角a改為從0=a+3Ji/2-0開(kāi)始,其他的如步驟(I)算法生成頂點(diǎn)坐標(biāo);若拐點(diǎn)為凹點(diǎn),則對(duì)應(yīng)的緩沖點(diǎn)為AB、BC的平行上移的形成的凸交點(diǎn);然后生成目標(biāo)線上末端點(diǎn)的右側(cè)區(qū)域,連接末端點(diǎn)和目標(biāo)線上的倒數(shù)第二點(diǎn)構(gòu)成直線AB,其緩沖點(diǎn)的生成方法如步驟(I);若是左側(cè)區(qū)域生成,參照如上關(guān)于右側(cè)區(qū)域分析生成算法的步驟,不同之處在于應(yīng)從目標(biāo)線上的最后一點(diǎn)開(kāi)始;(3)電子圍欄緩沖區(qū)的生成:電子圍欄的坐標(biāo)集構(gòu)成目標(biāo)面,算法的結(jié)果是要生成目標(biāo)面的緩沖區(qū)。當(dāng)目標(biāo)對(duì)象是面時(shí),則把面的外圍,也就是外圍多邊形作為一條閉合的線,再用步驟(2)中的規(guī)定線路緩沖區(qū)的生成方法實(shí)現(xiàn);(4)解決規(guī)定線路緩沖區(qū)或電子圍欄緩沖區(qū)邊界線的失真現(xiàn)象。我們將步驟(2)和(3)中直接生成的緩沖區(qū)稱(chēng)為初始化緩沖區(qū)。由于失真現(xiàn)象只會(huì)在目標(biāo)線上的凹側(cè)產(chǎn)生,故通過(guò)如下步驟處理相應(yīng)的失真現(xiàn)象:(41)、如果軸線上當(dāng)前節(jié)點(diǎn)(轉(zhuǎn)折點(diǎn))處該側(cè)的角為凹角,計(jì)算其夾角a,該節(jié)點(diǎn)相鄰兩條邊為rl、r2,上一節(jié)點(diǎn)與當(dāng)前節(jié)點(diǎn)之間的距離,為rl邊的距離,設(shè)為|rl |,當(dāng)前節(jié)點(diǎn)與下一節(jié)點(diǎn)之間的距離,為r2邊的距離,設(shè)為r2|, rl U r2分別與夾角a的一半的正切值的乘積為 rl I tan a /2、|r2 | tan a /2 ;當(dāng) rl tan a /2<r<=|r2 | tan a /2,無(wú)失真,但出現(xiàn)了凹陷現(xiàn)象,故需截去處于平行線下的緩沖點(diǎn)及其相關(guān)凹陷線段,平行連接平行線被截去的線段,處理失真步驟結(jié)束;當(dāng)r>|rl |tana /2,產(chǎn)生失真現(xiàn)象,進(jìn)入步驟(42);(42)、根據(jù)當(dāng)前坐標(biāo)點(diǎn)及其前后坐標(biāo)點(diǎn)的凹凸性創(chuàng)建鏈表。點(diǎn)k-1為點(diǎn)k的前一個(gè)坐標(biāo)點(diǎn),如點(diǎn)k-1為凸角,取點(diǎn)k-1的對(duì)應(yīng)點(diǎn)集中的第一個(gè)點(diǎn),所述點(diǎn)k-1的的對(duì)應(yīng)點(diǎn)集指的是以點(diǎn)k-1為圓心,以緩沖半徑為半徑,以點(diǎn)k到點(diǎn)k-1方向?yàn)?度方向,逆時(shí)針旋轉(zhuǎn)90°所形成的1/4圓弧上的所有點(diǎn);若點(diǎn)k-1為凹角,取點(diǎn)k-2的對(duì)應(yīng)點(diǎn)集中的最后一個(gè)坐標(biāo)點(diǎn),該點(diǎn)k+1為點(diǎn)k的后一個(gè)坐標(biāo)點(diǎn),若點(diǎn)k+1為凸角,取點(diǎn)k+1的對(duì)應(yīng)點(diǎn)集中的第一個(gè)坐標(biāo)點(diǎn);若點(diǎn)k+1為凹角,取點(diǎn)k+2的對(duì)應(yīng)點(diǎn)集中的最后一個(gè)坐標(biāo)點(diǎn),把這些坐標(biāo)點(diǎn)按目標(biāo)線的線路方向順序插入鏈表中,形成修改過(guò)的坐標(biāo)點(diǎn)序列表;(43)、刪除初始化緩沖區(qū)(初始化緩沖區(qū)為直接生成、未進(jìn)行特殊處理的緩沖區(qū)結(jié)果,此時(shí)對(duì)應(yīng)的也是失真的坐標(biāo)點(diǎn)序列表)邊界上的失真坐標(biāo)點(diǎn),然后使用修改過(guò)的坐標(biāo)點(diǎn)序列表替換失真的坐標(biāo)點(diǎn)序列表;(5)處理規(guī)定線路緩沖區(qū)或電子圍欄緩沖區(qū)邊界線的自相交問(wèn)題:(51)逐步判斷規(guī)定線路緩沖區(qū)或電子圍欄緩沖區(qū)邊界上各個(gè)線段是否相交,首末線段、相鄰線段除外;(52)如果相交,則是有自相交問(wèn)題,記錄所有的自相交點(diǎn);(53)定義兩個(gè)動(dòng)態(tài)數(shù)組,一個(gè)用于存儲(chǔ)緩沖區(qū)邊界多邊形有序結(jié)點(diǎn)坐標(biāo)的動(dòng)態(tài)數(shù)組Arrayl和另一個(gè)用于存儲(chǔ)所有自相交多邊形有序結(jié)點(diǎn)坐標(biāo)的動(dòng)態(tài)數(shù)組Array2 ;(54)將以上產(chǎn)生的緩沖區(qū)邊界多邊形(閉合環(huán))的各結(jié)點(diǎn)按生成順序存入數(shù)組Arrayl 中;(55)應(yīng)用遞歸方法求取所有自相交多邊形并存入數(shù)組Array2中;(56)再采用面積的定積分的近似算法,判斷數(shù)組Array2中自相交多邊形的方向,如果是順時(shí)針?lè)较颍瑒t是緩沖區(qū)邊界多邊形的內(nèi)環(huán);如果是逆時(shí)針?lè)较?,則面積絕對(duì)值最大的多邊形是緩沖區(qū)邊界多邊形的外環(huán),而其它逆時(shí)針?lè)较虻亩噙呅尾皇蔷彌_區(qū)的組成部分;(57)連接所有求得的緩沖區(qū)交點(diǎn),即得到邊界結(jié)果;如圖3所示,是規(guī)定線路緩沖區(qū)的邊界自相交解決結(jié)果。步驟2、使用單調(diào)鏈報(bào)警算法,用于判別通過(guò)GNSS (全球?qū)Ш叫l(wèi)星系統(tǒng),包括GPS、北斗等)獲取的公務(wù)車(chē)輛當(dāng)前位置點(diǎn)與已生成的敏感地點(diǎn)緩沖區(qū)、規(guī)定線路緩沖區(qū)、電子圍欄緩沖區(qū)的空間關(guān)系,根據(jù)預(yù)設(shè)的報(bào)警規(guī)則進(jìn)行報(bào)警:單調(diào)鏈報(bào)警算法的基本原理是判斷一個(gè)多邊形是否與另一個(gè)多邊形相交。一方面,該算法把敏感地點(diǎn)緩沖區(qū)、規(guī)定線路緩沖區(qū)、電子圍欄緩沖區(qū)都作為一個(gè)參照多邊形進(jìn)行判斷,當(dāng)參照多邊形的頂點(diǎn)數(shù)為0,則表示為敏感地點(diǎn)緩沖區(qū),當(dāng)參照多邊形的頂點(diǎn)數(shù)為2,則表示為規(guī)定線路緩沖區(qū),當(dāng)參照多邊形的頂點(diǎn)數(shù)大于或等于3,則表示為電子圍欄緩沖區(qū);另一方面,將公務(wù)車(chē)輛當(dāng)前位置點(diǎn)也作為一個(gè)頂點(diǎn)數(shù)為O的目標(biāo)多邊形,并判斷表示位置點(diǎn)的目標(biāo)多邊形是否與前述表示緩沖區(qū)的參照多邊形相交。單調(diào)鏈報(bào)警算法的實(shí)現(xiàn):創(chuàng)建目標(biāo)多邊形和參照多邊形鏈表、計(jì)算交點(diǎn)、遍歷鏈表、產(chǎn)生預(yù)警信息,具體包括如下步驟:(I)創(chuàng)建鏈表算法采用單線性鏈表來(lái)表示目標(biāo)多邊形和參照多邊形,單鏈表的每一個(gè)結(jié)點(diǎn)按序(頂點(diǎn)輸入的順序)存儲(chǔ)著多邊形的一個(gè)頂點(diǎn)。最后一個(gè)結(jié)點(diǎn)的指針指向第一個(gè)結(jié)點(diǎn)(循環(huán)單鏈表)。每個(gè)鏈表由一個(gè)頭指針指向第一個(gè)結(jié)點(diǎn)。采用上述數(shù)據(jù)結(jié)構(gòu)創(chuàng)建目標(biāo)多邊形和參照多邊形鏈表,判斷并計(jì)算第一個(gè)交點(diǎn);(2)計(jì)算交點(diǎn)本發(fā)明的單調(diào)鏈報(bào)警算法,共有3種交點(diǎn)情況。正常情況下經(jīng)過(guò)點(diǎn)A的線段如圖4-1所示。另有2種非正常情況:經(jīng)過(guò)多邊形頂點(diǎn)的情況如圖4-2所示;與某一條邊共線情況,共線就有無(wú)窮多的交點(diǎn),導(dǎo)致判斷規(guī)則失效如圖4-3所示。運(yùn)用解析幾何計(jì)算目標(biāo)多邊形中的每條邊所在直線和參照多邊形中的任意邊所在直線,按直線一般方程求兩條線段的交點(diǎn),并判斷交點(diǎn)坐標(biāo)是否為實(shí)際交點(diǎn);若為實(shí)際交點(diǎn)。則把該交點(diǎn)以其在目標(biāo)多邊形上的先后順序,按多邊形路線方向插入到兩個(gè)多邊形的鏈表中;針對(duì)圖4-2所示,經(jīng)過(guò)交點(diǎn)的線段經(jīng)過(guò)多邊形頂點(diǎn)的情況,在求出交點(diǎn)后,不再將相同交點(diǎn)插入到鏈表中;針對(duì)圖4-3經(jīng)過(guò)交點(diǎn)的線段與參照多邊形的某一邊重疊的情況,忽略該重疊的參照邊,只對(duì)重合邊以外的多邊形的邊求交;(3)遍歷鏈表遍歷步驟(I)創(chuàng)建的目標(biāo)多邊形和參照多邊形鏈表,如果存在交點(diǎn),則可以判斷位置點(diǎn)在緩沖區(qū)內(nèi)。(4)根據(jù)以下預(yù)設(shè)的報(bào)警規(guī)則,來(lái)產(chǎn)生預(yù)警信息:(41)、到達(dá)敏感地點(diǎn)的報(bào)警規(guī)則:位置點(diǎn)在緩沖區(qū)內(nèi);(42)、偏離規(guī)定線路的報(bào)警規(guī)則:位置點(diǎn)在緩沖區(qū)外;(43)、出入電子圍欄的報(bào)警規(guī)則:位置點(diǎn)由緩沖區(qū)內(nèi)變?yōu)榫彌_區(qū)外(出)、或由緩沖區(qū)外變?yōu)榫彌_區(qū)內(nèi)(入)。公務(wù)車(chē)輛監(jiān)管的準(zhǔn)確預(yù)警,首先要求能夠準(zhǔn)確生成敏感地點(diǎn)緩沖區(qū)、規(guī)定線路緩沖區(qū)和電子圍欄緩沖區(qū);有了緩沖區(qū),才能快速準(zhǔn)確的判斷公務(wù)車(chē)輛的位置點(diǎn)與三者緩沖區(qū)的空間關(guān)系,進(jìn)一步實(shí)現(xiàn)位置預(yù)警。相比于傳統(tǒng)的緩沖區(qū)生成方法,本發(fā)明針對(duì)應(yīng)用環(huán)境經(jīng)過(guò)優(yōu)化的緩沖區(qū)算法有效地改進(jìn)了數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì),簡(jiǎn)化了緩沖區(qū)邊界的生成過(guò)程,提高了邊界自相交的精度,整體上大大提高了預(yù)警區(qū)域的生成速度和準(zhǔn)確性,能有效地滿足公車(chē)監(jiān)管中預(yù)警快速、準(zhǔn)確的要求。本發(fā)明單調(diào)鏈報(bào)警算法的主要思想是采用循環(huán)單線性鏈表存儲(chǔ)多邊形的輸入和輸出,每個(gè)節(jié)點(diǎn)按序存儲(chǔ)多邊形的一個(gè)坐標(biāo)頂點(diǎn)。該單調(diào)鏈報(bào)警算法采用了簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu),不僅節(jié)省了大量的存儲(chǔ)空間,而且節(jié)省了大量的運(yùn)算時(shí)間。本發(fā)明只需得到敏感地點(diǎn)、規(guī)定線路、電子圍欄這三者對(duì)應(yīng)的坐標(biāo)集和緩沖半徑,即可構(gòu)造緩沖區(qū)域,進(jìn)而判斷公務(wù)車(chē)輛位置與這三者的空間關(guān)系,最終產(chǎn)生預(yù)警,具有極強(qiáng)的操作性。以上所述,僅是本發(fā)明較佳實(shí)施例而已,并非對(duì)本發(fā)明的技術(shù)范圍作任何限制,故凡是依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所作的任何細(xì)微修改、等同變化與修飾,均仍屬于本發(fā)明技術(shù)方案的范圍內(nèi)。
      權(quán)利要求
      1.一種公務(wù)車(chē)輛監(jiān)管中位置預(yù)警的方法,其特征在于包括以下步驟: 步驟1、使用緩沖區(qū)分析生成算法,根據(jù)預(yù)警類(lèi)別和緩沖半徑,生成敏感地點(diǎn)緩沖區(qū)、規(guī)定線路緩沖區(qū)、電子圍欄緩沖區(qū); 步驟2、使用單調(diào)鏈報(bào)警算法,用于判別通過(guò)GNSS獲取的公務(wù)車(chē)輛當(dāng)前位置點(diǎn)與已生成的敏感地點(diǎn)緩沖區(qū)、規(guī)定線路緩沖區(qū)、電子圍欄緩沖區(qū)的空間關(guān)系,并根據(jù)預(yù)設(shè)的報(bào)警規(guī)則進(jìn)行報(bào)警。
      2.根據(jù)權(quán)利要求1所述的一種公務(wù)車(chē)輛監(jiān)管中位置預(yù)警的方法,其特征在于所述的步驟I中生成敏感地點(diǎn)緩沖區(qū)、規(guī)定線路緩沖區(qū)和電子圍欄緩沖區(qū)的做法是: (1)設(shè)敏感地點(diǎn)的坐標(biāo)點(diǎn)為A,在A點(diǎn)所在平面上任取一點(diǎn)B,連接A、B兩點(diǎn)作為緩沖半徑r,設(shè)緩沖半徑r繞A點(diǎn)沿著順時(shí)針?lè)较虻絏軸形成的角度為a,圓心A(x,y),緩沖半徑r繞A點(diǎn)逆時(shí)針旋轉(zhuǎn)角度P ,生成點(diǎn)坐標(biāo)A’(x’,y’),其中 x,=x+ T1*sin ( α + β) Y’ =y+ T1*cos ( α +β) β=0, T 1; 2 T 1;….,(n-1) T1, T 1 = 2 π/n,n為由正多邊形的邊數(shù),即可得到敏感地點(diǎn)緩沖區(qū)邊界的內(nèi)接正n邊形的各頂點(diǎn)坐標(biāo); (2)設(shè)規(guī)定線路的坐標(biāo)集構(gòu)成目標(biāo)線,首先生成目標(biāo)線上第一個(gè)坐標(biāo)點(diǎn)的右側(cè)區(qū)域,連接第一個(gè)點(diǎn)與下一個(gè)點(diǎn)構(gòu)成直線,根據(jù)點(diǎn)緩沖區(qū)分析生成算法,角a從開(kāi)始,根據(jù)T2= π/6逆時(shí)針遞增取點(diǎn)(π,π+T2, π +2 T2---),直到a =3 π/2,共生成4個(gè)坐標(biāo)點(diǎn); 其次生成目標(biāo)線上第k個(gè)拐點(diǎn)B的區(qū)域,判斷拐點(diǎn)B的凹凸性;根據(jù)目標(biāo)線方向取第k-1個(gè)點(diǎn)A,k+1個(gè)點(diǎn)C,分別連接A、B和B、C生成直線AB、BC ;設(shè)AB、BC的叉積為L(zhǎng),由矢量代數(shù)的右手法則,計(jì)算L:若L>0, A、B、C為逆時(shí)針?lè)较?,拐點(diǎn)B為凸點(diǎn);若L<0, A、B、C順時(shí)針?lè)较?,拐點(diǎn)B為凹點(diǎn);gL=0,A、B、C三點(diǎn)共線;設(shè)此與X正半軸的夾角為a,AB與BC的夾角為P,若拐點(diǎn)為凸點(diǎn),則把步驟(1)中的角a改為從0=α+3π/2-β開(kāi)始,其他的如步驟(1)算法生成頂點(diǎn)坐標(biāo);若拐點(diǎn)為凹點(diǎn),則對(duì)應(yīng)的緩沖點(diǎn)為AB、BC的平行上移的形成的凸交點(diǎn); 然后生成目標(biāo)線上末端點(diǎn)的右側(cè)區(qū)域,連接末端點(diǎn)和目標(biāo)線上的倒數(shù)第二點(diǎn)構(gòu)成直線AB,其緩沖點(diǎn)的生成方法如步驟(1); 若是左側(cè)區(qū)域生成,參照如上關(guān)于右側(cè)區(qū)域分析生成算法的步驟,不同之處在于應(yīng)從目標(biāo)線上的最后一點(diǎn)開(kāi)始; (3)電子圍欄的坐標(biāo)集構(gòu)成目標(biāo)面,當(dāng)目標(biāo)對(duì)象是面時(shí),則把面的外圍多邊形作為一條閉合的線,再用步驟(2)中的規(guī)定線路緩沖區(qū)的生成方法實(shí)現(xiàn)。
      3.根據(jù)權(quán)利要求2所述的一種公務(wù)車(chē)輛監(jiān)管中位置預(yù)警的方法,其特征在于解決規(guī)定線路緩沖區(qū)或電子圍欄緩沖區(qū)邊界線的失真現(xiàn)象的做法是: (41)將上述生成的規(guī)定線路緩沖區(qū)或電子圍欄緩沖區(qū)稱(chēng)為初始化緩沖區(qū),如果軸線上當(dāng)前節(jié)點(diǎn),即轉(zhuǎn)折點(diǎn)處該側(cè)的角為凹角,計(jì)算其夾角α,該節(jié)點(diǎn)相鄰兩條邊為rl、r2,上一節(jié)點(diǎn)與當(dāng)前節(jié)點(diǎn)之間的距離為rl邊的距離,設(shè)為|rl |,當(dāng)前節(jié)點(diǎn)與下一節(jié)點(diǎn)之間的距離為r2邊的距離,設(shè)為|r2|,|rl 1、|r2|分別與夾角a的一半的正切值的乘積為|rl|tana/2、|r2 | tan a /2 ;當(dāng)|rl |tan a /2〈r〈=|r2 | tan a /2,視為無(wú)失真,但出現(xiàn)了凹陷現(xiàn)象,故需截去處于平行線下的緩沖點(diǎn)及其相關(guān)凹陷線段,平行連接平行線被截去的線段,處理失真步驟結(jié)束;當(dāng)r> |rl I tan a /2,產(chǎn)生失真現(xiàn)象,進(jìn)入步驟(42); (42)、根據(jù)當(dāng)前坐標(biāo)點(diǎn)及其前后坐標(biāo)點(diǎn)的凹凸性創(chuàng)建鏈表,點(diǎn)k-1為點(diǎn)k的前一個(gè)坐標(biāo)點(diǎn),若點(diǎn)k-1為凸角,取點(diǎn)k-1的對(duì)應(yīng)點(diǎn)集中的第一個(gè)點(diǎn),所述的點(diǎn)k-1的對(duì)應(yīng)點(diǎn)集是以點(diǎn)k-1為圓心,以緩沖半徑r為半徑,以點(diǎn)k到點(diǎn)k-1方向?yàn)镺度方向,逆時(shí)針旋轉(zhuǎn)90°所形成的1/4圓弧上的所有點(diǎn);若點(diǎn)k-1為凹角,取點(diǎn)k-2的對(duì)應(yīng)點(diǎn)集中的最后一個(gè)坐標(biāo)點(diǎn);該點(diǎn)k+1為點(diǎn)k的后一個(gè)坐標(biāo)點(diǎn),若點(diǎn)k+1為凸角,取點(diǎn)k+1的對(duì)應(yīng)點(diǎn)集中的第一個(gè)坐標(biāo)點(diǎn);若點(diǎn)k+1為凹角,取點(diǎn)k+2的對(duì)應(yīng)點(diǎn)集中的最后一個(gè)坐標(biāo)點(diǎn),把這些坐標(biāo)點(diǎn)按目標(biāo)線的線路方向順序插入鏈表中,形成修改過(guò)的坐標(biāo)點(diǎn)序列表; (43)、刪除初始化緩沖區(qū)邊界上的失真坐標(biāo)點(diǎn),該初始化緩沖區(qū)為直接生成、未進(jìn)行特殊處理的緩沖區(qū)結(jié)果,此時(shí)對(duì)應(yīng)的也是失真的坐標(biāo)點(diǎn)序列表,然后使用步驟(42)中修改過(guò)的坐標(biāo)點(diǎn)序列表替換失真的坐標(biāo)點(diǎn)序列表。
      4.根據(jù)權(quán)利要求2所述的一種公務(wù)車(chē)輛監(jiān)管中位置預(yù)警的方法,其特征在于處理規(guī)定線路緩沖區(qū)或電子圍欄緩沖區(qū)邊界線自相交的做法是: (51)逐步判斷規(guī)定線路緩沖區(qū)或電子圍欄緩沖區(qū)邊界上各個(gè)線段是否相交,首末線段、相鄰線段除外; (52)如果相交,則記錄所有的自相交點(diǎn); (53)定義兩個(gè)動(dòng)態(tài)數(shù)組,一個(gè)用于存儲(chǔ)緩沖區(qū)邊界多邊形有序結(jié)點(diǎn)坐標(biāo)的動(dòng)態(tài)數(shù)組Arrayl和另一個(gè)用于存儲(chǔ)所有自相交多邊形有序結(jié)點(diǎn)坐標(biāo)的動(dòng)態(tài)數(shù)組Array2 ; (54)將以上產(chǎn)生的緩沖區(qū)邊界多邊形的各結(jié)點(diǎn)按生成順序存入數(shù)組Arrayl中; (55)應(yīng)用遞歸方法求取所有自相交多邊形并存入數(shù)組Array2中; (56)再采用面積的定積分的近似算法,判斷數(shù)組Array2中自相交多邊形的方向,如果是順時(shí)針?lè)较?,則是緩沖區(qū)邊界多邊形的內(nèi)環(huán);如果是逆時(shí)針?lè)较?,則面積絕對(duì)值最大的多邊形是緩沖區(qū)邊界多邊形的外環(huán),而其它逆時(shí)針?lè)较虻亩噙呅尾皇蔷彌_區(qū)的組成部分; (57)連接所有求得的緩沖區(qū)交點(diǎn),即得到邊界結(jié)果。
      5.根據(jù)權(quán)利要求1所述的一種公務(wù)車(chē)輛監(jiān)管中位置預(yù)警的方法,其特征在于該步驟2的具體做法是: (1)創(chuàng)建鏈表 采用單鏈表來(lái)表示目標(biāo)多邊形和參照多邊形,單鏈表的每一個(gè)結(jié)點(diǎn)按頂點(diǎn)輸入的順序存儲(chǔ)多邊形的一個(gè)頂點(diǎn),最后一個(gè)結(jié)點(diǎn)的指針指向第一個(gè)結(jié)點(diǎn),每個(gè)鏈表由一個(gè)頭指針指向第一個(gè)結(jié)點(diǎn),采用上述數(shù)據(jù)結(jié)構(gòu)創(chuàng)建目標(biāo)多邊形和參照多邊形鏈表,判斷并計(jì)算第一個(gè)交占.(2)計(jì)算交點(diǎn) 運(yùn)用解析幾何計(jì)算目標(biāo)多邊形中的每條邊所在直線和參照多邊形中的任意邊所在直線,按直線一般方程求兩條線段的交點(diǎn),并判斷交點(diǎn)坐標(biāo)是否為實(shí)際交點(diǎn); 若為實(shí)際交點(diǎn),則把該交點(diǎn)以其在目標(biāo)多邊形上的先后順序,按多邊形路線方向插入到兩個(gè)多邊形的鏈表中;若出現(xiàn)經(jīng)過(guò)交點(diǎn)的線段經(jīng)過(guò)多邊形頂點(diǎn)的情況,在求出交點(diǎn)后,不再將相同交點(diǎn)插入到鏈表中;若出現(xiàn)經(jīng)過(guò)交點(diǎn)的線段與參照多邊形的某一邊重疊的情況,忽略該重疊的參照邊, 只對(duì)重合邊以外的多邊形的邊求交; (3)遍歷鏈表遍歷步驟(I)創(chuàng)建的目標(biāo)多邊形和參照多邊形鏈表,如果存在交點(diǎn),則可以判斷位置點(diǎn)在緩沖區(qū)內(nèi); (4)根據(jù)以下預(yù)設(shè)的報(bào)警規(guī)則,來(lái)產(chǎn)生預(yù)警信息: (41)、到達(dá)敏感地點(diǎn)的報(bào)警規(guī)則:位置點(diǎn)在緩沖區(qū)內(nèi); (42)、偏離規(guī)定線路的報(bào)警規(guī)則:位置點(diǎn)在緩沖區(qū)外; (43)、出入電子圍欄的報(bào)警規(guī)則:位置點(diǎn)由緩沖區(qū)內(nèi)變?yōu)榫彌_區(qū)夕卜、或由緩沖區(qū)外變?yōu)榫彌_區(qū)內(nèi)。`
      全文摘要
      本發(fā)明一種公務(wù)車(chē)輛監(jiān)管中位置預(yù)警的方法,通過(guò)緩沖半徑分別繞組成目標(biāo)對(duì)象的各點(diǎn)旋轉(zhuǎn)生成目標(biāo)緩沖區(qū)邊界,能夠根據(jù)預(yù)先設(shè)定的預(yù)警類(lèi)別和緩沖半徑,準(zhǔn)確生成對(duì)應(yīng)的敏感地點(diǎn)緩沖區(qū)、規(guī)定線路緩沖區(qū)、電子圍欄緩沖區(qū),本發(fā)明解決了規(guī)定線路緩沖區(qū)或電子圍欄緩沖區(qū)邊界線的失真現(xiàn)象;處理了規(guī)定線路緩沖區(qū)或電子圍欄緩沖區(qū)邊界線的自相交問(wèn)題,本發(fā)明創(chuàng)造性地將緩沖區(qū)算法和單調(diào)鏈算法相結(jié)合,只需得到敏感地點(diǎn)、規(guī)定線路、電子圍欄這三者對(duì)應(yīng)的坐標(biāo)集和緩沖半徑,即可構(gòu)造緩沖區(qū)域,進(jìn)而判斷公務(wù)車(chē)輛位置與這三者的空間關(guān)系,最終產(chǎn)生預(yù)警,具有極強(qiáng)的操作性。
      文檔編號(hào)G08G1/123GK103106807SQ20131001080
      公開(kāi)日2013年5月15日 申請(qǐng)日期2013年1月11日 優(yōu)先權(quán)日2013年1月11日
      發(fā)明者王國(guó)順, 王維龍, 傅光風(fēng) 申請(qǐng)人:南威軟件股份有限公司
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1