亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種提供道路導(dǎo)航路徑的裝置的制作方法

文檔序號(hào):6099208閱讀:184來(lái)源:國(guó)知局
專利名稱:一種提供道路導(dǎo)航路徑的裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種給車輛傳送導(dǎo)航指示的道路交通控制設(shè)備。
背景技術(shù)
目前報(bào)導(dǎo)的為車輛提供道路導(dǎo)航路徑的導(dǎo)航中心裝置,配置有以計(jì)算機(jī)為核心的主控制器、用于接收車載終端提供的車輛當(dāng)前位置及目的地信息并將導(dǎo)航路徑數(shù)據(jù)向車載終端發(fā)送的收發(fā)器、存有電子地圖的數(shù)據(jù)存儲(chǔ)器、搜索器。其收發(fā)器將接收車載終端提供的車輛當(dāng)前位置及目的地信息轉(zhuǎn)交主控制器,在主控制器控制下搜索器提取數(shù)據(jù)存儲(chǔ)器的電子地圖數(shù)據(jù)按車輛當(dāng)前位置及目的地計(jì)算出道路節(jié)點(diǎn)序列形式的導(dǎo)航路徑數(shù)據(jù)后提交主控制器;在主控制器控制下收發(fā)器將主控制器取得的導(dǎo)航路徑數(shù)據(jù)向車載終端發(fā)送。車輛的車載終端收到導(dǎo)航路徑數(shù)據(jù)后結(jié)合本車輛的定位裝置隨時(shí)測(cè)量的車輛位置數(shù)據(jù),指示駕駛員按導(dǎo)航路徑駕駛車輛駛向目的地。由于目前的電子地圖中采用簡(jiǎn)單的路中線模型,將各條道路簡(jiǎn)化為位于路面中間的一條條折線段,道路間發(fā)生交匯的一個(gè)交叉道口記錄為交通網(wǎng)絡(luò)抽象圖的一個(gè)頂點(diǎn),各條道路被兩個(gè)相鄰頂點(diǎn)分隔開(kāi)的一條折線段記錄為交通網(wǎng)絡(luò)抽象圖中的一個(gè)弧。道路上彎曲但未和其他道路發(fā)生交匯的點(diǎn)不視作頂點(diǎn)。請(qǐng)看圖1道路中一個(gè)十字交叉道口處被抽象為一個(gè)頂點(diǎn)和連接該頂點(diǎn)的四個(gè)道路弧,電子地圖中該十字交叉道口處被記錄為頂點(diǎn)O和連結(jié)頂點(diǎn)O相鄰的四個(gè)頂點(diǎn)A、B、C、D的四個(gè)道路弧OA、OB、OC、OD。電子地圖中一個(gè)頂點(diǎn)記錄數(shù)據(jù)中包含該位置的經(jīng)度和緯度及該頂點(diǎn)所連接的道路弧個(gè)數(shù)與各個(gè)道路弧記錄的索引;一個(gè)道路弧記錄數(shù)據(jù)中包含該道路弧的起點(diǎn)頂點(diǎn)編號(hào)和終點(diǎn)頂點(diǎn)編號(hào)及該道路弧的長(zhǎng)度。請(qǐng)看圖2所示的交通網(wǎng)絡(luò)抽象圖,頂點(diǎn)V1、V2、……V9等均是交通網(wǎng)絡(luò)抽象圖中的頂點(diǎn);而道路V1->V2、V1->V3、……V8->V9等均是交通網(wǎng)絡(luò)抽象圖中的道路弧。而該交通網(wǎng)絡(luò)的電子地圖實(shí)質(zhì)上是各頂點(diǎn)V1、V2、……V9的頂點(diǎn)記錄數(shù)據(jù),和各道路弧V1->V2、V1->V3、……V8->V9的記錄數(shù)據(jù)。搜索器采用標(biāo)準(zhǔn)的狄杰斯特拉(DijkStra)算法從路中線模型的電子地圖中提取頂點(diǎn)數(shù)據(jù)和道路弧數(shù)據(jù),以最短路徑長(zhǎng)度的原則計(jì)算出道路頂點(diǎn)序列形式的導(dǎo)航路徑數(shù)據(jù)。對(duì)照?qǐng)D2,計(jì)算交通網(wǎng)絡(luò)中從起點(diǎn)V1至終點(diǎn)V9的最短路徑,實(shí)際上即是尋求一個(gè)頂點(diǎn)序列(假設(shè)為V1->V2->V4->V7->V9)使得經(jīng)過(guò)的道路弧(假設(shè)為V1->V2、V2->V4、V4->V7、V7->V9)長(zhǎng)度之和最小。為簡(jiǎn)單起見(jiàn),道路弧長(zhǎng)度即抽象前道路的實(shí)際長(zhǎng)度。DijkStra算法實(shí)質(zhì)上是基于圖增長(zhǎng)理論,在起點(diǎn)固定的情況下,依次決定出當(dāng)前路徑必定是其最短路徑的頂點(diǎn),直到具有最短路徑的頂點(diǎn)與終點(diǎn)吻合方可終止。DijkStra算法求出最短路徑時(shí),總保存了以最短路徑到達(dá)當(dāng)前頂點(diǎn)前的上一個(gè)頂點(diǎn)—前點(diǎn),所以只要從終點(diǎn)向起點(diǎn)回溯即可得到最短路徑的具體組成。目前采用簡(jiǎn)單的路中線模型的電子地圖和采用DijkStra算法的搜索器,在道路交叉道口處設(shè)有禁止轉(zhuǎn)向限制時(shí),不能得到正確的最短路徑,請(qǐng)看圖3,已知從頂點(diǎn)S到頂點(diǎn)E之間的最短路徑在不存在任何限制的條件下為頂點(diǎn)S->頂點(diǎn)P->頂點(diǎn)A->頂點(diǎn)O->頂點(diǎn)D->頂點(diǎn)Q->頂點(diǎn)E。若從頂點(diǎn)A到達(dá)頂點(diǎn)O時(shí)不能轉(zhuǎn)向頂點(diǎn)D(現(xiàn)實(shí)生活中經(jīng)常發(fā)生此類交通管制的情況)。直覺(jué)上此時(shí)應(yīng)按照頂點(diǎn)S->頂點(diǎn)P->頂點(diǎn)A->頂點(diǎn)O->頂點(diǎn)C->頂點(diǎn)Q->頂點(diǎn)E到達(dá)頂點(diǎn)E,但實(shí)際上路徑頂點(diǎn)S->頂點(diǎn)P->頂點(diǎn)B->頂點(diǎn)O->頂點(diǎn)D->頂點(diǎn)Q->頂點(diǎn)E可能在長(zhǎng)度上更符合要求。如果在上述轉(zhuǎn)向限制條件下頂點(diǎn)S->頂點(diǎn)P->頂點(diǎn)B->頂點(diǎn)O->頂點(diǎn)D->頂點(diǎn)Q->頂點(diǎn)E路徑長(zhǎng)度小于頂點(diǎn)S->頂點(diǎn)P->頂點(diǎn)A->頂點(diǎn)O->頂點(diǎn)C->頂點(diǎn)Q->頂點(diǎn)E路徑長(zhǎng)度,此時(shí)DijkStra算法將失敗。因?yàn)榘凑丈鲜鯠ijkStra算法的生成過(guò)程頂點(diǎn)S->頂點(diǎn)P->頂點(diǎn)A->頂點(diǎn)O必定是從起點(diǎn)頂點(diǎn)S到終點(diǎn)頂點(diǎn)O的最短路徑,亦即在計(jì)算過(guò)程中頂點(diǎn)O的前點(diǎn)必定是頂點(diǎn)A,這樣在計(jì)算完畢進(jìn)行路徑回溯時(shí),必定無(wú)法得到更符合實(shí)際的最短路徑頂點(diǎn)S->頂點(diǎn)P->頂點(diǎn)B->頂點(diǎn)O->頂點(diǎn)D->頂點(diǎn)Q->頂點(diǎn)E。由于現(xiàn)有報(bào)導(dǎo)的為車輛提供道路導(dǎo)航路徑的導(dǎo)航中心裝置不能處理有禁止轉(zhuǎn)向限制的道路最短導(dǎo)航路徑搜索問(wèn)題,因此,不能滿足現(xiàn)實(shí)生活中經(jīng)常發(fā)生道路交叉道口處設(shè)有禁止轉(zhuǎn)向限制的交通管制情況下為車輛提供道路最短導(dǎo)航路徑需要。

發(fā)明內(nèi)容
本發(fā)明旨在提供一種可在道路交叉道口處設(shè)有禁止轉(zhuǎn)向限制的交通管制情況下為車輛提供道路最短導(dǎo)航路徑的裝置。
本發(fā)明的技術(shù)方案方法是一種提供道路導(dǎo)航路徑的裝置,包括主控制器、收發(fā)器、數(shù)據(jù)存儲(chǔ)器、搜索器;數(shù)據(jù)存儲(chǔ)器存有電子地圖;收發(fā)器在主控制器控制下接收車載終端提供的車輛當(dāng)前位置及目的地信息轉(zhuǎn)交主控制器、將主控制器取得的導(dǎo)航路徑數(shù)據(jù)向車載終端發(fā)送;搜索器在主控制器控制下提取數(shù)據(jù)存儲(chǔ)器的電子地圖數(shù)據(jù)按車輛當(dāng)前位置及目的地計(jì)算出道路頂點(diǎn)序列形式的導(dǎo)航路徑數(shù)據(jù)提交主控制器;其特征在于所述數(shù)據(jù)存儲(chǔ)器的電子地圖中包含對(duì)每一個(gè)交叉道口處各道路端口進(jìn)入該道口的入頂點(diǎn)記錄及各道路端口入頂點(diǎn)對(duì)應(yīng)的帶有轉(zhuǎn)向限制特征的道路弧記錄;它還包括輸入模塊和地圖修編器;地圖修編器在主控制器的控制下,接收輸入模塊提供的交叉道口的各道路端口的轉(zhuǎn)向限制信息修改編輯數(shù)據(jù)存儲(chǔ)器中電子地圖該交叉道口對(duì)應(yīng)入頂點(diǎn)的道路弧記錄;搜索器利用各道路端口入頂點(diǎn)對(duì)應(yīng)的道路弧記錄的轉(zhuǎn)向限制特征,使用DijkStra算法求出在具有交叉道口轉(zhuǎn)向限制條件下的最短導(dǎo)航路徑數(shù)據(jù)。
為便于地圖修編器修改編輯電子地圖一個(gè)交叉道口數(shù)據(jù)時(shí)人機(jī)對(duì)話所述數(shù)據(jù)存儲(chǔ)器的電子地圖中有地圖編輯格式數(shù)據(jù)和路徑搜索計(jì)算格式數(shù)據(jù);地圖編輯格式數(shù)據(jù)有各條道路的道路記錄和各個(gè)道口的道口記錄,每條道路的道路記錄包含道路名稱、道路編號(hào)、道路中道口的個(gè)數(shù)、道路中各道口的編號(hào);每個(gè)道口的道口記錄包含道口名稱、道口編號(hào)、道口中入頂點(diǎn)的個(gè)數(shù)、道口中各入頂點(diǎn)的編號(hào);路徑搜索計(jì)算格式數(shù)據(jù)有各入頂點(diǎn)的記錄和各道路弧的記錄;每個(gè)入頂點(diǎn)的記錄包含入頂點(diǎn)編號(hào)、經(jīng)度、緯度、以它為起始點(diǎn)的道路弧個(gè)數(shù)、以它為起始點(diǎn)的各道路弧的編號(hào);每個(gè)道路弧的記錄包含道路弧編號(hào)、起始頂點(diǎn)編號(hào)、終止頂點(diǎn)編號(hào)、可通行標(biāo)識(shí)、道路弧長(zhǎng)度;地圖修編器修改編輯電子地圖一個(gè)交叉道口數(shù)據(jù)的過(guò)程包括A.經(jīng)主控制器從輸入模塊獲得道口名稱,或者該道口所在的兩條道路的名稱,從電子地圖取出地圖編輯格式數(shù)據(jù)中的該道口記錄;B.經(jīng)主控制器控制輸入模塊提示該道口各個(gè)入頂點(diǎn)的編號(hào)并從輸入模塊提取需要修改編輯的入頂點(diǎn)的編號(hào)及車輛行駛轉(zhuǎn)向限制條件;C.用地圖編輯格式數(shù)據(jù)該道口的那個(gè)入頂點(diǎn)的編號(hào)找出路徑搜索計(jì)算格式數(shù)據(jù)中該道口的那個(gè)入頂點(diǎn)為起始點(diǎn)的道路弧記錄,按車輛行駛轉(zhuǎn)向限制條件選擇對(duì)應(yīng)的道路弧記錄并將與車輛行駛轉(zhuǎn)向限制條件對(duì)應(yīng)的可通行標(biāo)識(shí)狀態(tài)寫(xiě)入電子地圖路徑搜索計(jì)算格式數(shù)據(jù)的該道路弧記錄中。
推薦的搜索器搜索具有交叉道口轉(zhuǎn)向限制條件下最短導(dǎo)航路徑的處理過(guò)程包括步驟S1記錄出發(fā)頂點(diǎn)的編號(hào)和目的地道口頂點(diǎn)的編號(hào),提取電子地圖路徑搜索計(jì)算格式數(shù)據(jù)中的所有入頂點(diǎn)記錄和道路弧記錄,建立一個(gè)頂點(diǎn)狀態(tài)表和一個(gè)道路弧狀態(tài)表;電子地圖中,每一個(gè)入頂點(diǎn)作為頂點(diǎn)狀態(tài)表中的一欄,該欄中的數(shù)據(jù)項(xiàng)有本頂點(diǎn)的編號(hào)、前點(diǎn)編號(hào)、起始頂點(diǎn)到本頂點(diǎn)的當(dāng)前路徑長(zhǎng)度、是否計(jì)算出最短路徑的狀態(tài),其中的前點(diǎn)為最短路徑中本頂點(diǎn)前的那個(gè)頂點(diǎn);電子地圖中,每一個(gè)道路弧作為道路弧狀態(tài)表中的一欄,該欄中的數(shù)據(jù)項(xiàng)有本道路弧的起始頂點(diǎn)編號(hào)、本道路弧終止頂點(diǎn)編號(hào)、本道路弧的長(zhǎng)度、本道路弧在計(jì)算中被訪問(wèn)的狀態(tài);步驟S2初始化頂點(diǎn)狀態(tài)表中所有頂點(diǎn)的前點(diǎn)編號(hào)為無(wú)效值、當(dāng)前路徑長(zhǎng)度為正無(wú)窮且狀態(tài)為未計(jì)算出最短路徑;初始化道路弧狀態(tài)表所有道路弧的狀態(tài)為未訪問(wèn);步驟S3初始化頂點(diǎn)狀態(tài)表中出發(fā)頂點(diǎn)的前點(diǎn)為出發(fā)頂點(diǎn)自身,當(dāng)前路徑長(zhǎng)度為0;步驟S4取出頂點(diǎn)狀態(tài)表中尚未計(jì)算出最短路徑且當(dāng)前路徑長(zhǎng)度最小的頂點(diǎn),若本步驟失敗,則搜索失敗退出搜索計(jì)算;若取出的頂點(diǎn)為目的地頂點(diǎn),則是搜索成功轉(zhuǎn)步驟S12;步驟S5在頂點(diǎn)狀態(tài)表中標(biāo)記步驟4取出的頂點(diǎn)的狀態(tài)為已求出最短路徑;步驟S6在道路弧狀態(tài)表中查找一條以取出的頂點(diǎn)為起始點(diǎn)且未被訪問(wèn)過(guò)的道路弧,若找不到則返回步驟S4處理頂點(diǎn)狀態(tài)表中其它頂點(diǎn);步驟S7在道路弧狀態(tài)表中標(biāo)記該道路弧的狀態(tài)為已訪問(wèn);步驟S8檢查該道路弧的可通行標(biāo)識(shí)數(shù)據(jù)項(xiàng)是否為可通行,若不可通行,則放棄對(duì)該道路弧的進(jìn)一步搜索處理,直接轉(zhuǎn)步驟S6對(duì)其它道路弧進(jìn)行處理;步驟S9檢查頂點(diǎn)狀態(tài)表中該道路弧指向的終止頂點(diǎn),若其狀態(tài)為已求出最短路徑,直接轉(zhuǎn)步驟S6對(duì)其它道路弧進(jìn)行搜索處理;步驟S10檢查頂點(diǎn)狀態(tài)表中該道路弧的起始頂點(diǎn)是否可作為它指向的終止頂點(diǎn)的前點(diǎn),不可作為前點(diǎn)則直接轉(zhuǎn)步驟S6對(duì)其它道路弧進(jìn)行搜索處理;步驟S11改寫(xiě)頂點(diǎn)狀態(tài)表中該道路弧指向的終止頂點(diǎn)的前點(diǎn)編號(hào)為該道路弧的起始頂點(diǎn)編號(hào)、該道路弧指向的終止頂點(diǎn)的當(dāng)前路徑長(zhǎng)度為該道路弧的起始頂點(diǎn)的當(dāng)前路徑長(zhǎng)度加該道路弧的長(zhǎng)度,并轉(zhuǎn)入S6對(duì)其它道路弧進(jìn)行搜索處理;步驟S12按頂點(diǎn)狀態(tài)表從目的地頂點(diǎn)向起始頂點(diǎn)回溯前點(diǎn),再做反序排列得到最短路徑上各個(gè)頂點(diǎn)的具體組成。
特別是針對(duì)不同類型道路弧應(yīng)區(qū)別對(duì)待的情形所述的道路弧記錄中包含本道路弧的道路等級(jí);搜索器在搜索具有交叉道口轉(zhuǎn)向限制條件下最短導(dǎo)航路徑的處理過(guò)程的步驟S11中,用該道路弧的道路等級(jí)調(diào)整加權(quán)系數(shù)計(jì)算該道路弧的加權(quán)長(zhǎng)度,按該道路弧的加權(quán)長(zhǎng)度替代該道路弧的長(zhǎng)度改寫(xiě)頂點(diǎn)狀態(tài)表中該道路弧指向的終止頂點(diǎn)的當(dāng)前路徑長(zhǎng)度。
本發(fā)明的提供道路導(dǎo)航路徑的裝置,使用雙線道路模型用多頂點(diǎn)的方式處理數(shù)據(jù)存儲(chǔ)器的電子地圖中對(duì)每一個(gè)道路交叉道口的數(shù)據(jù),在各道口的端口入頂點(diǎn)向其它端口駛出的道路弧引入轉(zhuǎn)向的限制特征記載在對(duì)應(yīng)的道路弧記錄中,同時(shí)也解決了城市交通中單行線道路與一般雙向行駛道路的區(qū)分問(wèn)題,搜索器在搜索處理過(guò)程中利用各道路弧記錄的轉(zhuǎn)向限制特征信息使用DijkStra算法求出最短路徑。解決了目前采用簡(jiǎn)單的路中線模型的電子地圖和采用DijkStra算法的搜索器,在道路交叉道口處設(shè)有禁止轉(zhuǎn)向限制時(shí),不能得到正確的最短路徑的問(wèn)題。本發(fā)明在現(xiàn)有技術(shù)為車輛提供道路導(dǎo)航路徑的導(dǎo)航中心裝置的基礎(chǔ)上增加地圖修編器和輸入模塊,解決了現(xiàn)實(shí)生活中經(jīng)常發(fā)生道路交叉道口處設(shè)置于禁止轉(zhuǎn)向限制的交通管制情況下必須及時(shí)修改編輯電子地圖的問(wèn)題;從而本發(fā)明的提供道路導(dǎo)航路徑的裝置能適應(yīng)道路的交通管制動(dòng)態(tài)變化,為車輛提供正確的最短道路導(dǎo)航路徑數(shù)據(jù),指引駕駛員按該導(dǎo)航路徑駕駛車輛駛向目的地。在數(shù)據(jù)存儲(chǔ)器的電子地圖中設(shè)置地圖編輯格式數(shù)據(jù)和路徑搜索計(jì)算格式數(shù)據(jù),其中地圖編輯格式的數(shù)據(jù)結(jié)構(gòu)是按人們識(shí)別地理位置的習(xí)慣又兼顧計(jì)算機(jī)處理電子地圖數(shù)據(jù)記錄的特點(diǎn)設(shè)計(jì)的;便于地圖修編器修改編輯電子地圖交叉道口數(shù)據(jù)時(shí)人機(jī)對(duì)話。路徑搜索計(jì)算格式的數(shù)據(jù)結(jié)構(gòu)是按計(jì)算機(jī)處理電子地圖數(shù)據(jù)記錄的特點(diǎn)設(shè)計(jì)的;便于搜索器進(jìn)行搜索操作。地圖修編器修改編輯電子地圖交叉道口數(shù)據(jù)的過(guò)程簡(jiǎn)單扼要,又安排輸入模塊作出明確的提示,操作人員可以迅速地將道路的交通管制動(dòng)態(tài)變化輸入到電子地圖中,從而本裝置提供導(dǎo)航路徑數(shù)據(jù)的效率高,數(shù)據(jù)有效性高。搜索器利用一個(gè)頂點(diǎn)狀態(tài)表和一個(gè)道路弧狀態(tài)表并結(jié)合道路弧的可通行標(biāo)識(shí)數(shù)據(jù)項(xiàng)將成熟的DijkStra算法成功地用于搜索具有交叉道口轉(zhuǎn)向限制條件下最短導(dǎo)航路徑,處理過(guò)程可靠性強(qiáng)。特別是道路弧記錄中包含本道路弧的道路等級(jí);搜索器在搜索處理過(guò)程中,用該道路弧的道路等級(jí)調(diào)整加權(quán)系數(shù)計(jì)算該道路弧的加權(quán)長(zhǎng)度,按該道路弧的加權(quán)長(zhǎng)度替代該道路弧的長(zhǎng)度改寫(xiě)頂點(diǎn)狀態(tài)表中該道路弧指向的終止頂點(diǎn)的當(dāng)前路徑長(zhǎng)度,使不同類型道路弧得到區(qū)別對(duì)待,可以處理大路優(yōu)先、紅綠燈少優(yōu)先、人流量小優(yōu)先等道路選擇的情形,導(dǎo)航路徑選擇靈活性好,能適合駕駛員的習(xí)慣。


圖1為現(xiàn)有技術(shù)電子地圖中采用的路中線模型的示意圖。
圖2為現(xiàn)有技術(shù)電子地圖中采用的交通網(wǎng)絡(luò)抽象圖。
圖3為現(xiàn)有技術(shù)處理一個(gè)起點(diǎn)S到終點(diǎn)E的最短路徑的示意圖。
圖4為本發(fā)明提供道路導(dǎo)航路徑的裝置一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。
圖5為本發(fā)明提供道路導(dǎo)航路徑的裝置的電子地圖中采用的雙線模型的示意圖。
圖6為本發(fā)明提供道路導(dǎo)航路徑的裝置的電子地圖中一個(gè)交叉道口的數(shù)據(jù)關(guān)系的示意圖。
圖7為本發(fā)明提供道路導(dǎo)航路徑的裝置的電子地圖中表達(dá)圖2中交通網(wǎng)絡(luò)的抽象圖。
圖8為圖4實(shí)施例的搜索器計(jì)算最短路徑的準(zhǔn)備工作流程圖。
圖9為圖4實(shí)施例的搜索器計(jì)算最短路徑的工作流程圖。
圖10為一個(gè)起點(diǎn)頂點(diǎn)1到終點(diǎn)頂點(diǎn)5的路徑示意圖。
圖11為圖4實(shí)施例的搜索器計(jì)算圖10最短路徑的頂點(diǎn)狀態(tài)表1。
圖12為圖4實(shí)施例的搜索器計(jì)算圖10最短路徑的頂點(diǎn)狀態(tài)表2。
圖13為圖4實(shí)施例的搜索器計(jì)算圖10最短路徑的頂點(diǎn)狀態(tài)表3。
圖14為圖4實(shí)施例的搜索器計(jì)算圖10最短路徑的頂點(diǎn)狀態(tài)表4。
圖15為圖4實(shí)施例的搜索器計(jì)算圖10最短路徑的頂點(diǎn)狀態(tài)表5。
圖16為圖4實(shí)施例的搜索器計(jì)算圖10最短路徑的頂點(diǎn)狀態(tài)表6。
圖17為圖4實(shí)施例的搜索器計(jì)算圖10最短路徑的頂點(diǎn)狀態(tài)表7。
圖18為圖4實(shí)施例的搜索器計(jì)算圖10最短路徑的頂點(diǎn)狀態(tài)表8。
具體實(shí)施例方式
一、實(shí)施例一本發(fā)明提供道路導(dǎo)航路徑的裝置一個(gè)實(shí)施例的結(jié)構(gòu),如圖3所示,它由主控制器10、收發(fā)器20、存有電子地圖的數(shù)據(jù)存儲(chǔ)器30、搜索器40、地圖修編器50和輸入模塊60組成。主控制器10控制收發(fā)器20、存有電子地圖的數(shù)據(jù)存儲(chǔ)器30、搜索器40、地圖修編器50并接受輸入模塊提供的修改電子地圖的數(shù)據(jù)。
收發(fā)器20采用公用的GPRS網(wǎng)絡(luò)或CDMA網(wǎng)絡(luò)移動(dòng)收發(fā)器,接收車載終端提供的車輛當(dāng)前位置及目的地信息轉(zhuǎn)交主控制器10,或?qū)⒅骺刂破?0取得的導(dǎo)航路徑數(shù)據(jù)向車載終端發(fā)送。
數(shù)據(jù)存儲(chǔ)器30存儲(chǔ)的電子地圖中采用雙線道路模型的抽象方式如圖5所示,使用道路的兩條駛向側(cè)線來(lái)更真實(shí)地反應(yīng)道路交通關(guān)系。由圖5可見(jiàn),一條雙線道路在每一個(gè)交叉道口處各道路端口將生成兩個(gè)頂點(diǎn),按照進(jìn)入和離開(kāi)交叉道口的方向,這些路口頂點(diǎn)又可分為進(jìn)入該交叉道口(以下簡(jiǎn)稱道口)的入頂點(diǎn)(圖5中的實(shí)心黑點(diǎn),以下簡(jiǎn)稱頂點(diǎn))和離開(kāi)該道口的虛擬出頂點(diǎn)(圖5中的空心點(diǎn))。從交叉道口處一個(gè)道路端口的入頂點(diǎn),分別向其它道路端口的虛擬出頂點(diǎn)各引一條虛擬的轉(zhuǎn)向道路弧連接該道路端口虛擬出頂點(diǎn)為起始點(diǎn)的道路弧,最終形成以入頂點(diǎn)為其起始點(diǎn)而以虛擬出頂點(diǎn)所在道路弧的終止點(diǎn)為其終止點(diǎn)的帶轉(zhuǎn)向關(guān)系的道路弧。來(lái)描述路口處各條道路交叉道口處的轉(zhuǎn)向關(guān)系。例如圖6所示,道路W和道路V交叉,形成交叉道口WV。從交叉道口WV處一個(gè)道路W端口的入頂點(diǎn)D1,向右側(cè)的道路V端口的虛擬出頂點(diǎn)D2引一條虛擬的轉(zhuǎn)向道路弧D1-D2連接該道路V端口虛擬出頂點(diǎn)D2為起始點(diǎn)的道路弧D2-D3,形成一條帶轉(zhuǎn)向關(guān)系的道路弧D1-D3;向前方的道路W端口的虛擬出頂點(diǎn)D4引一條虛擬的轉(zhuǎn)向道路弧D1-D4連接該道路W端口虛擬出頂點(diǎn)D4為起始點(diǎn)的道路弧D4-D5,形成一條帶轉(zhuǎn)向關(guān)系的道路弧D1-D5;向左側(cè)的道路V端口的虛擬出頂點(diǎn)D6引一條虛擬的轉(zhuǎn)向道路弧D1-D6連接該道路V端口虛擬出頂點(diǎn)D6為起始點(diǎn)的道路弧D6-D7,形成一條帶轉(zhuǎn)向關(guān)系的道路弧D1-D7;帶轉(zhuǎn)向關(guān)系的道路弧D1-D3、帶轉(zhuǎn)向關(guān)系的道路弧D1-D5和帶轉(zhuǎn)向關(guān)系的道路弧D1-D7表達(dá)了交叉道口WV處一個(gè)道路W端口的入頂點(diǎn)D1的轉(zhuǎn)向關(guān)系。同樣的道理,可以將交叉道口WV處另外三個(gè)道路端口的入頂點(diǎn)的轉(zhuǎn)向關(guān)系各用三條帶轉(zhuǎn)向關(guān)系的道路弧表達(dá)。由于帶轉(zhuǎn)向關(guān)系的道路弧隱藏了虛擬出頂點(diǎn)和虛擬的轉(zhuǎn)向道路弧,以下的說(shuō)明中將入頂點(diǎn)簡(jiǎn)稱頂點(diǎn)。電子地圖中交通網(wǎng)絡(luò)的抽象圖如圖7所示。
數(shù)據(jù)存儲(chǔ)器30存儲(chǔ)的電子地圖中對(duì)于道路、交叉道口(以下簡(jiǎn)稱道口)、頂點(diǎn)、道路弧等各類地圖元素的記錄形式有適用于編輯作業(yè)的地圖編輯格式,和適用于搜索作業(yè)的路徑搜索計(jì)算格式。電子地圖中對(duì)各類地圖元素分別進(jìn)行唯一性編號(hào),并在不同的地圖元素中建立編號(hào)的拓?fù)潢P(guān)系。
采用地圖編輯格式的地圖元素?cái)?shù)據(jù)有各條道路的道路記錄和各個(gè)道口的道口記錄。每條道路的道路記錄包含的數(shù)據(jù)項(xiàng)有道路名稱、道路編號(hào)、道路中道口的個(gè)數(shù)、起始道口編號(hào)、終點(diǎn)道口編號(hào)、中間各道口編號(hào);每個(gè)道口的道口記錄包含的數(shù)據(jù)項(xiàng)有道口名稱、道口編號(hào)、道口中頂點(diǎn)的個(gè)數(shù)、起始頂點(diǎn)編號(hào)、終點(diǎn)頂點(diǎn)編號(hào)、中間各頂點(diǎn)的編號(hào)。地圖編輯格式數(shù)據(jù)中道路元素與道口元素間的拓?fù)潢P(guān)系體現(xiàn)在各條道路的道路記錄中各個(gè)道口的編號(hào)。兩條道路如果相交,必然有同一個(gè)道口的編號(hào)出現(xiàn)在這兩條道路的道路記錄中。
采用路徑搜索計(jì)算格式的地圖元素?cái)?shù)據(jù)有各頂點(diǎn)的記錄和各道路弧的記錄。每個(gè)頂點(diǎn)的記錄包含的數(shù)據(jù)項(xiàng)有頂點(diǎn)編號(hào)、經(jīng)度、緯度、所連接的道路弧個(gè)數(shù)、所連接的各道路弧的編號(hào)。每個(gè)道路弧的記錄包含的數(shù)據(jù)項(xiàng)有道路弧編號(hào)、起始頂點(diǎn)編號(hào)、終止頂點(diǎn)編號(hào)、可通行標(biāo)識(shí)、道路弧長(zhǎng)度、道路弧其他細(xì)節(jié)數(shù)據(jù)、道路弧的道路等級(jí)。其中,可通行標(biāo)識(shí)用于表示與該道路弧相連的虛擬轉(zhuǎn)向弧是否可通行,即轉(zhuǎn)向是否受到禁止;道路弧的道路等級(jí)可以用于計(jì)算時(shí)調(diào)整對(duì)道路弧長(zhǎng)度的加權(quán)系數(shù)。
地圖編輯格式數(shù)據(jù)中的道口元素與路徑搜索計(jì)算格式數(shù)據(jù)中的頂點(diǎn)元素和道路弧元素間的拓?fù)潢P(guān)系是由地圖編輯格式數(shù)據(jù)中各個(gè)道口的道口記錄中各個(gè)頂點(diǎn)編號(hào)體現(xiàn)的,由一個(gè)道口記錄可以準(zhǔn)確地找出該道口的各個(gè)頂點(diǎn)編號(hào);在路徑搜索計(jì)算格式數(shù)據(jù)中按這些頂點(diǎn)編號(hào)可以準(zhǔn)確地找出各個(gè)頂點(diǎn)所連接的道路弧。而各個(gè)頂點(diǎn)元素間的拓?fù)潢P(guān)系則是由道路弧記錄中的起始頂點(diǎn)編號(hào)和終止頂點(diǎn)編號(hào)這兩個(gè)字段記錄的。
在得到交通管理部門對(duì)某道口進(jìn)行交通管制或解除交通管制的通知后。操作員使用輸入模塊60向主控制器10輸入命令,主控制器10啟動(dòng)地圖修編器50進(jìn)入工作狀態(tài)。地圖修編器50經(jīng)主控制器10從輸入模塊60獲得與欲修改車輛行駛轉(zhuǎn)向限制有關(guān)的道口名稱或者該道口所在的兩條道路的名稱,地圖修編器50從數(shù)據(jù)存儲(chǔ)器30中的電子地圖取出地圖編輯格式數(shù)據(jù)中的該道口記錄中各個(gè)頂點(diǎn)編號(hào),并經(jīng)主控制器10控制輸入模塊60的顯示器顯示該道口的圖形并提示各個(gè)頂點(diǎn)的編號(hào)。操作員使用輸入模塊60經(jīng)主控制器10向地圖修編器50提供需要編輯的頂點(diǎn)的編號(hào)及上述通知中禁止或解除禁止的車輛行駛轉(zhuǎn)向;地圖修編器50從數(shù)據(jù)存儲(chǔ)器30中的電子地圖地圖編輯格式數(shù)據(jù)該道口的那個(gè)頂點(diǎn)編號(hào)推導(dǎo)出路徑搜索計(jì)算格式數(shù)據(jù)的那個(gè)頂點(diǎn)后,取出路徑搜索計(jì)算格式數(shù)據(jù)中該道口的那個(gè)頂點(diǎn)為起始頂點(diǎn)的各道路弧記錄,按禁止或解除禁止的車輛行駛轉(zhuǎn)向選擇對(duì)應(yīng)的道路弧記錄并將相應(yīng)的可通行標(biāo)識(shí)狀態(tài)寫(xiě)入數(shù)據(jù)存儲(chǔ)器30的電子地圖該道路弧記錄中。
主控制器10從收發(fā)器20收到車載終端提供的車輛當(dāng)前位置及目的地信息后,利用數(shù)據(jù)存儲(chǔ)器30中的電子地圖將車輛當(dāng)前位置及目的地信息轉(zhuǎn)換為起始頂點(diǎn)和目的地頂點(diǎn),主控制器10控制搜索器40使用DijkStra算法求出最短路徑的過(guò)程里,搜索器40先記錄出發(fā)頂點(diǎn)的編號(hào)和目的地頂點(diǎn)的編號(hào),然后提取數(shù)據(jù)存儲(chǔ)器30的電子地圖路徑搜索計(jì)算格式數(shù)據(jù)中的所有頂點(diǎn)記錄和道路弧記錄,之后搜索器40如圖8所示,開(kāi)始搜索最短路徑的準(zhǔn)備工作。
步驟101建立一個(gè)頂點(diǎn)狀態(tài)表。電子地圖中的每一個(gè)頂點(diǎn)作為該表中的一欄,每欄中的數(shù)據(jù)項(xiàng)有本頂點(diǎn)的編號(hào);最短路徑中本頂點(diǎn)的前點(diǎn)編號(hào);出發(fā)頂點(diǎn)到本頂點(diǎn)的當(dāng)前路徑長(zhǎng)度;是否確定為最短路徑的狀態(tài)。
并建立一個(gè)道路弧狀態(tài)表。電子地圖中的每一個(gè)道路弧作為該表中的一欄,每欄中的數(shù)據(jù)項(xiàng)有本道路弧的起始頂點(diǎn)編號(hào);本道路弧的終止頂點(diǎn)編號(hào);本道路弧的長(zhǎng)度;本道路弧在計(jì)算中被訪問(wèn)過(guò)的狀態(tài)。
步驟102初始化頂點(diǎn)狀態(tài)表中所有頂點(diǎn)的前點(diǎn)為無(wú)效值且當(dāng)前路徑長(zhǎng)度為正無(wú)窮,狀態(tài)為未計(jì)算出最短路徑;正無(wú)窮表示尚未計(jì)算出從出發(fā)頂點(diǎn)到達(dá)各個(gè)頂點(diǎn)的任何路徑。初始化道路弧狀態(tài)表中的所有道路弧的狀態(tài)為未訪問(wèn)。
其次需要對(duì)頂點(diǎn)狀態(tài)表中的出發(fā)頂點(diǎn)做專門的初始化工作步驟103初始化頂點(diǎn)狀態(tài)表中出發(fā)頂點(diǎn)的前點(diǎn)為出發(fā)頂點(diǎn)自身,當(dāng)前路徑長(zhǎng)度為0;然后開(kāi)始搜索計(jì)算的循環(huán)過(guò)程步驟104檢查頂點(diǎn)狀態(tài)表中所有狀態(tài)為未計(jì)算出最短路徑、但當(dāng)前路徑長(zhǎng)度非正無(wú)窮的頂點(diǎn),取出其中路徑長(zhǎng)度最小的頂點(diǎn)。根據(jù)DijkStra算法該頂點(diǎn)的當(dāng)前路徑即該頂點(diǎn)的最短路徑,該最短路徑由頂點(diǎn)的前點(diǎn)決定。若查找失敗,轉(zhuǎn)步驟105;若查找成功,轉(zhuǎn)步驟106。
步驟105表示無(wú)法求出從出發(fā)頂點(diǎn)到目的地頂點(diǎn)的最短路徑,則搜索失敗退出計(jì)算。
步驟106判斷步驟4查找得到的頂點(diǎn)是否為目的地頂點(diǎn),是則表示從出發(fā)頂點(diǎn)到目的地頂點(diǎn)的最短路徑已求出,搜索成功退出計(jì)算;否則繼續(xù)搜索。
步驟107在頂點(diǎn)狀態(tài)表中標(biāo)記步驟4查找得到的頂點(diǎn)(假設(shè)編號(hào)為r)的狀態(tài)為已求出最短路徑。
步驟108在道路弧狀態(tài)表中查找一條以編號(hào)為r的頂點(diǎn)為起始頂點(diǎn)且狀態(tài)為未被訪問(wèn)的道路弧。
步驟109若步驟108查找不成功,說(shuō)明與編號(hào)為r的頂點(diǎn)相連的各個(gè)道路弧都已搜索處理完畢,則轉(zhuǎn)步驟4重新進(jìn)入循環(huán)搜索處理其它的頂點(diǎn)。
步驟110若步驟108查找成功,得到一個(gè)道路弧(假設(shè)編號(hào)為arc),在道路弧狀態(tài)表標(biāo)記編號(hào)為arc道路弧的狀態(tài)為已訪問(wèn)。
步驟111檢查編號(hào)為arc道路弧的可通行標(biāo)識(shí)數(shù)據(jù)項(xiàng)是否為可通行,若不可通行,則放棄對(duì)編號(hào)為arc道路弧的進(jìn)一步搜索處理,直接轉(zhuǎn)步驟109對(duì)其它道路弧進(jìn)行搜索處理。本步驟是DijkStra原型算法中不存在的,是解決轉(zhuǎn)向禁止條件下獲取真實(shí)的最短路徑的關(guān)鍵。
步驟112檢查頂點(diǎn)狀態(tài)表中編號(hào)為arc道路弧指向的終止頂點(diǎn)的狀態(tài),若其狀態(tài)為已求出最短路徑,直接轉(zhuǎn)步驟109對(duì)其它道路弧進(jìn)行處理。
步驟113編號(hào)為arc道路弧指向的終止頂點(diǎn)的狀態(tài)為未求出最短路徑,檢查頂點(diǎn)狀態(tài)表中編號(hào)為arc道路弧的起始頂點(diǎn)是否可作為它指向的終止頂點(diǎn)的前點(diǎn)編號(hào)為arc道路弧的起始頂點(diǎn)不可作為它指向的終止頂點(diǎn)的前點(diǎn),應(yīng)滿足下列條件(1)編號(hào)為arc道路弧指向的終止頂點(diǎn)已有一條當(dāng)前最短路徑,即前點(diǎn)有效,當(dāng)前路徑長(zhǎng)度有效;(2)編號(hào)為arc道路弧指向的終止頂點(diǎn)的當(dāng)前路徑長(zhǎng)度小于以編號(hào)為r的頂點(diǎn)為前點(diǎn)時(shí)的路徑長(zhǎng)度;即編號(hào)為arc道路弧不在其指向的終止頂點(diǎn)的最短路徑上。滿足上述條件時(shí),直接轉(zhuǎn)入步驟109對(duì)其它道路弧進(jìn)行處理。
步驟114編號(hào)為arc道路弧在其指向的終止頂點(diǎn)的最短路徑上,編號(hào)為arc道路弧的起始頂點(diǎn)即編號(hào)為r的頂點(diǎn)應(yīng)作為它指向的終止頂點(diǎn)的前點(diǎn)。更改頂點(diǎn)狀態(tài)表中編號(hào)為arc道路弧指向的終止頂點(diǎn)的前點(diǎn)為編號(hào)為r的頂點(diǎn),更改編號(hào)為arc道路弧指向的終止頂點(diǎn)的當(dāng)前路徑長(zhǎng)度為以當(dāng)前編號(hào)為r的頂點(diǎn)為前點(diǎn)時(shí)的路徑長(zhǎng)度,這個(gè)路徑長(zhǎng)度指編號(hào)為r頂點(diǎn)的路徑長(zhǎng)度與編號(hào)為arc道路弧長(zhǎng)度之和;注意當(dāng)進(jìn)行諸如大路優(yōu)先一類計(jì)算時(shí),應(yīng)依據(jù)編號(hào)為arc道路弧的道路等級(jí)對(duì)編號(hào)為arc道路弧長(zhǎng)度進(jìn)行加權(quán),即用編號(hào)為arc道路弧的道路等級(jí)調(diào)整加權(quán)系數(shù)計(jì)算編號(hào)為arc道路弧的加權(quán)長(zhǎng)度,按編號(hào)為arc道路弧的加權(quán)長(zhǎng)度替代編號(hào)為arc道路弧的長(zhǎng)度改寫(xiě)頂點(diǎn)狀態(tài)表中編號(hào)為arc道路弧指向的終止頂點(diǎn)的當(dāng)前路徑長(zhǎng)度。低等級(jí)道路加權(quán)系數(shù)均大于1,用加權(quán)系數(shù)與道路弧長(zhǎng)度相乘得到該道路弧的加權(quán)長(zhǎng)度,變相地將低等級(jí)道路的路徑長(zhǎng)度加長(zhǎng),從而在概率意義上降低將此類道路選擇為最短路徑的可能。最后轉(zhuǎn)入步驟109重新循環(huán)對(duì)其它道路弧進(jìn)行處理。
搜索器40搜索成功退出計(jì)算后,頂點(diǎn)狀態(tài)表中保存了到達(dá)目的地頂點(diǎn)的最短路徑上各個(gè)頂點(diǎn)的前點(diǎn)。搜索器40需要按頂點(diǎn)狀態(tài)表從目的地頂點(diǎn)向出發(fā)頂點(diǎn)回溯前點(diǎn),再做反序排列得到最短路徑上各個(gè)頂點(diǎn)的具體組成。
搜索器40完成上述工作后,將得到的最短路徑上各個(gè)頂點(diǎn)的具體組成數(shù)據(jù)構(gòu)成道路頂點(diǎn)序列形式的最短導(dǎo)航路徑數(shù)據(jù)提交給主控制器10。最后主控制器10根據(jù)搜索器40提交的最短路徑頂點(diǎn)編號(hào),容易從電子地圖中獲取到各頂點(diǎn)對(duì)應(yīng)的位置經(jīng)緯度值,及發(fā)生轉(zhuǎn)向的虛擬轉(zhuǎn)向弧上轉(zhuǎn)向信息,按照車載設(shè)備中道路路徑提示模塊的要求將數(shù)據(jù)封裝成一定的格式采取序列化的方式轉(zhuǎn)存到收發(fā)器20中,由收發(fā)器20以無(wú)線通信的方式傳遞給要求導(dǎo)航信息的車載設(shè)備。
為了進(jìn)一步說(shuō)明搜索器40在搜索處理過(guò)程中如何利用各道路頂點(diǎn)的轉(zhuǎn)向限制特征信息進(jìn)行搜索操作,請(qǐng)看圖10所示的搜索從出發(fā)頂點(diǎn)1到目的地頂點(diǎn)5最短路徑的實(shí)例。
圖10中,每個(gè)小圓圈表示一個(gè)頂點(diǎn),小圓圈中的數(shù)字表示該頂點(diǎn)的編號(hào);每個(gè)帶箭頭的線段表示一個(gè)道路弧,若一個(gè)線段用虛線畫(huà)出表示該道路弧不可通行,每個(gè)線段上數(shù)值表示該道路弧長(zhǎng)度。
搜索器40在完成步驟103以后,頂點(diǎn)狀態(tài)表的具體內(nèi)容如圖11所示。為節(jié)省篇幅,不單獨(dú)給出道路弧狀態(tài)表的具體內(nèi)容,請(qǐng)?jiān)陂喿x以下說(shuō)明的過(guò)程中每當(dāng)一個(gè)道路弧被訪問(wèn)之后,自行從圖10中將該道路弧作個(gè)標(biāo)記,以替代道路弧狀態(tài)表。執(zhí)行步驟104,找出存在路徑(有前點(diǎn)、路徑長(zhǎng)度有效),但狀態(tài)為未求出最短路徑的頂點(diǎn)中路徑長(zhǎng)度最小的頂點(diǎn),此時(shí)顯然為頂點(diǎn)1,此時(shí)頂點(diǎn)1的最短路徑可認(rèn)為已計(jì)算出,執(zhí)行步驟6在頂點(diǎn)狀態(tài)表中標(biāo)明頂點(diǎn)1的狀態(tài)為已求出最短路徑。兩次執(zhí)行步驟109到步驟114的循環(huán),分析頂點(diǎn)1連接的道路弧,找到從頂點(diǎn)1可到達(dá)的頂點(diǎn)2和頂點(diǎn)6。由于當(dāng)前頂點(diǎn)2和頂點(diǎn)6尚無(wú)路徑存在,因此都能以頂點(diǎn)1為前點(diǎn)生成路徑,然后頂點(diǎn)狀態(tài)表的內(nèi)容轉(zhuǎn)變?yōu)閳D12所示。
返回步驟104,此次可以找到頂點(diǎn)6,標(biāo)記其狀態(tài)為已求出最短路徑。兩次執(zhí)行步驟109到步驟114的循環(huán),分析頂點(diǎn)6連接的道路弧,找到從頂點(diǎn)6可到達(dá)的頂點(diǎn)3和頂點(diǎn)7,頂點(diǎn)3和頂點(diǎn)7目前均無(wú)路徑,因此都能以頂點(diǎn)6為前點(diǎn)分別生成路徑,然后頂點(diǎn)狀態(tài)表的內(nèi)容轉(zhuǎn)變?yōu)閳D13所示。
繼續(xù)返回步驟104,此次可以找到頂點(diǎn)2,標(biāo)記其狀態(tài)為已求出最短路徑。執(zhí)行步驟109,分析頂點(diǎn)2連接的道路弧,找到從頂點(diǎn)2可到達(dá)的頂點(diǎn)9,由于頂點(diǎn)2至頂點(diǎn)9的道路弧不可通行,因此不能以頂點(diǎn)2為前點(diǎn)生成頂點(diǎn)9的一條路徑,于步驟111返回步驟109。分析頂點(diǎn)2至頂點(diǎn)3的道路弧,以頂點(diǎn)2為前點(diǎn)可生成頂點(diǎn)3的一條路徑(該路徑長(zhǎng)度為頂點(diǎn)2的當(dāng)前路徑長(zhǎng)度加上頂點(diǎn)2->頂點(diǎn)3的道路弧長(zhǎng)度,為10),該路徑長(zhǎng)度小于以頂點(diǎn)6為前點(diǎn)的路徑長(zhǎng)度,因此必須更新頂點(diǎn)3目前的路徑,將頂點(diǎn)狀態(tài)表中頂點(diǎn)3的前點(diǎn)編號(hào)改為2、當(dāng)前路徑長(zhǎng)度改為10。然后頂點(diǎn)狀態(tài)表的內(nèi)容轉(zhuǎn)變?yōu)閳D14所示。
繼續(xù)返回步驟104,此次可以找到頂點(diǎn)7,標(biāo)記其狀態(tài)為已求出最短路徑。兩次執(zhí)行步驟109到步驟114的循環(huán),分析頂點(diǎn)7連接的道路弧,找到從頂點(diǎn)7可到達(dá)的頂點(diǎn)4和頂點(diǎn)8,頂點(diǎn)4和頂點(diǎn)8目前均無(wú)路徑,因此能以7為前點(diǎn)分別生成路徑。然后頂點(diǎn)狀態(tài)表的內(nèi)容轉(zhuǎn)變?yōu)閳D15所示。
返回步驟104,此次可以找到頂點(diǎn)3,標(biāo)記其狀態(tài)為已求出最短路徑。執(zhí)行步驟109,分析頂點(diǎn)3連接的道路弧,找到從頂點(diǎn)3可到達(dá)的頂點(diǎn)4,頂點(diǎn)4當(dāng)前存在以頂點(diǎn)7為前點(diǎn)的路徑(長(zhǎng)度為20),而以頂點(diǎn)3為前點(diǎn)的路徑長(zhǎng)度為10+6=16,更短,故步驟114需要將頂點(diǎn)狀態(tài)表中頂點(diǎn)4的前點(diǎn)編號(hào)改為3、當(dāng)前路徑長(zhǎng)度改為16。然后頂點(diǎn)狀態(tài)表的內(nèi)容轉(zhuǎn)變?yōu)閳D16所示。
執(zhí)行步驟104,此次可以找到頂點(diǎn)8,標(biāo)記其狀態(tài)為已求出最短路徑。執(zhí)行步驟109,分析頂點(diǎn)8連接的道路弧,找到從頂點(diǎn)8可到達(dá)的頂點(diǎn)5,頂點(diǎn)5目前均無(wú)路徑,可以以頂點(diǎn)8為起點(diǎn)生成一條路徑,步驟114后頂點(diǎn)狀態(tài)表的內(nèi)容轉(zhuǎn)變?yōu)閳D17所示。
繼續(xù)返回步驟104,此次可以找到頂點(diǎn)4,標(biāo)記其狀態(tài)為已求出最短路徑。執(zhí)行步驟109,分析頂點(diǎn)4連接的道路弧,找到從頂點(diǎn)4可到達(dá)的頂點(diǎn)5,頂點(diǎn)5當(dāng)前存在以頂點(diǎn)8為前點(diǎn)的路徑(長(zhǎng)度為24),而以頂點(diǎn)4為前點(diǎn)的路徑長(zhǎng)度為16+2=18,更短,故步驟114需要將頂點(diǎn)5的前點(diǎn)編號(hào)更新為4,當(dāng)前路徑長(zhǎng)度更新為18,然后頂點(diǎn)狀態(tài)表的內(nèi)容轉(zhuǎn)變?yōu)閳D18所示。
返回步驟104,此次可以找到頂點(diǎn)5,由于頂點(diǎn)5即為目的地頂點(diǎn),因此步驟6判定從頂點(diǎn)1到頂點(diǎn)5的最短路徑搜索計(jì)算完成,轉(zhuǎn)到步驟107退出搜索計(jì)算。
搜索器40利用圖18所示頂點(diǎn)狀態(tài)表的內(nèi)容從頂點(diǎn)5開(kāi)始回溯前點(diǎn),可得頂點(diǎn)5->頂點(diǎn)4->頂點(diǎn)3->頂點(diǎn)2->頂點(diǎn)1,反序即可得到所求最短路徑頂點(diǎn)1->頂點(diǎn)2->頂點(diǎn)3->頂點(diǎn)4->頂點(diǎn)5提交給主控制器1。
回顧圖10,我們可以直觀地看出,若頂點(diǎn)2->頂點(diǎn)9可以通行的話,最短路徑應(yīng)該為頂點(diǎn)1->頂點(diǎn)2->頂點(diǎn)9->頂點(diǎn)4->頂點(diǎn)5,路徑長(zhǎng)度為17。本例中頂點(diǎn)2->頂點(diǎn)9不可以通行,搜索器40得到的最短路徑完全符合圖10的情況。
以上所述,僅為本發(fā)明較佳實(shí)施例,不以此限定本發(fā)明實(shí)施的范圍,依本發(fā)明的技術(shù)方案及說(shuō)明書(shū)內(nèi)容所作的等效變化與修飾,皆應(yīng)屬于本發(fā)明涵蓋的范圍。
權(quán)利要求
1.一種提供道路導(dǎo)航路徑的裝置,包括主控制器、收發(fā)器、數(shù)據(jù)存儲(chǔ)器、搜索器;數(shù)據(jù)存儲(chǔ)器存有電子地圖;收發(fā)器在主控制器控制下接收車載終端提供的車輛當(dāng)前位置及目的地信息轉(zhuǎn)交主控制器、將主控制器取得的導(dǎo)航路徑數(shù)據(jù)向車載終端發(fā)送;搜索器在主控制器控制下提取數(shù)據(jù)存儲(chǔ)器的電子地圖數(shù)據(jù)按車輛當(dāng)前位置及目的地計(jì)算出道路頂點(diǎn)序列形式的導(dǎo)航路徑數(shù)據(jù)提交主控制器;其特征在于所述數(shù)據(jù)存儲(chǔ)器的電子地圖中包含對(duì)每一個(gè)交叉道口處各道路端口進(jìn)入該道口的入頂點(diǎn)記錄及各道路端口入頂點(diǎn)對(duì)應(yīng)的帶有轉(zhuǎn)向限制特征的道路弧記錄;它還包括輸入模塊和地圖修編器;地圖修編器在主控制器的控制下,接收輸入模塊提供的交叉道口的各道路端口的轉(zhuǎn)向限制信息修改編輯數(shù)據(jù)存儲(chǔ)器中電子地圖該交叉道口對(duì)應(yīng)入頂點(diǎn)的道路弧記錄;搜索器利用各道路端口入頂點(diǎn)對(duì)應(yīng)的道路弧記錄的轉(zhuǎn)向限制特征,使用DijkStra算法求出在具有交叉道口轉(zhuǎn)向限制條件下的最短導(dǎo)航路徑數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的一種提供道路導(dǎo)航路徑的裝置,其特征在于所述數(shù)據(jù)存儲(chǔ)器的電子地圖中有地圖編輯格式數(shù)據(jù)和路徑搜索計(jì)算格式數(shù)據(jù);地圖編輯格式數(shù)據(jù)有各條道路的道路記錄和各個(gè)道口的道口記錄,每條道路的道路記錄包含道路名稱、道路編號(hào)、道路中道口的個(gè)數(shù)、道路中各道口的編號(hào);每個(gè)道口的道口記錄包含道口名稱、道口編號(hào)、道口中入頂點(diǎn)的個(gè)數(shù)、道口中各入頂點(diǎn)的編號(hào);路徑搜索計(jì)算格式數(shù)據(jù)有各入頂點(diǎn)的記錄和各道路弧的記錄;每個(gè)入頂點(diǎn)的記錄包含入頂點(diǎn)編號(hào)、經(jīng)度、緯度、以它為起始點(diǎn)的道路弧個(gè)數(shù)、以它為起始點(diǎn)的各道路弧的編號(hào);每個(gè)道路弧的記錄包含道路弧編號(hào)、起始頂點(diǎn)編號(hào)、終止頂點(diǎn)編號(hào)、可通行標(biāo)識(shí)、道路弧長(zhǎng)度;地圖修編器修改編輯電子地圖一個(gè)交叉道口數(shù)據(jù)的過(guò)程包括A.經(jīng)主控制器從輸入模塊獲得道口名稱,或者該道口所在的兩條道路的名稱,從電子地圖取出地圖編輯格式數(shù)據(jù)中的該道口記錄;B.經(jīng)主控制器控制輸入模塊提示該道口各個(gè)入頂點(diǎn)的編號(hào)并從輸入模塊提取需要修改編輯的入頂點(diǎn)的編號(hào)及車輛行駛轉(zhuǎn)向限制條件;C.用地圖編輯格式數(shù)據(jù)該道口的那個(gè)入頂點(diǎn)的編號(hào)找出路徑搜索計(jì)算格式數(shù)據(jù)中該道口的那個(gè)入頂點(diǎn)為起始點(diǎn)的道路弧記錄,按車輛行駛轉(zhuǎn)向限制條件選擇對(duì)應(yīng)的道路弧記錄并將與車輛行駛轉(zhuǎn)向限制條件對(duì)應(yīng)的可通行標(biāo)識(shí)狀態(tài)寫(xiě)入電子地圖路徑搜索計(jì)算格式數(shù)據(jù)的該道路弧記錄中。
3.根據(jù)權(quán)利要求2所述的一種提供道路導(dǎo)航路徑的裝置,其特征在于所述的搜索器搜索具有交叉道口轉(zhuǎn)向限制條件下最短導(dǎo)航路徑的處理過(guò)程包括步驟S1記錄出發(fā)頂點(diǎn)的編號(hào)和目的地道口頂點(diǎn)的編號(hào),提取電子地圖路徑搜索計(jì)算格式數(shù)據(jù)中的所有入頂點(diǎn)記錄和道路弧記錄,建立一個(gè)頂點(diǎn)狀態(tài)表和一個(gè)道路弧狀態(tài)表;電子地圖中,每一個(gè)入頂點(diǎn)作為頂點(diǎn)狀態(tài)表中的一欄,該欄中的數(shù)據(jù)項(xiàng)有本頂點(diǎn)的編號(hào)、前點(diǎn)編號(hào)、起始頂點(diǎn)到本頂點(diǎn)的當(dāng)前路徑長(zhǎng)度、是否計(jì)算出最短路徑的狀態(tài),其中的前點(diǎn)為最短路徑中本頂點(diǎn)前的那個(gè)頂點(diǎn);電子地圖中,每一個(gè)道路弧作為道路弧狀態(tài)表中的一欄,該欄中的數(shù)據(jù)項(xiàng)有本道路弧的起始頂點(diǎn)編號(hào)、本道路弧終止頂點(diǎn)編號(hào)、本道路弧的長(zhǎng)度、本道路弧在計(jì)算中被訪問(wèn)的狀態(tài);步驟S2初始化頂點(diǎn)狀態(tài)表中所有頂點(diǎn)的前點(diǎn)編號(hào)為無(wú)效值、當(dāng)前路徑長(zhǎng)度為正無(wú)窮且狀態(tài)為未計(jì)算出最短路徑;初始化道路弧狀態(tài)表所有道路弧的為未訪問(wèn);步驟S3初始化頂點(diǎn)狀態(tài)表中出發(fā)頂點(diǎn)的前點(diǎn)為出發(fā)頂點(diǎn)自身,當(dāng)前路徑長(zhǎng)度為0;步驟S4取出頂點(diǎn)狀態(tài)表中尚未計(jì)算出最短路徑且當(dāng)前路徑長(zhǎng)度最小的頂點(diǎn),若本步驟失敗,則搜索失敗退出搜索計(jì)算;若取出的頂點(diǎn)為目的地頂點(diǎn),則是搜索成功轉(zhuǎn)步驟S12;步驟S5在頂點(diǎn)狀態(tài)表中標(biāo)記步驟4取出的頂點(diǎn)的狀態(tài)為已求出最短路徑;步驟S6在道路弧狀態(tài)表中查找一條以取出的頂點(diǎn)為起始點(diǎn)且未被訪問(wèn)過(guò)的道路弧,若找不到則返回步驟S4處理頂點(diǎn)狀態(tài)表中其它頂點(diǎn);步驟S7在道路弧狀態(tài)表中標(biāo)記該道路弧的狀態(tài)為已訪問(wèn);步驟S8檢查該道路弧的可通行標(biāo)識(shí)數(shù)據(jù)項(xiàng)是否為可通行,若不可通行,則放棄對(duì)該道路弧的進(jìn)一步搜索處理,直接轉(zhuǎn)步驟S6對(duì)其它道路弧進(jìn)行處理;步驟S9檢查頂點(diǎn)狀態(tài)表中該道路弧指向的終止頂點(diǎn),若其狀態(tài)為已求出最短路徑,直接轉(zhuǎn)步驟S6對(duì)其它道路弧進(jìn)行搜索處理;步驟S10檢查頂點(diǎn)狀態(tài)表中該道路弧的起始頂點(diǎn)是否可作為它指向的終止頂點(diǎn)的前點(diǎn),不可作為前點(diǎn)則直接轉(zhuǎn)步驟S6對(duì)其它道路弧進(jìn)行搜索處理;步驟S11改寫(xiě)頂點(diǎn)狀態(tài)表中該道路弧指向的終止頂點(diǎn)的前點(diǎn)編號(hào)為該道路弧的起始頂點(diǎn)編號(hào)、該道路弧指向的終止頂點(diǎn)的當(dāng)前路徑長(zhǎng)度為該道路弧的起始頂點(diǎn)的當(dāng)前路徑長(zhǎng)度加該道路弧的長(zhǎng)度,并轉(zhuǎn)入S6對(duì)其它道路弧進(jìn)行搜索處理;步驟S12按頂點(diǎn)狀態(tài)表從目的地頂點(diǎn)向起始頂點(diǎn)回溯前點(diǎn),再做反序排列得到最短路徑上各個(gè)頂點(diǎn)的具體組成。
4.根據(jù)權(quán)利要求3所述的一種提供道路導(dǎo)航路徑的裝置,其特征在于所述的道路弧記錄中包含本道路弧的道路等級(jí);搜索器在搜索具有交叉道口轉(zhuǎn)向限制條件下最短導(dǎo)航路徑的處理過(guò)程的步驟S11中,用該道路弧的道路等級(jí)調(diào)整加權(quán)系數(shù)計(jì)算該道路弧的加權(quán)長(zhǎng)度,按該道路弧的加權(quán)長(zhǎng)度替代該道路弧的長(zhǎng)度改寫(xiě)頂點(diǎn)狀態(tài)表中該道路弧指向的終止頂點(diǎn)的當(dāng)前路徑長(zhǎng)度。
全文摘要
本發(fā)明一種提供道路導(dǎo)航路徑的裝置,涉及給車輛傳送導(dǎo)航指示的道路交通控制設(shè)備。其數(shù)據(jù)存儲(chǔ)器的電子地圖中包含對(duì)每一個(gè)交叉道口處各道路端口進(jìn)入該道口的入頂點(diǎn)記錄及各道路端口入頂點(diǎn)對(duì)應(yīng)的帶有轉(zhuǎn)向限制特征的道路弧記錄。主控制器控制地圖修編器,按輸入模塊提供的交叉道口各端口的轉(zhuǎn)向限制信息修改編輯數(shù)據(jù)存儲(chǔ)器中電子地圖該交叉道口對(duì)應(yīng)入頂點(diǎn)的道路弧數(shù)據(jù);控制收發(fā)器接收車輛當(dāng)前位置及目的地信息、將導(dǎo)航路徑數(shù)據(jù)向車載終端發(fā)送;控制搜索器提取電子地圖數(shù)據(jù)利用各道路弧的轉(zhuǎn)向限制特征使用Di jkStra算法計(jì)算出頂點(diǎn)序列形式的最短導(dǎo)航路徑數(shù)據(jù)。解決了導(dǎo)航裝置不能處理交叉道口有禁止轉(zhuǎn)向限制的最短導(dǎo)航路徑問(wèn)題。
文檔編號(hào)G01C21/34GK1920483SQ20051004447
公開(kāi)日2007年2月28日 申請(qǐng)日期2005年8月25日 優(yōu)先權(quán)日2005年8月25日
發(fā)明者時(shí)宜, 韋昌榮, 許寧, 陳典全, 陸云燕 申請(qǐng)人:廈門雅迅網(wǎng)絡(luò)股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1