本發(fā)明涉及信息處理技術(shù)領(lǐng)域,特別是涉及一種GPS標(biāo)記點(diǎn)確定方法、軌跡優(yōu)化方法及裝置。
背景技術(shù):
GPS(Global Positioning System,全球定位系統(tǒng))是一種具有全方位、全天候、全時(shí)段、高精度的衛(wèi)星導(dǎo)航系統(tǒng),能夠?yàn)槿蛴脩籼峁┑统杀?、高精度的三維位置、速度等導(dǎo)航信息,被廣泛應(yīng)用于各個(gè)領(lǐng)域,如車輛導(dǎo)航、時(shí)鐘同步、實(shí)時(shí)位置監(jiān)控、軌跡記錄等。人們可以通過(guò)GPS信息與GIS(Geographic Information System,地理信息系統(tǒng))信息的結(jié)合,直觀地監(jiān)控車輛的行駛軌跡。
一般單個(gè)GPS設(shè)備采集坐標(biāo)點(diǎn)的周期為1s,一小時(shí)則有3600個(gè)坐標(biāo)點(diǎn),如果采用所有的坐標(biāo)點(diǎn)規(guī)劃行駛軌跡,會(huì)導(dǎo)致GPS信息量過(guò)大,增大存儲(chǔ)和通信成本。為了節(jié)約存儲(chǔ)和通信成本,現(xiàn)有技術(shù)中通常采用坐標(biāo)點(diǎn)采樣的方式進(jìn)行軌跡記錄。例如,每隔一定的距離或者固定的時(shí)間采集一個(gè)坐標(biāo)點(diǎn),可以大大減少坐標(biāo)點(diǎn)的數(shù)量,進(jìn)而降低GPS信息量。
但是在連續(xù)的轉(zhuǎn)彎路或者不同形態(tài)的轉(zhuǎn)彎段,如果僅僅每隔一定的距離采集一個(gè)坐標(biāo)點(diǎn)會(huì)導(dǎo)致軌跡記錄相對(duì)原始道路發(fā)生偏移。如果僅固定的時(shí)間采集一個(gè)坐標(biāo)點(diǎn),因?yàn)檐囕v速度在實(shí)時(shí)變化,導(dǎo)致軌跡記錄相對(duì)原始道路發(fā)生偏移。圖1為相關(guān)技術(shù)中一種軌跡記錄示意圖,圖中示出了一段具有連續(xù)的轉(zhuǎn)彎路或者不同形態(tài)的轉(zhuǎn)彎段的道路,道路中包括采集的坐標(biāo)點(diǎn)100~106,以及由相鄰坐標(biāo)點(diǎn)之間的連線組成的軌跡記錄(如圖中的虛線所示)。如圖1所示,雖然在直線路段的軌跡記錄與道路具有較高的吻合度,但是當(dāng)車輛處于不同的行駛速度時(shí),相鄰坐標(biāo)點(diǎn)之間的間距不同,例如坐標(biāo)點(diǎn)100和101之間的距離與坐標(biāo)點(diǎn)101與102之間的距離不同,且車輛的行駛軌跡比較凌亂;另外,在連續(xù)的轉(zhuǎn)彎路或者不同形態(tài)的轉(zhuǎn)彎段,軌跡記錄與道路發(fā)生了嚴(yán)重的偏移,如坐標(biāo)點(diǎn)102和坐標(biāo)點(diǎn)104之間的路段。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例中提供了一種GPS標(biāo)記點(diǎn)確定方法、軌跡優(yōu)化方法及裝置,以解決現(xiàn)有技術(shù)中的車輛在連續(xù)的轉(zhuǎn)彎路或者不同形態(tài)的轉(zhuǎn)彎段軌跡線路與實(shí)際線路不匹配的問題。
第一方面,本發(fā)明實(shí)施例提供了一種GPS標(biāo)定點(diǎn)確定方法,包括以下步驟:
步驟S100:采集并存儲(chǔ)車輛的位置數(shù)據(jù)和位姿數(shù)據(jù);
步驟S200:計(jì)算當(dāng)前的位姿數(shù)據(jù)與上一位姿數(shù)據(jù)之間的角度差值;
步驟S300:判斷所述角度差值是否等于或者在預(yù)設(shè)的角度閾值范圍內(nèi);
步驟S410:當(dāng)所述角度差值等于或者在預(yù)設(shè)的角度閾值范圍內(nèi)時(shí),將所述當(dāng)前的位置數(shù)據(jù)標(biāo)記為轉(zhuǎn)彎標(biāo)記點(diǎn);
步驟S420:計(jì)算當(dāng)前的轉(zhuǎn)彎標(biāo)記點(diǎn)與上一轉(zhuǎn)彎標(biāo)記點(diǎn)之間的轉(zhuǎn)彎距離差值;
步驟S430:判斷所述轉(zhuǎn)彎距離差值是否小于預(yù)設(shè)的轉(zhuǎn)彎距離閾值;
步驟S440:當(dāng)所述轉(zhuǎn)彎距離差值小于預(yù)設(shè)的轉(zhuǎn)彎距離閾值時(shí),將所述上一轉(zhuǎn)彎標(biāo)記點(diǎn)刪除,返回步驟S420;否則返回步驟S100。
優(yōu)選地,所述步驟S420具體包括:
步驟S421:判斷在當(dāng)前的轉(zhuǎn)彎標(biāo)記點(diǎn)之前是否存在轉(zhuǎn)彎標(biāo)記點(diǎn);
步驟S422:當(dāng)在當(dāng)前的轉(zhuǎn)彎標(biāo)記點(diǎn)之前存在轉(zhuǎn)彎標(biāo)記點(diǎn)時(shí),計(jì)算當(dāng)前的轉(zhuǎn)彎標(biāo)記點(diǎn)與上一轉(zhuǎn)彎標(biāo)記點(diǎn)之間的轉(zhuǎn)彎距離差值;否則返回步驟S100。
優(yōu)選地,在步驟S300后還包括:
步驟S510:當(dāng)所述角度差值在預(yù)設(shè)的角度閾值范圍外時(shí),計(jì)算當(dāng)前的位置數(shù)據(jù)與上一非轉(zhuǎn)彎標(biāo)記點(diǎn)之間的非轉(zhuǎn)彎距離差值;
步驟S520:判斷所述非轉(zhuǎn)彎距離差值是否處于預(yù)設(shè)的非轉(zhuǎn)彎距離閾值范圍內(nèi);
步驟S530:當(dāng)所述非轉(zhuǎn)彎距離差值在預(yù)設(shè)的非轉(zhuǎn)彎距離閾值范圍內(nèi)時(shí),將所述當(dāng)前的位置數(shù)據(jù)標(biāo)記為非轉(zhuǎn)彎標(biāo)記點(diǎn),返回步驟S100;否則直接返回步驟S100。
優(yōu)選地,所述步驟S510包括:
步驟S511:當(dāng)所述角度差值在預(yù)設(shè)的角度閾值范圍外時(shí),判斷在當(dāng)前的位置數(shù)據(jù)之前是否存在非轉(zhuǎn)彎標(biāo)記點(diǎn);
步驟S512:當(dāng)在當(dāng)前的位置數(shù)據(jù)之前存在非轉(zhuǎn)彎標(biāo)記點(diǎn)時(shí),計(jì)算當(dāng)前的位置數(shù)據(jù)與上一非轉(zhuǎn)彎標(biāo)記點(diǎn)之間的非轉(zhuǎn)彎距離差值;否則返回步驟S100。
優(yōu)選地,所述角度閾值屬于12-18度內(nèi)的任一數(shù)值。
優(yōu)選地,所述轉(zhuǎn)彎距離閾值屬于1-4米內(nèi)的任一數(shù)值。
第二方面,本發(fā)明實(shí)施例還提供了一種GPS軌跡優(yōu)化方法,包括上述第一方面任一項(xiàng)所述的步驟;以及,
步驟S600:設(shè)置定時(shí)時(shí)間間隔,在定時(shí)時(shí)間到時(shí),將所述轉(zhuǎn)彎標(biāo)記點(diǎn)和/或非轉(zhuǎn)彎標(biāo)記點(diǎn)上傳至服務(wù)器;
步驟S610:所述服務(wù)器將所述轉(zhuǎn)彎標(biāo)記點(diǎn)和/或非轉(zhuǎn)彎標(biāo)記點(diǎn)擬合為軌跡曲線。
第三方面,本發(fā)明實(shí)施例還提供了一種GPS標(biāo)定點(diǎn)確定裝置,包括:
數(shù)據(jù)采集模塊,用于采集車輛的位置數(shù)據(jù)和位姿數(shù)據(jù);
數(shù)據(jù)存儲(chǔ)模塊,用于存儲(chǔ)所述數(shù)據(jù)采集模塊采集的所述位置數(shù)據(jù)和位姿數(shù)據(jù);
角度差值計(jì)算模塊,用于計(jì)算當(dāng)前的位姿數(shù)據(jù)與上一位姿數(shù)據(jù)之間的角度差值;
角度差值判斷模塊,用于判斷所述角度差值是否等于或者在預(yù)設(shè)的角度閾值范圍內(nèi);
轉(zhuǎn)彎標(biāo)記點(diǎn)確定模塊,用于當(dāng)所述角度差值等于或者在預(yù)設(shè)的角度閾值范圍內(nèi)時(shí),將所述當(dāng)前的位置數(shù)據(jù)標(biāo)記為轉(zhuǎn)彎標(biāo)記點(diǎn);
轉(zhuǎn)彎距離差值計(jì)算模塊,用于計(jì)算當(dāng)前的轉(zhuǎn)彎標(biāo)記點(diǎn)與上一轉(zhuǎn)彎標(biāo)記點(diǎn)之間的轉(zhuǎn)彎距離差值;
轉(zhuǎn)彎標(biāo)記點(diǎn)刪除模塊,用于當(dāng)所述轉(zhuǎn)彎距離差值小于預(yù)設(shè)的轉(zhuǎn)彎距離閾值時(shí),將所述上一轉(zhuǎn)彎標(biāo)記點(diǎn)刪除。
優(yōu)選地,所述GPS標(biāo)定點(diǎn)確定裝置,還包括:
非轉(zhuǎn)彎距離差值計(jì)算模塊,用于當(dāng)所述角度差值在預(yù)設(shè)的角度閾值范圍外時(shí),計(jì)算當(dāng)前的位置數(shù)據(jù)與上一非轉(zhuǎn)彎標(biāo)記點(diǎn)之間的非轉(zhuǎn)彎距離差值;
非轉(zhuǎn)彎標(biāo)記點(diǎn)確定模塊,用于當(dāng)所述非轉(zhuǎn)彎距離差值在預(yù)設(shè)的非轉(zhuǎn)彎距離閾值范圍內(nèi)時(shí),將所述當(dāng)前的位置數(shù)據(jù)標(biāo)記為非轉(zhuǎn)彎標(biāo)記點(diǎn)。
第四方面,本發(fā)明實(shí)施例還提供了一種GPS軌跡優(yōu)化裝置,包括上述第三方面任一項(xiàng)所述的模塊;以及,
標(biāo)記點(diǎn)上傳模塊,用于設(shè)置定時(shí)時(shí)間間隔,在定時(shí)時(shí)間到時(shí),將所述轉(zhuǎn)彎標(biāo)記點(diǎn)和/或非轉(zhuǎn)彎標(biāo)記點(diǎn)上傳至服務(wù)器;
服務(wù)器,用于所述轉(zhuǎn)彎標(biāo)記點(diǎn)和/或非轉(zhuǎn)彎標(biāo)記點(diǎn)擬合為軌跡曲線。
本發(fā)明實(shí)施例提供的技術(shù)方案,基于角度差值和轉(zhuǎn)彎距離差值共同確定轉(zhuǎn)彎標(biāo)記點(diǎn),在連續(xù)的轉(zhuǎn)彎路或者不同形態(tài)的轉(zhuǎn)彎段,車輛的軌跡線路與實(shí)際道路具有較高的匹配度。另外,在非轉(zhuǎn)彎路段,基于非轉(zhuǎn)彎距離差值確定非轉(zhuǎn)彎標(biāo)記點(diǎn),且對(duì)于不同的車速采取不同的非轉(zhuǎn)彎距離閥值,這樣避免車輛在高速行駛時(shí)浪費(fèi)流量,又不會(huì)導(dǎo)致軌跡線路凌亂,同時(shí)還能使車輛行車軌跡更為美觀。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,對(duì)于本領(lǐng)域普通技術(shù)人員而言,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為現(xiàn)有技術(shù)中一種軌跡記錄示意圖;
圖2為本發(fā)明實(shí)施例提供的一種GPS標(biāo)定點(diǎn)確定方法的流程示意圖;
圖3為本發(fā)明實(shí)施例提供的一種軌跡記錄示意圖;
圖4為本發(fā)明實(shí)施例提供的一種GPS標(biāo)定點(diǎn)確定裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明中的技術(shù)方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
參見圖2,為本發(fā)明實(shí)施例提供的一種GPS標(biāo)定點(diǎn)確定方法的流程示意圖,該方法主要包括以下步驟。
步驟S100:采集并存儲(chǔ)車輛的位置數(shù)據(jù)和位姿數(shù)據(jù)。
GPS按照周期頻率不斷采集車輛的位置數(shù)據(jù)和位姿數(shù)據(jù),具體地,可以為1秒采集一次,也可以2秒或3秒采集一次,本發(fā)明對(duì)此不做具體限定。其中,位置數(shù)據(jù)即車輛的經(jīng)緯度坐標(biāo),位姿數(shù)據(jù)即車輛的角度,例如,以車頭朝向正北方時(shí)定義車輛的位姿數(shù)據(jù)為0°,則按照順時(shí)針方向,當(dāng)車輛轉(zhuǎn)向東北方向時(shí),車輛的位姿數(shù)據(jù)為45°;當(dāng)車輛轉(zhuǎn)向正東方向時(shí),車輛的位姿數(shù)據(jù)為90°,以此類推。
假如完全按照GPS采集的位置數(shù)據(jù)為車輛記錄行駛軌跡,以GPS的數(shù)據(jù)采集周期為1s為例,則一小時(shí)會(huì)有3600個(gè)坐標(biāo)點(diǎn),導(dǎo)致GPS信息量過(guò)大,增大存儲(chǔ)和通信成本。針對(duì)這種現(xiàn)象,本發(fā)明實(shí)施例,在GPS采集的坐標(biāo)點(diǎn)中選取部分具有特殊信息的標(biāo)定點(diǎn)進(jìn)行軌跡記錄。
步驟S200:計(jì)算當(dāng)前的位姿數(shù)據(jù)與上一位姿數(shù)據(jù)之間的角度差值。
由于轉(zhuǎn)彎和直線行駛是兩種完全不同的路況,因此,對(duì)于轉(zhuǎn)彎和直線行駛應(yīng)該采用不同的策略進(jìn)行標(biāo)定點(diǎn)的選取。其中,當(dāng)車輛轉(zhuǎn)彎時(shí),車頭所朝的方向必然會(huì)發(fā)生改變,因此,可以通過(guò)車輛的位姿數(shù)據(jù)的變化來(lái)判斷車輛是否發(fā)生轉(zhuǎn)彎。具體為,計(jì)算當(dāng)前的位姿數(shù)據(jù)與上一位姿數(shù)據(jù)之間的角度差值。另外,由于車輛在實(shí)際行駛的過(guò)程中,既有可能左轉(zhuǎn)彎,又有可能右轉(zhuǎn)彎,因此,該角度差值可以理解為兩個(gè)位姿數(shù)據(jù)之間的絕對(duì)值。
步驟S300:判斷所述角度差值是否等于或者在預(yù)設(shè)的角度閾值范圍內(nèi)。
在本發(fā)明實(shí)施例中,預(yù)設(shè)角度閾值,通過(guò)角度差值與角度閾值的比較來(lái)判斷車輛是處于轉(zhuǎn)彎狀態(tài)還是直線行駛狀態(tài)。其中,角度閾值可以取12-18°內(nèi)的任一數(shù)值,也可以為一個(gè)范圍值??梢岳斫獾氖?,角度閾值設(shè)置的越小,越有可能把非轉(zhuǎn)彎狀態(tài)判定為轉(zhuǎn)彎狀態(tài),例如,當(dāng)車輛變更車道時(shí)車輛的位姿數(shù)據(jù)會(huì)發(fā)生一定的變化,角度閾值設(shè)置的過(guò)小則容易把變更車道的狀態(tài)判定為轉(zhuǎn)彎狀態(tài),引起系統(tǒng)誤判;角度閾值設(shè)置的越大,越有可能把轉(zhuǎn)彎狀態(tài)判定為非轉(zhuǎn)彎狀態(tài),例如,當(dāng)車輛轉(zhuǎn)大彎時(shí),車輛的方向可能只會(huì)發(fā)生輕微的變化,角度閾值設(shè)置的過(guò)大容易把轉(zhuǎn)大彎狀態(tài)判定為非轉(zhuǎn)彎狀態(tài),引起系統(tǒng)誤判。
在本發(fā)明一種優(yōu)選實(shí)施例中,將所述角度閾值設(shè)置為15°,既可以滿足車輛在變更車道時(shí)對(duì)角度變化的需求,又不至于將轉(zhuǎn)大彎狀態(tài)判定為非轉(zhuǎn)彎狀態(tài)。
步驟S410:當(dāng)所述角度差值等于或者在預(yù)設(shè)的角度閾值范圍內(nèi)時(shí),將所述當(dāng)前的位置數(shù)據(jù)標(biāo)記為轉(zhuǎn)彎標(biāo)記點(diǎn)。
當(dāng)所述角度差值等于或者在預(yù)設(shè)的角度閾值范圍內(nèi)時(shí),說(shuō)明車輛處于轉(zhuǎn)彎狀態(tài),則采用轉(zhuǎn)彎狀態(tài)的策略確定轉(zhuǎn)彎標(biāo)記點(diǎn)。其中,當(dāng)判斷車輛處于轉(zhuǎn)彎狀態(tài)時(shí),將當(dāng)前的位置數(shù)據(jù)標(biāo)記為轉(zhuǎn)彎標(biāo)記點(diǎn),即標(biāo)記車輛剛進(jìn)入轉(zhuǎn)彎的位置。
步驟S420:計(jì)算當(dāng)前的轉(zhuǎn)彎標(biāo)記點(diǎn)與上一轉(zhuǎn)彎標(biāo)記點(diǎn)之間的轉(zhuǎn)彎距離差值。
在車輛進(jìn)行轉(zhuǎn)彎時(shí),如果基于時(shí)間間隔來(lái)確定轉(zhuǎn)彎標(biāo)記點(diǎn),則當(dāng)車輛轉(zhuǎn)連續(xù)的彎或者不同形態(tài)的彎時(shí),有可能引起記錄的路徑和實(shí)際的道路不符,如圖1所示。在本發(fā)明實(shí)施例中,當(dāng)判斷車輛進(jìn)入轉(zhuǎn)彎狀態(tài)后,基于距離選擇轉(zhuǎn)彎標(biāo)記點(diǎn),因此,需要計(jì)算當(dāng)前的轉(zhuǎn)彎標(biāo)記點(diǎn)與上一轉(zhuǎn)彎標(biāo)記點(diǎn)之間的轉(zhuǎn)彎距離差值。但是,在車輛剛進(jìn)入轉(zhuǎn)彎道路時(shí),當(dāng)前的轉(zhuǎn)彎標(biāo)記點(diǎn)為車輛的第一個(gè)轉(zhuǎn)彎標(biāo)記點(diǎn),因此步驟S420具體可以包括以下步驟。
步驟S421:判斷在當(dāng)前的轉(zhuǎn)彎標(biāo)記點(diǎn)之前是否存在轉(zhuǎn)彎標(biāo)記點(diǎn)。
步驟S422:當(dāng)在當(dāng)前的轉(zhuǎn)彎標(biāo)記點(diǎn)之前存在轉(zhuǎn)彎標(biāo)記點(diǎn)時(shí),計(jì)算當(dāng)前的轉(zhuǎn)彎標(biāo)記點(diǎn)與上一轉(zhuǎn)彎標(biāo)記點(diǎn)之間的轉(zhuǎn)彎距離差值;否則返回步驟S100。
當(dāng)車輛剛進(jìn)入轉(zhuǎn)彎道路時(shí),當(dāng)前的轉(zhuǎn)彎標(biāo)記點(diǎn)為第一個(gè)轉(zhuǎn)彎標(biāo)記點(diǎn),則在當(dāng)前的轉(zhuǎn)彎標(biāo)記點(diǎn)之前不存在轉(zhuǎn)彎標(biāo)記點(diǎn),因此無(wú)需進(jìn)行轉(zhuǎn)彎距離差值的計(jì)算直接返回步驟S100。當(dāng)車輛進(jìn)入轉(zhuǎn)彎道路以后,通常在當(dāng)前的轉(zhuǎn)彎標(biāo)記點(diǎn)之前存在一個(gè)或多個(gè)轉(zhuǎn)彎標(biāo)記點(diǎn),此時(shí)可以計(jì)算當(dāng)前的轉(zhuǎn)彎標(biāo)記點(diǎn)與上一轉(zhuǎn)彎標(biāo)記點(diǎn)之間的轉(zhuǎn)彎距離差值。
步驟S430:判斷所述轉(zhuǎn)彎距離差值是否小于預(yù)設(shè)的轉(zhuǎn)彎距離閾值。
在本發(fā)明實(shí)施例中,設(shè)置轉(zhuǎn)彎距離閾值,用于將轉(zhuǎn)彎標(biāo)記點(diǎn)限定在一定距離的間隔內(nèi)。理想情況下,轉(zhuǎn)彎距離閾值設(shè)置的越小,軌跡記錄的精度越高,但是其同樣會(huì)造成數(shù)據(jù)處理量過(guò)大,增大通信和存儲(chǔ)成本。在本發(fā)明一種優(yōu)選實(shí)施例中,轉(zhuǎn)彎距離閾值選擇3-20米內(nèi)的任一數(shù)值,優(yōu)選為5米。以5米為例,即判斷所述轉(zhuǎn)彎距離差值是否小于5米。
步驟S440:當(dāng)所述轉(zhuǎn)彎距離差值小于預(yù)設(shè)的轉(zhuǎn)彎距離閾值時(shí),將所述上一轉(zhuǎn)彎標(biāo)記點(diǎn)刪除,返回步驟S420;否則返回步驟S100。
同樣以5米為例,當(dāng)轉(zhuǎn)彎距離差值小于5米時(shí),說(shuō)明當(dāng)前轉(zhuǎn)彎標(biāo)記點(diǎn)與上一轉(zhuǎn)彎標(biāo)記點(diǎn)之間的距離過(guò)小,因此需要將上一轉(zhuǎn)彎標(biāo)記點(diǎn)刪除,返回步驟S420繼續(xù)進(jìn)行計(jì)算。
例如,系統(tǒng)共記錄了四個(gè)轉(zhuǎn)彎標(biāo)記點(diǎn),分別為第一轉(zhuǎn)彎標(biāo)記點(diǎn)、第二轉(zhuǎn)彎標(biāo)記點(diǎn)、第三轉(zhuǎn)彎標(biāo)記點(diǎn)和第四轉(zhuǎn)彎標(biāo)記點(diǎn),相鄰轉(zhuǎn)彎標(biāo)記點(diǎn)之間的間隔為2米,當(dāng)前的轉(zhuǎn)彎標(biāo)記點(diǎn)為第四轉(zhuǎn)彎標(biāo)記點(diǎn)。第四轉(zhuǎn)彎標(biāo)記點(diǎn)和第三轉(zhuǎn)彎標(biāo)記點(diǎn)之間的轉(zhuǎn)彎距離差值(2米)小于轉(zhuǎn)彎距離閾值(5米),則將第三轉(zhuǎn)彎標(biāo)記點(diǎn)刪除,繼續(xù)計(jì)算第四轉(zhuǎn)彎標(biāo)記點(diǎn)和第二轉(zhuǎn)彎標(biāo)記點(diǎn)之間的轉(zhuǎn)彎距離差值;第四轉(zhuǎn)彎標(biāo)記點(diǎn)和第二轉(zhuǎn)彎標(biāo)記點(diǎn)之間的轉(zhuǎn)彎距離差值(4米)小于轉(zhuǎn)彎距離閾值(5米),則將第二轉(zhuǎn)彎標(biāo)記點(diǎn)刪除,繼續(xù)計(jì)算第四轉(zhuǎn)彎標(biāo)記點(diǎn)和第一轉(zhuǎn)彎標(biāo)記點(diǎn)之間的轉(zhuǎn)彎距離差值;第四轉(zhuǎn)彎標(biāo)記點(diǎn)和第一轉(zhuǎn)彎標(biāo)記點(diǎn)之間的轉(zhuǎn)彎距離差值(5米)大于轉(zhuǎn)彎距離閾值(5米),則返回步驟S100。由上述可知,在本發(fā)明實(shí)施例中,將第二轉(zhuǎn)彎標(biāo)記點(diǎn)和第三轉(zhuǎn)彎標(biāo)記點(diǎn)刪除,使得第一轉(zhuǎn)彎標(biāo)記點(diǎn)和第四轉(zhuǎn)彎標(biāo)記點(diǎn)之間保持5米的間距。以此類推,采用本發(fā)明實(shí)施例所提供的方法,將轉(zhuǎn)彎標(biāo)記點(diǎn)中多余的坐標(biāo)點(diǎn)刪除,使每?jī)蓚€(gè)轉(zhuǎn)彎標(biāo)記點(diǎn)之間保持5米的距離,不僅可以減小數(shù)據(jù)的處理量,而且可以保證所記錄軌跡的平滑性。
以上為系統(tǒng)判定車輛進(jìn)入轉(zhuǎn)彎狀態(tài)時(shí)轉(zhuǎn)彎標(biāo)記點(diǎn)的確定方法。另外,當(dāng)系統(tǒng)判定車輛為非轉(zhuǎn)彎狀態(tài)時(shí),非轉(zhuǎn)彎標(biāo)記點(diǎn)的確定方法包括以下步驟。
步驟S510:當(dāng)所述角度差值在預(yù)設(shè)的角度閾值范圍外時(shí),計(jì)算當(dāng)前的位置數(shù)據(jù)與上一非轉(zhuǎn)彎標(biāo)記點(diǎn)之間的非轉(zhuǎn)彎距離差值。
當(dāng)角度差值在預(yù)設(shè)的角度閾值范圍外時(shí),說(shuō)明車輛處于非轉(zhuǎn)彎狀態(tài)。假如在車輛處于非轉(zhuǎn)彎狀態(tài)時(shí)基于時(shí)間間隔確定非轉(zhuǎn)彎標(biāo)記點(diǎn),則當(dāng)車速比較慢,甚至堵車時(shí),可能在很短的行駛距離內(nèi)上傳了很多坐標(biāo)點(diǎn),不僅增大了數(shù)據(jù)處理和通信成本,而且導(dǎo)致車輛的記錄的點(diǎn)漂移造成軌跡非常凌亂。
在本發(fā)明實(shí)施例中,當(dāng)判斷車輛處于非轉(zhuǎn)彎狀態(tài)時(shí),基于距離選擇非轉(zhuǎn)彎標(biāo)記點(diǎn),由于非轉(zhuǎn)彎狀態(tài)相對(duì)轉(zhuǎn)彎狀態(tài)時(shí)的軌跡更容易記錄,因此可以間隔較遠(yuǎn)的距離記錄一個(gè)非轉(zhuǎn)彎標(biāo)記點(diǎn),進(jìn)一步節(jié)約數(shù)據(jù)存儲(chǔ)和傳輸成本?;诖?,需要計(jì)算當(dāng)前的位置數(shù)據(jù)與上一非轉(zhuǎn)彎標(biāo)記點(diǎn)之間的非轉(zhuǎn)彎距離差值。
但是,在車輛由轉(zhuǎn)彎狀態(tài)剛進(jìn)入非轉(zhuǎn)彎狀態(tài)時(shí),并不存在上一非轉(zhuǎn)彎標(biāo)記點(diǎn),因此,步驟S510具體可以包括以下步驟。
步驟S511:當(dāng)所述角度差值在預(yù)設(shè)的角度閾值范圍外時(shí),判斷在當(dāng)前的位置數(shù)據(jù)之前是否存在非轉(zhuǎn)彎標(biāo)記點(diǎn)。
步驟S512:當(dāng)在當(dāng)前的位置數(shù)據(jù)之前存在非轉(zhuǎn)彎標(biāo)記點(diǎn)時(shí),計(jì)算當(dāng)前的位置數(shù)據(jù)與上一非轉(zhuǎn)彎標(biāo)記點(diǎn)之間的非轉(zhuǎn)彎距離差值;否則返回步驟S100。
當(dāng)車輛剛進(jìn)入非轉(zhuǎn)彎道路(例如,直線行駛道路)時(shí),當(dāng)前的位置數(shù)據(jù)之前并不存在非轉(zhuǎn)彎標(biāo)記點(diǎn),則不能進(jìn)行非轉(zhuǎn)彎距離差值的計(jì)算,直接返回步驟S100。
當(dāng)車輛進(jìn)入非轉(zhuǎn)彎道路以后,通常在當(dāng)前的位置數(shù)據(jù)之前存在一個(gè)或多個(gè)非轉(zhuǎn)彎標(biāo)記點(diǎn),則可以計(jì)算當(dāng)前的位置數(shù)據(jù)與上一非轉(zhuǎn)彎標(biāo)記點(diǎn)之間的非轉(zhuǎn)彎距離差值。
步驟S520:判斷所述非轉(zhuǎn)彎距離差值是否處于預(yù)設(shè)的非轉(zhuǎn)彎距離閾值范圍內(nèi)。
在本發(fā)明實(shí)施例中,設(shè)置非轉(zhuǎn)彎距離閾值,用于將非轉(zhuǎn)彎標(biāo)記點(diǎn)限定在一定距離的間隔內(nèi)。理想情況下,非轉(zhuǎn)彎距離閾值設(shè)置的越小,軌跡記錄的精度越高,但是其同樣會(huì)造成數(shù)據(jù)處理量過(guò)大,增大通信和存儲(chǔ)成本。
另外,非轉(zhuǎn)彎距離閾值的大小還應(yīng)當(dāng)與車輛的行駛速度有關(guān)。例如,當(dāng)車輛按照10km/h的速度行駛時(shí),1秒產(chǎn)生的距離是2.7米;當(dāng)車輛按照160km/h的速度行駛時(shí),1秒產(chǎn)生的距離是44米。對(duì)于不同的車速如果采用同樣的非轉(zhuǎn)彎距離閾值,會(huì)使得高速行駛的車采樣過(guò)于頻繁,而造成流量的浪費(fèi)。在本發(fā)明一種優(yōu)選實(shí)施例中,當(dāng)車輛的行駛速度小于60km/h時(shí),設(shè)定非轉(zhuǎn)彎距離閾值為120米-180米內(nèi)的任一數(shù)值,優(yōu)選為150米;當(dāng)車輛的行駛速度大于60km/h時(shí),設(shè)定非轉(zhuǎn)彎距離閾值為400米-500米內(nèi)的任一數(shù)值,優(yōu)選為430米。
步驟S530:當(dāng)所述非轉(zhuǎn)彎距離差值在預(yù)設(shè)的非轉(zhuǎn)彎距離閾值范圍內(nèi)時(shí),將所述當(dāng)前的位置數(shù)據(jù)標(biāo)記為非轉(zhuǎn)彎標(biāo)記點(diǎn),返回步驟S100;否則直接返回步驟S100。
以高速行駛狀態(tài)下,非轉(zhuǎn)彎距離閾值430米為例,當(dāng)非轉(zhuǎn)彎距離差值小于430米時(shí),說(shuō)明當(dāng)前的位置數(shù)據(jù)與上一非轉(zhuǎn)彎標(biāo)記點(diǎn)之間的距離過(guò)小,則不能將當(dāng)前的位置數(shù)據(jù)標(biāo)記為非轉(zhuǎn)彎標(biāo)記點(diǎn),則直接返回步驟S100。當(dāng)非轉(zhuǎn)彎距離差值等于430米時(shí),說(shuō)明當(dāng)前的位置數(shù)據(jù)與上一非轉(zhuǎn)彎標(biāo)記點(diǎn)之間的距離較合適,則可以在此時(shí)記錄一個(gè)新的非轉(zhuǎn)彎標(biāo)記點(diǎn)。采用上述方法,可以使相鄰非轉(zhuǎn)彎標(biāo)記點(diǎn)之間的距離始終保持在430米。
以正常行駛狀態(tài)下,以非轉(zhuǎn)彎距離閾值150米為例,當(dāng)非轉(zhuǎn)彎距離差值小于150米時(shí),說(shuō)明當(dāng)前的位置數(shù)據(jù)與上一非轉(zhuǎn)彎標(biāo)記點(diǎn)之間的距離過(guò)小,則不能將當(dāng)前的位置數(shù)據(jù)標(biāo)記為非轉(zhuǎn)彎標(biāo)記點(diǎn),則直接返回步驟S100。當(dāng)非轉(zhuǎn)彎距離差值等于150米時(shí),說(shuō)明當(dāng)前的位置數(shù)據(jù)與上一非轉(zhuǎn)彎標(biāo)記點(diǎn)之間的距離較合適,則可以在此時(shí)記錄一個(gè)新的非轉(zhuǎn)彎標(biāo)記點(diǎn)。采用上述方法,可以使相鄰非轉(zhuǎn)彎標(biāo)記點(diǎn)之間的距離始終保持150米。
基于上述方法,本發(fā)明實(shí)施例還提供一種GPS軌跡優(yōu)化方法,所述GPS軌跡優(yōu)化方法在圖2所示實(shí)施例的基礎(chǔ)上還包括以下步驟。
步驟S600:設(shè)置定時(shí)時(shí)間間隔,在定時(shí)時(shí)間到時(shí),將所述轉(zhuǎn)彎標(biāo)記點(diǎn)和/或非轉(zhuǎn)彎標(biāo)記點(diǎn)上傳至服務(wù)器。
步驟S610:所述服務(wù)器將所述轉(zhuǎn)彎標(biāo)記點(diǎn)和/或非轉(zhuǎn)彎標(biāo)記點(diǎn)擬合為軌跡曲線。
圖3為本發(fā)明實(shí)施例提供的一種軌跡記錄示意圖,即服務(wù)器根據(jù)轉(zhuǎn)彎標(biāo)記點(diǎn)和非轉(zhuǎn)彎標(biāo)記點(diǎn)擬合的軌跡曲線,其中,P1~P4為非轉(zhuǎn)彎標(biāo)記點(diǎn),Q1~Q6為轉(zhuǎn)彎標(biāo)記點(diǎn)。當(dāng)轉(zhuǎn)彎距離閾值為5米,非轉(zhuǎn)彎距離閾值為150米時(shí),P1和P2之間的距離為150米,P3和P4之間的距離為150米,Q1~Q6中相鄰兩點(diǎn)之間的距離為5米。
本發(fā)明實(shí)施例提供的技術(shù)方案,基于角度差值和轉(zhuǎn)彎距離差值共同確定轉(zhuǎn)彎標(biāo)記點(diǎn),在連續(xù)的轉(zhuǎn)彎路或者不同形態(tài)的轉(zhuǎn)彎段,車輛的軌跡線路與實(shí)際道路具有較高的匹配度。另外,在非轉(zhuǎn)彎路段,基于非轉(zhuǎn)彎距離差值確定非轉(zhuǎn)彎標(biāo)記點(diǎn),即使車輛采用不同車速行駛,也不會(huì)導(dǎo)致軌跡線路凌亂。
基于上述方法實(shí)施例,本發(fā)明還提供了一種GPS標(biāo)定點(diǎn)確定裝置。圖4為本發(fā)明實(shí)施例提供的一種GPS標(biāo)定點(diǎn)確定裝置的結(jié)構(gòu)示意圖,如圖4所示,該GPS標(biāo)定點(diǎn)確定裝置包括:
數(shù)據(jù)采集模塊401,用于采集車輛的位置數(shù)據(jù)和位姿數(shù)據(jù);數(shù)據(jù)存儲(chǔ)模塊402,用于存儲(chǔ)所述數(shù)據(jù)采集模塊采集的所述位置數(shù)據(jù)和位姿數(shù)據(jù);角度差值計(jì)算模塊403,用于計(jì)算當(dāng)前的位姿數(shù)據(jù)與上一位姿數(shù)據(jù)之間的角度差值;角度差值判斷模塊404,用于判斷所述角度差值是否等于或者在預(yù)設(shè)的角度閾值范圍內(nèi);轉(zhuǎn)彎標(biāo)記點(diǎn)確定模塊405,用于當(dāng)所述角度差值等于或者在預(yù)設(shè)的角度閾值范圍內(nèi)時(shí),將所述當(dāng)前的位置數(shù)據(jù)標(biāo)記為轉(zhuǎn)彎標(biāo)記點(diǎn);轉(zhuǎn)彎距離差值計(jì)算模塊406,用于計(jì)算當(dāng)前的轉(zhuǎn)彎標(biāo)記點(diǎn)與上一轉(zhuǎn)彎標(biāo)記點(diǎn)之間的轉(zhuǎn)彎距離差值;轉(zhuǎn)彎標(biāo)記點(diǎn)刪除模塊407,用于當(dāng)所述轉(zhuǎn)彎距離差值小于預(yù)設(shè)的轉(zhuǎn)彎距離閾值時(shí),將所述上一轉(zhuǎn)彎標(biāo)記點(diǎn)刪除。
在本發(fā)明一種可選實(shí)施例中,所述GPS標(biāo)定點(diǎn)確定裝置還包括:非轉(zhuǎn)彎距離差值計(jì)算模塊,用于當(dāng)所述角度差值小于預(yù)設(shè)的角度閾值時(shí),計(jì)算當(dāng)前的位置數(shù)據(jù)與上一非轉(zhuǎn)彎標(biāo)記點(diǎn)之間的非轉(zhuǎn)彎距離差值;非轉(zhuǎn)彎標(biāo)記點(diǎn)確定模塊,用于當(dāng)所述非轉(zhuǎn)彎距離差值大于預(yù)設(shè)的距離閾值時(shí),將所述當(dāng)前的位置數(shù)據(jù)標(biāo)記為非轉(zhuǎn)彎標(biāo)記點(diǎn)。
基于上述GPS標(biāo)定點(diǎn)確定裝置,本發(fā)明還提供一種GPS軌跡優(yōu)化裝置,其在上述GPS標(biāo)定點(diǎn)確定裝置的基礎(chǔ)上還包括:
標(biāo)記點(diǎn)上傳模塊,用于設(shè)置定時(shí)時(shí)間間隔,在定時(shí)時(shí)間到時(shí),將所述轉(zhuǎn)彎標(biāo)記點(diǎn)和/或非轉(zhuǎn)彎標(biāo)記點(diǎn)上傳至服務(wù)器;服務(wù)器,用于所述轉(zhuǎn)彎標(biāo)記點(diǎn)和/或非轉(zhuǎn)彎標(biāo)記點(diǎn)擬合為軌跡曲線。
其中,本發(fā)明實(shí)施例提供的GPS標(biāo)定點(diǎn)確定裝置以及GPS軌跡優(yōu)化裝置中各功能模塊之間的關(guān)系可以參見前述方法實(shí)施例中的步驟,為了節(jié)約篇幅,在此不再贅述。
具體實(shí)現(xiàn)中,本發(fā)明還提供一種計(jì)算機(jī)存儲(chǔ)介質(zhì),其中,該計(jì)算機(jī)存儲(chǔ)介質(zhì)可存儲(chǔ)有程序,該程序執(zhí)行時(shí)可包括本發(fā)明提供的方法的各實(shí)施例中的部分或全部步驟。所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(英文:read-only memory,簡(jiǎn)稱:ROM)或隨機(jī)存儲(chǔ)記憶體(英文:random access memory,簡(jiǎn)稱:RAM)等。
本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明實(shí)施例中的技術(shù)可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn)。基于這樣的理解,本發(fā)明實(shí)施例中的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
本說(shuō)明書中各個(gè)實(shí)施例之間相同相似的部分互相參見即可。尤其,對(duì)于裝置實(shí)施例和終端實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例中的說(shuō)明即可。
以上所述的本發(fā)明實(shí)施方式并不構(gòu)成對(duì)本發(fā)明保護(hù)范圍的限定。