專利名稱:一種導(dǎo)航用道路拓?fù)鋽?shù)據(jù)模型和計(jì)算方法
技術(shù)領(lǐng)域:
本發(fā)明涉及導(dǎo)航相關(guān)的應(yīng)用技術(shù)領(lǐng)域,尤旨一種利用集中在導(dǎo) 航專用的道路拓?fù)鋽?shù)據(jù)的分析和提取方法,并以此建立數(shù)據(jù)模型, 用于導(dǎo)航地圖數(shù)據(jù)中能處理大面積,長距離的道路分析計(jì)算的數(shù)據(jù) 模型和計(jì)算方法。
背景技術(shù):
導(dǎo)航地圖數(shù)據(jù)中,道路拓?fù)渚W(wǎng)絡(luò)是核心數(shù)據(jù),為導(dǎo)航的若干主 體功能,比如路線規(guī)劃和實(shí)時(shí)導(dǎo)航提供數(shù)據(jù)基礎(chǔ)。隨著公路里程數(shù) 的增加,道路網(wǎng)絡(luò)的日益復(fù)雜,在大面積地理范圍內(nèi)所覆蓋的道路 拓?fù)涞臄?shù)據(jù)量相當(dāng)巨大,相對(duì)于導(dǎo)航嵌入式設(shè)備的處理能力局限性, 需要一種能夠處理大面積,長距離的道路分析計(jì)算的數(shù)據(jù)模型和計(jì)算方法;從而在合理的時(shí)間和成本內(nèi)達(dá)到合理的分析計(jì)算結(jié)果。 發(fā)明內(nèi)容為了克服上述不足之處,本發(fā)明的主要目的旨在提供一種道路 數(shù)據(jù)建模系統(tǒng),既能適應(yīng)大容量的道路數(shù)據(jù),長距離的路線計(jì)算, 和道路數(shù)據(jù)的增量更新,又能確保整體道路網(wǎng)絡(luò)的連通性的一種導(dǎo) 航用道路拓?fù)鋽?shù)據(jù)模型和計(jì)算方法。本發(fā)明要解決的技術(shù)問題是主要解決如何通過多層多塊道路 網(wǎng)絡(luò)數(shù)據(jù)的分割存儲(chǔ)和局部引用,做到路線計(jì)算過程中的有限資源
消耗,和道路網(wǎng)絡(luò)數(shù)據(jù)的增量更新問題;如何通過多層多塊的立體 道路數(shù)據(jù)的靜態(tài)預(yù)統(tǒng)計(jì),保留路線計(jì)算的啟發(fā)性數(shù)據(jù),提高路線計(jì) 算的效率問題;如何通過多層多塊的立體道路數(shù)據(jù)的選擇性聯(lián)接, 實(shí)現(xiàn)合理的長距離大范圍的路線計(jì)算等有關(guān)技術(shù)問題。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是該方法通過路線規(guī) 劃和實(shí)時(shí)導(dǎo)航提供數(shù)據(jù)基礎(chǔ),完成導(dǎo)航地圖數(shù)據(jù)中道路拓?fù)渚W(wǎng)絡(luò)的核 心數(shù)據(jù),該方法利用道路網(wǎng)絡(luò)的各種屬性數(shù)據(jù),包括等級(jí),平均車 速,行政區(qū)劃從屬,交通功能,道路鏈路之間的聯(lián)接節(jié)點(diǎn),將數(shù)據(jù)容 量的平面道路網(wǎng)絡(luò)轉(zhuǎn)換成多層多塊的立體道路網(wǎng)絡(luò),并標(biāo)記出各層各 塊道路鏈路之間的聯(lián)接節(jié)點(diǎn),實(shí)現(xiàn)整體道路網(wǎng)絡(luò)的連通性;通過多層 多塊道路網(wǎng)絡(luò)數(shù)據(jù)的分割存儲(chǔ)和局部引用,實(shí)現(xiàn)路線計(jì)算過程中的有 限資源消耗,和道路網(wǎng)絡(luò)數(shù)據(jù)的增量更新;通過多層多塊的立體道路 數(shù)據(jù)的靜態(tài)預(yù)統(tǒng)計(jì),保留路線計(jì)算的啟發(fā)性數(shù)據(jù);通過多層多塊的立 體道路數(shù)據(jù)的選擇性聯(lián)接,實(shí)現(xiàn)合理的長距離大范圍的路線計(jì)算;該 數(shù)據(jù)模型和計(jì)算方法至少包括分層抽取算法、道路聯(lián)通性計(jì)算函數(shù)、 層次相鄰節(jié)點(diǎn)轉(zhuǎn)換表、道路網(wǎng)絡(luò)的行政區(qū)劃提取算法和路網(wǎng)出入間的 最小代價(jià)算法;其中所述分層抽取算法是用每個(gè)層次的道路網(wǎng)絡(luò)的自身連通性,不 同層次間的道路網(wǎng)絡(luò)為切換,切換的地點(diǎn)是不同鏈路的聯(lián)接節(jié)點(diǎn); 該開發(fā)對(duì)應(yīng)的分層抽取算法的具體工作步驟是-步驟1.初始化步驟2.設(shè)計(jì)聯(lián)通性函數(shù) 執(zhí)行完初始化模塊后,則進(jìn)入設(shè)計(jì)聯(lián)通性函數(shù)模塊,設(shè)計(jì)出 聯(lián)通性函數(shù);步驟3.設(shè)定分層集合S 執(zhí)行完設(shè)計(jì)聯(lián)通性函數(shù)模塊后,則進(jìn)入設(shè)定分層集合S模塊, 并且初始化為空集合;
步驟4.尋找符合當(dāng)前分層要求的鏈路L 執(zhí)行完設(shè)定分層集合S模塊后,則進(jìn)入尋找符合當(dāng)前分層要 求的鏈路L模塊,在原始道路網(wǎng)絡(luò)中尋找到一條符合當(dāng)前分層要求 的鏈路L,將L加到集合S; 步驟5.判斷集合S為空 執(zhí)行完尋找符合當(dāng)前分層要求的鏈路L模塊后,則進(jìn)入判斷 集合S為空模塊?如果集合S為非空,則進(jìn)入S為非空,將相同層 次的鏈路集合加到S模塊,假如S非空,取出一條鏈路Li,以Li 為起點(diǎn),根據(jù)聯(lián)通性函數(shù),將可達(dá)到的所有相同層次的鏈路 Lj, Lk, Lm,….集合加到S,并將Li設(shè)定成已訪問;如果集合S為空, 則進(jìn)入S為空,結(jié)束計(jì)算模塊; 步驟6.循環(huán)執(zhí)行 執(zhí)行完S為非空,將相同層次的鏈路集合加到S模塊后,則 反饋進(jìn)入尋找符合當(dāng)前分層要求的鏈路L模塊的輸入端,重復(fù)步驟 4,直到S為空結(jié)束計(jì)算;步驟7. S為空,結(jié)束計(jì)算;所述道路聯(lián)通性計(jì)算函數(shù)用綜合考慮節(jié)點(diǎn)聯(lián)通性,交通功能和 交通規(guī)則的限制,判斷出從該條鏈路是否經(jīng)過若干條中間鏈路到達(dá) 目標(biāo)鏈路, 一條鏈路必定有兩個(gè)節(jié)點(diǎn),而節(jié)點(diǎn)可以聯(lián)接若干條鏈路, 鏈路到鏈路的訪問是鏈路到節(jié)點(diǎn)到鏈路的數(shù)據(jù)鏈條;該設(shè)計(jì)道路聯(lián) 通性計(jì)算函數(shù)的具體工作步驟是-步驟l.初始化步驟2.取兩端的節(jié)點(diǎn)Nil, Ni2執(zhí)行完初始化模塊后,則進(jìn)入取兩端的節(jié)點(diǎn)Nil, Ni2,以該 條鏈路Li為起點(diǎn),得到其兩端的節(jié)點(diǎn)Nil, Ni2; 步驟3.節(jié)點(diǎn)擴(kuò)展 執(zhí)行完取兩端的節(jié)點(diǎn)Nil, Ni2模塊后,則進(jìn)入節(jié)點(diǎn)擴(kuò)展模塊, 參考Li的交通功能和規(guī)則限制,假如Li是專用道,那么根據(jù)數(shù)個(gè)節(jié)點(diǎn)都擴(kuò)展;步驟4.找聯(lián)接的所有鏈路 執(zhí)行完節(jié)點(diǎn)擴(kuò)展模塊后,則進(jìn)入找聯(lián)接的所有鏈路模塊,從 MX擴(kuò)展,找到與NiX聯(lián)接的所有鏈路,根據(jù)節(jié)點(diǎn)的轉(zhuǎn)向限制,確 定從Li切換到Lj所有行駛的鏈路,這個(gè)Lj集合就是Li通過Ni 可聯(lián)通的鏈路集合;所述層次相鄰節(jié)點(diǎn)轉(zhuǎn)換表是用不同層次中相鄰的可聯(lián)通的鏈路 之間的節(jié)點(diǎn)叫做層次相鄰節(jié)點(diǎn),在路線計(jì)算過程中可利用這些節(jié)點(diǎn) 切換不同層次的道路網(wǎng)絡(luò);設(shè)計(jì)該層次相鄰節(jié)點(diǎn)轉(zhuǎn)換表,將每個(gè)層 次的道路網(wǎng)絡(luò)中的節(jié)點(diǎn)分層4個(gè)類型,包括層次內(nèi)部節(jié)點(diǎn);層 次相鄰出入節(jié)點(diǎn);層次相鄰出節(jié)點(diǎn);和層次相鄰入節(jié)點(diǎn);所述道路網(wǎng)絡(luò)的行政區(qū)劃提取算法的具體工作步驟是步驟1.初始化步驟2.設(shè)定行政區(qū)劃層次執(zhí)行完初始化模塊后,則進(jìn)入設(shè)定行政區(qū)劃層次模塊,設(shè)定該 個(gè)行政區(qū)劃層次省、市、區(qū)縣,在道路網(wǎng)絡(luò)內(nèi)找到該條屬于該區(qū)劃的鏈路,加入空集合S;步驟3.判斷集合S為空?qǐng)?zhí)行完設(shè)定行政區(qū)劃層次模塊后,則進(jìn)入判斷集合s為空模塊?如果集合S為非空,則進(jìn)入S為非空,取一條鏈路Li模塊,如 果集合S非空,從中獲取一條鏈路Li,并把Li從S減除,標(biāo)記為 已訪問;并以Li為起點(diǎn),根據(jù)當(dāng)前設(shè)定的行政區(qū)劃代碼,通過廣度 優(yōu)先搜索,和聯(lián)通性計(jì)算得到相關(guān)的鏈路集合Lj, Lk, Lm, Ln, , 加入集合S;如果集合S為空,則進(jìn)入S為空,結(jié)束計(jì)算模塊; 步驟4.循環(huán)執(zhí)行 執(zhí)行完S為非空,取一條鏈路Li模塊后,則反饋進(jìn)入判斷 集合S為空模塊的輸入端,重復(fù)步驟3,直到集合S為空,結(jié)束計(jì) 算; 步驟5. S為空,結(jié)束計(jì)算;所述路網(wǎng)出入間的最小代價(jià)算法通過路網(wǎng)內(nèi)部鏈路計(jì)算的路 線代價(jià)來實(shí)現(xiàn),該路網(wǎng)出入間的最小代價(jià)算法的具體工作步驟是 步驟1.初始化步驟2.收集路網(wǎng)C所有非內(nèi)部節(jié)點(diǎn)執(zhí)行完初始化模塊后,則進(jìn)入收集路網(wǎng)c所有非內(nèi)部節(jié)點(diǎn)模 塊;收集路網(wǎng)C的所有非內(nèi)部節(jié)點(diǎn),按照入和出的功能分為兩個(gè) 集合,入口節(jié)點(diǎn)Sn,出口節(jié)點(diǎn)En; 步驟3.取兩者不相同的節(jié)點(diǎn)執(zhí)行完收集路網(wǎng)C所有非內(nèi)部節(jié)點(diǎn)模塊后,則進(jìn)入取兩者不 相同的節(jié)點(diǎn)模塊,從入口節(jié)點(diǎn)集合中任取節(jié)點(diǎn)Sni,從出口節(jié)點(diǎn) 集合中任取節(jié)點(diǎn)Eni,并且兩者不相同; 步驟4.尋找最小代價(jià)的鏈路執(zhí)行完取兩者不相同的節(jié)點(diǎn)模塊后,則進(jìn)入尋找最小代價(jià)的 鏈路模塊,將Sni當(dāng)作起點(diǎn),Eni當(dāng)作終點(diǎn),通過路線計(jì)算方法, 在本網(wǎng)絡(luò)內(nèi)尋找最小代價(jià)的鏈路,使得Sni到Eni聯(lián)通; 步驟5.建立最小代價(jià)的參考條目執(zhí)行完尋找最小代價(jià)的鏈路模塊后,則進(jìn)入建立最小代價(jià)的 參考條目模塊,建立以入口節(jié)點(diǎn)集合中任取節(jié)點(diǎn)Sni-〉出口節(jié)點(diǎn) 集合中任取節(jié)點(diǎn)Eni二最小代價(jià)的參考條目; 步驟6.判斷是否組合計(jì)算過執(zhí)行完建立最小代價(jià)的參考條目模塊后,則進(jìn)入判斷是否組 合計(jì)算過模塊? 步驟7.循環(huán)執(zhí)行如果非兩個(gè)集合的節(jié)點(diǎn)都組合計(jì)算過,則反饋進(jìn)入取兩者不 相同的節(jié)點(diǎn)模塊,重復(fù)步驟3直到兩個(gè)集合的節(jié)點(diǎn)都組合計(jì)算過; 如果是兩個(gè)集合的節(jié)點(diǎn)都組合計(jì)算過,則進(jìn)入形成最小代價(jià)參考 表模塊;
步驟8.形成最小代價(jià)參考表最后形成入口節(jié)點(diǎn)集合中任取節(jié)點(diǎn)Sni到出口節(jié)點(diǎn)集合中任 取節(jié)點(diǎn)Eni的最小代價(jià)參考表。所述的一種導(dǎo)航用道路拓?fù)鋽?shù)據(jù)模型和計(jì)算方法的道路聯(lián)通 性計(jì)算函數(shù)中的專用道或?yàn)閱蜗虻缆坊驗(yàn)閱蜗蚪剐旭?;所述?道路聯(lián)通性計(jì)算函數(shù)中的數(shù)據(jù)從Nil擴(kuò)展或?yàn)閺腘i2擴(kuò)展,否則 兩個(gè)節(jié)點(diǎn)都擴(kuò)展。本發(fā)明的有益效果是該方法利用了道路網(wǎng)絡(luò)的各種屬性數(shù) 據(jù),比如等級(jí),平均車速,行政區(qū)劃從屬,交通功能,道路鏈路 之間的聯(lián)接節(jié)點(diǎn)等,將任意數(shù)據(jù)容量的平面道路網(wǎng)絡(luò)轉(zhuǎn)換成多層 多塊的立體道路網(wǎng)絡(luò),并標(biāo)記出各層各塊道路鏈路之間的聯(lián)接節(jié) 點(diǎn),確保整體道路網(wǎng)絡(luò)的連通性;通過多層多塊道路網(wǎng)絡(luò)數(shù) 據(jù)的分割存儲(chǔ)和局部引用,做到路線計(jì)算過程中的有限資源消耗, 和道路網(wǎng)絡(luò)數(shù)據(jù)的增量更新;通過多層多塊的立體道路數(shù)據(jù)的靜 態(tài)預(yù)統(tǒng)計(jì),保留了路線計(jì)算的啟發(fā)性數(shù)據(jù),提高了路線計(jì)算的效 率;通過多層多塊的立體道路數(shù)據(jù)的選擇性聯(lián)接,實(shí)現(xiàn)了合理的 長距離大范圍的路線計(jì)算,具有在合理的時(shí)間和成本內(nèi)達(dá)到合理 的分析計(jì)算結(jié)果等優(yōu)點(diǎn)。
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)一步說明。附圖1為本發(fā)明整體結(jié)構(gòu)方框示意圖;附圖2為本發(fā)明分層抽取算法流程結(jié)構(gòu)方框示意圖;附圖3為本發(fā)明道路聯(lián)通性計(jì)算函數(shù)結(jié)構(gòu)方框示意圖;附圖4為本發(fā)明層次相鄰節(jié)點(diǎn)轉(zhuǎn)換表結(jié)構(gòu)方框示意圖;附圖5為本發(fā)明道路網(wǎng)絡(luò)的行政區(qū)劃提取算法流程結(jié)構(gòu)方框示意附圖6為本發(fā)明路網(wǎng)出入間的最小代價(jià)算法流程結(jié)構(gòu)方框示意圖;附圖中標(biāo)號(hào)說明l一數(shù)據(jù)模型和計(jì)算方法; IO—分層抽取算法;101— 初始化;102— 設(shè)計(jì)聯(lián)通性函數(shù);103— 設(shè)定分層集合S;104— 尋找符合當(dāng)前分層要求的鏈路L;105— 集合S為空;106— S為非空,將相同層次的鏈路集合加到S;107— S為空,結(jié)束計(jì)算; 20—道路聯(lián)通性計(jì)算函數(shù);201— 初始化;202— 取兩端的節(jié)點(diǎn)Nil, Ni2;203— 節(jié)點(diǎn)擴(kuò)展;204— 找聯(lián)接的所有鏈路30—層次相鄰節(jié)點(diǎn)轉(zhuǎn)換表;301— 層次內(nèi)部節(jié)點(diǎn);302— 層次相鄰出入節(jié)點(diǎn);303— 層次相鄰出節(jié)點(diǎn);304— 層次相鄰入節(jié)點(diǎn);4—道路網(wǎng)絡(luò)的行政區(qū)劃提取算法;401— 初始化;402— 設(shè)定行政區(qū)劃層次;403— 集合S為空;
404— S為非空,取一條鏈路Li;405— S為空,結(jié)束計(jì)算;5—路網(wǎng)出入間的最小代價(jià)算法;501— 初始化;502— 收集路網(wǎng)C所有非內(nèi)部節(jié)點(diǎn);503— 取兩者不相同的節(jié)點(diǎn);504— 尋找最小代價(jià)的鏈路;505— 建立最小代價(jià)的參考條目;506— 組合計(jì)算過;507— 形成最小代價(jià)參考表;具體實(shí)施方式
請(qǐng)參閱附圖l、 2、 3、 4、 5、 6所示,本發(fā)明的方法利用了道路網(wǎng)絡(luò)的各種屬性數(shù)據(jù),比如等級(jí),平均車速,行政區(qū)劃從屬,交通功能, 道路鏈路之間的聯(lián)接節(jié)點(diǎn)等,將任意數(shù)據(jù)容量的平面道路網(wǎng)絡(luò)轉(zhuǎn)換成 多層多塊的立體道路網(wǎng)絡(luò),并標(biāo)記出各層各塊道路鏈路之間的聯(lián)接節(jié) 點(diǎn),確保整體道路網(wǎng)絡(luò)的連通性。 ' 通過多層多塊道路網(wǎng)絡(luò)數(shù)據(jù)的分割存儲(chǔ)和局部引用,做到路線計(jì)算 過程中的有限資源消耗,和道路網(wǎng)絡(luò)數(shù)據(jù)的增量更新。通過多層多塊的立體道路數(shù)據(jù)的靜態(tài)預(yù)統(tǒng)計(jì),保留了路線計(jì)算的 啟發(fā)性數(shù)據(jù),提高了路線計(jì)算的效率。通過多層多塊的立體道路數(shù)據(jù)的選擇性聯(lián)接,實(shí)現(xiàn)了合理的長距 離大范圍的路線計(jì)算。本發(fā)明的已有技術(shù)為通過路線規(guī)劃和實(shí)時(shí)導(dǎo)航提供數(shù)據(jù)基礎(chǔ),完成導(dǎo)航地圖數(shù)據(jù)中道路拓?fù)渚W(wǎng)絡(luò)的核心數(shù)據(jù),現(xiàn)該方法利用道路網(wǎng)絡(luò)的各種屬性數(shù)據(jù),包括等級(jí),平均車速,行政區(qū)劃從屬,交通功能,道路鏈路之間的聯(lián)接節(jié)點(diǎn),將數(shù)據(jù)容量的平面道路網(wǎng)絡(luò)轉(zhuǎn) 換成多層多塊的立體道路網(wǎng)絡(luò),并標(biāo)記出各層各塊道路鏈路之間的聯(lián)接節(jié)點(diǎn),實(shí)現(xiàn)整體道路網(wǎng)絡(luò)的連通性;通過多層多塊道路網(wǎng)絡(luò)數(shù) 據(jù)的分割存儲(chǔ)和局部引用,實(shí)現(xiàn)路線計(jì)算過程中的有限資源消耗, 和道路網(wǎng)絡(luò)數(shù)據(jù)的增量更新;通過多層多塊的立體道路數(shù)據(jù)的靜態(tài) 預(yù)統(tǒng)計(jì),保留路線計(jì)算的啟發(fā)性數(shù)據(jù);通過多層多塊的立體道路數(shù) 據(jù)的選擇性聯(lián)接,實(shí)現(xiàn)合理的長距離大范圍的路線計(jì)算;該數(shù)據(jù)模 型和計(jì)算方法l至少包括分層抽取算法IO、道路聯(lián)通性計(jì)算函數(shù) 20、層次相鄰節(jié)點(diǎn)轉(zhuǎn)換表30、道路網(wǎng)絡(luò)的行政區(qū)劃提取算法40和 路網(wǎng)出入間的最小代價(jià)算法50;其中所述分層抽取算法10是用每個(gè)層次的道路網(wǎng)絡(luò)的自身連通性, 不同層次間的道路網(wǎng)絡(luò)為切換,切換的地點(diǎn)是不同鏈路的聯(lián)接節(jié)點(diǎn); 該開發(fā)對(duì)應(yīng)的分層抽取算法10的具體工作步驟是 步驟1.初始化101 步驟2.設(shè)計(jì)聯(lián)通性函數(shù)102 執(zhí)行完初始化101模塊后,則進(jìn)入設(shè)計(jì)聯(lián)通性函數(shù)102模 塊,設(shè)計(jì)出聯(lián)通性函數(shù);步驟3.設(shè)定分層集合S103 執(zhí)行完設(shè)計(jì)聯(lián)通性函數(shù)102模塊后,則進(jìn)入設(shè)定分層集合 S103模塊,并且初始化為空集合;步驟4.尋找符合當(dāng)前分層要求的鏈路L104 執(zhí)行完設(shè)定分層集合S103模塊后,則進(jìn)入尋找符合當(dāng)前分 層要求的鏈路L104模塊,在原始道路網(wǎng)絡(luò)中尋找到一條符合當(dāng) 前分層要求的鏈路L,將L加到集合S; 步驟5.判斷集合S為空105 執(zhí)行完尋找符合當(dāng)前分層要求的鏈路L104模塊后,則進(jìn)入 判斷集合S為空105模塊?如果集合S為非空,則進(jìn)入S為非空, 將相同層次的鏈路集合加到S106模塊,假如S非空,取出一條 鏈路Li,以Li為起點(diǎn),根據(jù)聯(lián)通性函數(shù),將可達(dá)到的所有
相同層次的鏈路Lj, Lk, Lm,….集合加到S,并將Li設(shè)定成已訪 問;如果集合S為空,則進(jìn)入S為空,結(jié)束計(jì)算107模塊; 步驟6.循環(huán)執(zhí)行執(zhí)行完S為非空,將相同層次的鏈路集合加到S106模塊后, 則反饋進(jìn)入尋找符合當(dāng)前分層要求的鏈路L104模塊的輸入端,重 復(fù)步驟4,直到S為空結(jié)束計(jì)算; 步驟7. S為空,結(jié)束計(jì)算107;所述道路聯(lián)通性計(jì)算函數(shù)20用綜合考慮節(jié)點(diǎn)聯(lián)通性,交通功 能和交通規(guī)則的限制,判斷出從該條鏈路是否經(jīng)過若干條中間鏈 路到達(dá)目標(biāo)鏈路, 一條鏈路必定有兩個(gè)節(jié)點(diǎn),而節(jié)點(diǎn)可以聯(lián)接若 干條鏈路,鏈路到鏈路的訪問是鏈路到節(jié)點(diǎn)到鏈路的數(shù)據(jù)鏈條; 該設(shè)計(jì)道路聯(lián)通性計(jì)算函數(shù)20的具體工作步驟是 步驟1.初始化201 步驟2.取兩端的節(jié)點(diǎn)Nil, Ni2202執(zhí)行完初始化201模塊后,則進(jìn)入取兩端的節(jié)點(diǎn)Nil, Ni2 202,以該條鏈路Li為起點(diǎn),得到其兩端的節(jié)點(diǎn)Nil, Ni2; 步驟3.節(jié)點(diǎn)擴(kuò)展203執(zhí)行完取兩端的節(jié)點(diǎn)Nil, Ni2 202模塊后,則進(jìn)入節(jié)點(diǎn)擴(kuò)展 203模塊,參考Li的交通功能和規(guī)則限制,假如Li是專用道, 那么根據(jù)數(shù)據(jù)從Nil擴(kuò)展,否則兩個(gè)節(jié)點(diǎn)都擴(kuò)展; 步驟4.找聯(lián)接的所有鏈路204執(zhí)行完節(jié)點(diǎn)擴(kuò)展203模塊后,則進(jìn)入找聯(lián)接的所有鏈路204 模塊,從NiX擴(kuò)展,找到與NiX聯(lián)接的所有鏈路,根據(jù)節(jié)點(diǎn)的轉(zhuǎn) 向限制,確定從Li切換到Lj所有行駛的鏈路,這個(gè)Lj集合就是 Li通過Ni可聯(lián)通的鏈路集合;所述層次相鄰節(jié)點(diǎn)轉(zhuǎn)換表30是用不同層次中相鄰的可聯(lián)通 的鏈路之間的節(jié)點(diǎn)叫做層次相鄰節(jié)點(diǎn),在路線計(jì)算過程中可利用這些節(jié)點(diǎn)切換不同層次的道路網(wǎng)絡(luò);設(shè)計(jì)該層次相鄰節(jié)點(diǎn)轉(zhuǎn)換表 30,將每個(gè)層次的道路網(wǎng)絡(luò)中的節(jié)點(diǎn)分層4個(gè)類型,包括層 次內(nèi)部節(jié)點(diǎn)301; 層次相鄰出入節(jié)點(diǎn)302; 層次相鄰出節(jié)點(diǎn) 303;和層次相鄰入節(jié)點(diǎn)304;所述道路網(wǎng)絡(luò)的行政區(qū)劃提取算法40的具體工作步驟是步驟1.初始化401步驟2.設(shè)定行政區(qū)劃層次402執(zhí)行完初始化401模塊后,則進(jìn)入設(shè)定行政區(qū)劃層次402模 塊,設(shè)定該個(gè)行政區(qū)劃層次省、市、區(qū)縣,在道路網(wǎng)絡(luò)內(nèi)找到該 條屬于該區(qū)劃的鏈路,加入空集合S; 步驟3.判斷集合S為空403執(zhí)行完設(shè)定行政區(qū)劃層次402模塊后,則進(jìn)入判斷集合S為 空403模塊?如果集合S為非空,則進(jìn)入S為非空,取一條鏈路 Li 404模塊,如果集合S非空,從中獲取一條鏈路Li,并把Li 從S減除,標(biāo)記為已訪問;并以Li為起點(diǎn),根據(jù)當(dāng)前設(shè)定的行政 區(qū)劃代碼,通過廣度優(yōu)先搜索,和聯(lián)通性計(jì)算得到相關(guān)的鏈路集 合Lj, Lk, Lm, Ln, ,加入集合S;如果集合S為空,則進(jìn)入S為空,結(jié)束計(jì)算405模塊; 步驟4.循環(huán)執(zhí)行執(zhí)行完S為非空,取一條鏈路Li 404模塊后,則反饋進(jìn)入 判斷集合S為空403模塊的輸入端,重復(fù)步驟3,直到集合S為 空,結(jié)束計(jì)算405;步驟5. S為空,結(jié)束計(jì)算405; 所述路網(wǎng)出入間的最小代價(jià)算法50通過路網(wǎng)內(nèi)部鏈路計(jì)算 的路線代價(jià)來實(shí)現(xiàn),該路網(wǎng)出入間的最小代價(jià)算法的具體工作步步驟1.初始化501 步驟2.收集路網(wǎng)C所有非內(nèi)部節(jié)點(diǎn)502執(zhí)行完初始化501模塊后,則進(jìn)入收集路網(wǎng)C所有非內(nèi)部節(jié) 點(diǎn)502模塊;收集路網(wǎng)C的所有非內(nèi)部節(jié)點(diǎn),按照入和出的功能 分為兩個(gè)集合,入口節(jié)點(diǎn)Sn,出口節(jié)點(diǎn)En; 步驟3.取兩者不相同的節(jié)點(diǎn)503執(zhí)行完收集路網(wǎng)C所有非內(nèi)部節(jié)點(diǎn)502模塊后,則進(jìn)入取兩 者不相同的節(jié)點(diǎn)503模塊,從入口節(jié)點(diǎn)集合中任取節(jié)點(diǎn)Sni,從 出口節(jié)點(diǎn)集合中任取節(jié)點(diǎn)Eni,并且兩者不相同; 步驟4.尋找最小代價(jià)的鏈路504執(zhí)行完取兩者不相同的節(jié)點(diǎn)503模塊后,則進(jìn)入尋找最小代 價(jià)的鏈路504模塊,將Sni當(dāng)作起點(diǎn),Eni當(dāng)作終點(diǎn),通過路線 計(jì)算方法,在本網(wǎng)絡(luò)內(nèi)尋找最小代價(jià)的鏈路504,使得Sni到Eni 聯(lián)通;步驟5.建立最小代價(jià)的參考條目505執(zhí)行完尋找最小代價(jià)的鏈路504模塊后,則進(jìn)入建立最小代 價(jià)的參考條目505模塊,建立以入口節(jié)點(diǎn)集合中任取節(jié)點(diǎn)Sni-〉 出口節(jié)點(diǎn)集合中任取節(jié)點(diǎn)Eni二最小代價(jià)的參考條目; 步驟6.判斷是否組合計(jì)算過506執(zhí)行完建立最小代價(jià)的參考條目505模塊后,則進(jìn)入判斷是 否組合計(jì)算過506模塊? 步驟7.循環(huán)執(zhí)行如果非兩個(gè)集合的節(jié)點(diǎn)都組合計(jì)算過,則反饋進(jìn)入取兩者不 相同的節(jié)點(diǎn)503模塊,重復(fù)步驟3直到兩個(gè)集合的節(jié)點(diǎn)都組合計(jì) 算過;如果是兩個(gè)集合的節(jié)點(diǎn)都組合計(jì)算過,則進(jìn)入形成最小代 價(jià)參考表507模塊;步驟8.形成最小代價(jià)參考表507最后形成入口節(jié)點(diǎn)集合中任取節(jié)點(diǎn)Sni到出口節(jié)點(diǎn)集合中任 取節(jié)點(diǎn)Eni的最小代價(jià)參考表。
所述的一種導(dǎo)航用道路拓?fù)鋽?shù)據(jù)模型和計(jì)算方法的道路聯(lián)通性計(jì)算函數(shù)20中的專用道或?yàn)閱蜗虻缆坊驗(yàn)閱蜗蚪剐旭?;所述的?路聯(lián)通性計(jì)算函數(shù)20中的數(shù)據(jù)從Nil擴(kuò)展或?yàn)閺腘i2擴(kuò)展,否則兩個(gè)節(jié)點(diǎn)都擴(kuò)展。 本發(fā)明總體技術(shù)方案為-道路網(wǎng)絡(luò)的屬性數(shù)據(jù),道路網(wǎng)絡(luò)又可以分成鏈路和節(jié)點(diǎn)的集合, 綜合利用道路網(wǎng)絡(luò)中的鏈路和節(jié)點(diǎn)的各種屬性,包括 建設(shè)等級(jí)和設(shè)計(jì)車速相關(guān)國道,城市間的快速專用道, 省道和縣道, 城市內(nèi)部快速專用道, 主干道, 一般道路, 非機(jī)動(dòng)車道路。 交通功能相關(guān)專用封閉道路, 開放式道路, 上匝道,下匝道, 城市高架, 立交道路,專用道路入口,專用道路出口,相同等級(jí)道路的互通,不同等級(jí)道路的互通,立交互通,轉(zhuǎn)彎專用道,高速服務(wù)區(qū),隧道,
橋梁,輪渡線路。 交通規(guī)則相關(guān)通行方向禁止,通行時(shí)間禁止,車型禁止,車輛載重禁止,轉(zhuǎn)彎限制,機(jī)動(dòng)車專用,非機(jī)動(dòng)車專用。 行政區(qū)劃相關(guān)只有鏈路具備唯一的行政區(qū)劃屬性,而節(jié)點(diǎn)具備多重的行政區(qū)劃 屬性,往往聯(lián)通了不同行政區(qū)劃的鏈路。國家范圍的鏈路,中國國 家路網(wǎng)中的所有道路數(shù)據(jù)都具備這個(gè)特性。省或者直轄市鏈路,地 級(jí)城市鏈路,區(qū)縣級(jí)城市鏈路。更高級(jí)別的鏈路涵蓋了更低級(jí)別的 鏈路數(shù)據(jù)。從行政區(qū)劃角度可以將數(shù)據(jù)劃分成不同的子集合,最小 的單位是區(qū)縣級(jí)別。 平面道路網(wǎng)絡(luò)立體化以道路等級(jí)為新增數(shù)據(jù)軸。將道路網(wǎng)絡(luò)劃分成3層,城市間,區(qū)縣間,區(qū)縣內(nèi)。對(duì)應(yīng)的鏈路級(jí)別為 城市間國道,高速道路,專用道。 區(qū)縣間城市內(nèi)快速道路,省道縣道,城市主干道。 區(qū)縣內(nèi) 一般性道路,地方區(qū)域性道路, 一些非導(dǎo)航路線。 設(shè)計(jì)開發(fā)對(duì)應(yīng)的分層抽取算法,目標(biāo)是保證每個(gè)層次的道路網(wǎng)絡(luò)的自身連通性,不同層次間的道路網(wǎng)絡(luò)可以切換,切換的地點(diǎn)是不同鏈路的聯(lián)接節(jié)點(diǎn)。設(shè)計(jì)道路聯(lián)通性計(jì)算函數(shù),綜合考慮節(jié)點(diǎn)聯(lián)通性,交通功能和交通規(guī)則的限制,判斷出從某條鏈路是否可以經(jīng)過若干條中間鏈路到 達(dá)目標(biāo)鏈路。根據(jù)地圖數(shù)據(jù)的技術(shù)規(guī)格, 一條鏈路必定有兩個(gè)節(jié)點(diǎn), 而節(jié)點(diǎn)可以聯(lián)接若干條鏈路,鏈路到鏈路的訪問可以是鏈路到節(jié)點(diǎn) 到鏈路的數(shù)據(jù)鏈條。設(shè)計(jì)層次相鄰節(jié)點(diǎn)轉(zhuǎn)換表。不同層次中相鄰的可聯(lián)通的鏈路之間 的節(jié)點(diǎn)叫做層次相鄰節(jié)點(diǎn)。在路線計(jì)算過程中可利用這些節(jié)點(diǎn)切換 不同層次的道路網(wǎng)絡(luò)。 道路網(wǎng)絡(luò)聯(lián)通性函數(shù)1. 以某條鏈路Li為起點(diǎn),得到其兩端的節(jié)點(diǎn)Nil, Ni2;2. 參考Li的交通功能和規(guī)則限制,假如Li是專用道,或者單向道 路,或者單向禁止行駛等,那么根據(jù)數(shù)據(jù)可從Nil或者Ni2擴(kuò)展, 否則兩個(gè)節(jié)點(diǎn)都可以擴(kuò)展;3. 從NiX擴(kuò)展,找到與NiX聯(lián)接的所有鏈路,根據(jù)節(jié)點(diǎn)的轉(zhuǎn)向限制, 確定從Li切換到Lj所有可行的鏈路,這個(gè)Lj集合就是Li通過 Ni可聯(lián)通的鏈路集合;分層抽取算法描述1. 設(shè)計(jì)出聯(lián)通性函數(shù);2. 設(shè)定分層集合S,并且初始化為空集合;3. 在原始道路網(wǎng)絡(luò)中尋找到一條符合當(dāng)前分層要求的鏈路L,將 L加到集合S;4. 假如S非空,取出一條鏈路Li,以Li為起點(diǎn),根據(jù)聯(lián)通性函 數(shù),將可達(dá)到的所有相同層次的鏈路Lj,Lk,Lm,….集合加到 S,并將Li設(shè)定成已訪問;5. 重復(fù)步驟4,直到S為空結(jié)束計(jì)算; 層次相鄰節(jié)點(diǎn)轉(zhuǎn)換表將每個(gè)層次的道路網(wǎng)絡(luò)中的節(jié)點(diǎn)分層4個(gè)類型層次內(nèi)部節(jié)點(diǎn);層次相鄰出入節(jié)點(diǎn);層次相鄰出節(jié)點(diǎn);
層次相鄰入節(jié)點(diǎn);層次內(nèi)部節(jié)點(diǎn)定義為此節(jié)點(diǎn)聯(lián)接的所有鏈路都是本層次內(nèi)的鏈路。層次相鄰出入節(jié)點(diǎn)的定義為該節(jié)點(diǎn)聯(lián)接的所有鏈路內(nèi)有不同層 次的道路鏈路,可以有若干數(shù)量的層次。同時(shí)這些層次的聯(lián)通性都 是雙向的。層次相鄰出或者入節(jié)點(diǎn)定義為與出入節(jié)點(diǎn)不同的是存在某些層 次的道路網(wǎng)絡(luò)的通行是單向的,只能出就是出節(jié)點(diǎn),只能入的就是 入節(jié)點(diǎn)。相鄰節(jié)點(diǎn)表的快速引用在一個(gè)道路網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)的編號(hào)是遞增的自然數(shù),便于利用數(shù)據(jù)偏 移快速查找定位。相鄰節(jié)點(diǎn)的多義性導(dǎo)致該點(diǎn)在不同的道路網(wǎng)絡(luò)中 都會(huì)出現(xiàn),并且很可能在不同的網(wǎng)絡(luò)中出現(xiàn)的編號(hào)數(shù)字不同。為了實(shí)現(xiàn)跨網(wǎng)絡(luò)的節(jié)點(diǎn)訪問,建立相鄰節(jié)點(diǎn)的編號(hào)映射表,從當(dāng) 前網(wǎng)絡(luò)的編號(hào)映射到不同的相關(guān)網(wǎng)絡(luò)編號(hào)。實(shí)現(xiàn)快速直接的跨網(wǎng)絡(luò) 映射。平面道路網(wǎng)絡(luò)的區(qū)域分割任意層次的道路網(wǎng)絡(luò)都涵蓋一定的地理范圍,按照中國國家的行 政區(qū)劃劃分標(biāo)準(zhǔn),從省到地級(jí)到區(qū)縣級(jí)共分三大層。地圖原始數(shù)據(jù) 中的任意鏈路都有行政區(qū)劃屬性,標(biāo)識(shí)出其行政區(qū)劃層次樹。根據(jù)不同級(jí)別的行政區(qū)劃屬性數(shù)據(jù),可以將任意道路網(wǎng)絡(luò)在平面 上劃分出不同的區(qū)域集合。 道路網(wǎng)絡(luò)的行政區(qū)劃提取算法1. 設(shè)定某個(gè)行政區(qū)劃層次(省、市、區(qū)縣),在道路網(wǎng)絡(luò)內(nèi)找到某 條屬于該區(qū)劃的鏈路,加入空集合S;2. 如果集合S非空,從中獲取一條鏈路Li,并把Li從S減除,標(biāo) 記為已訪問;3. 以Li為起點(diǎn),根據(jù)當(dāng)前設(shè)定的行政區(qū)劃代碼,通過廣度優(yōu)先搜 索,和聯(lián)通性計(jì)算得到相關(guān)的鏈路集合Lj, Lk, Lm, Ln, "., 加入集合S;4. 重復(fù)步驟3,直到集合S為空; 區(qū)劃相鄰節(jié)點(diǎn)轉(zhuǎn)換表與層次相鄰節(jié)點(diǎn)類似,區(qū)劃相鄰節(jié)點(diǎn)也有相同的四種類型。也會(huì) 存在某節(jié)點(diǎn)在不同的網(wǎng)絡(luò)中重復(fù)出現(xiàn),編號(hào)不統(tǒng)一的現(xiàn)象。參照層次相鄰節(jié)點(diǎn)轉(zhuǎn)換表的形式,建立區(qū)劃相鄰轉(zhuǎn)換表。 基于多層多塊的立體路網(wǎng)模型的路線計(jì)算啟發(fā)模型 路線代價(jià)的計(jì)算關(guān)于路線代價(jià)的定義很多,根據(jù)國內(nèi)目前的智能交通建設(shè)水平, 實(shí)現(xiàn)全國范圍的實(shí)時(shí)交通信息播報(bào)和數(shù)據(jù)傳輸還不可能。因此現(xiàn)階 段的路線代價(jià)更多地考慮靜態(tài)情況下的行駛代價(jià),包括物理距離, 平均車速等。根據(jù)經(jīng)驗(yàn)數(shù)據(jù),對(duì)組成路線的各鏈路的物理距離,平均車速,鏈 路切換(路口)的數(shù)量,路口交通信號(hào)燈的等待時(shí)間等進(jìn)行加權(quán)線 性運(yùn)算得到路線的總體代價(jià)。 路網(wǎng)出入間的最小代價(jià)算法設(shè)計(jì)僅通過路網(wǎng)內(nèi)部鏈路計(jì)算的路線代價(jià)。算法思路如下1. 收集路網(wǎng)c的所有非內(nèi)部節(jié)點(diǎn),按照入和出的功能分為兩個(gè)集合,入口節(jié)點(diǎn)Sn,出口節(jié)點(diǎn)En。2. 從入口節(jié)點(diǎn)集合中任取節(jié)點(diǎn)Sni,從出口節(jié)點(diǎn)集合中任取節(jié)點(diǎn) Eni,并且兩者不相同;3. 將Sni當(dāng)作起點(diǎn),Eni當(dāng)作終點(diǎn),通過路線計(jì)算方法,在本網(wǎng)絡(luò) 內(nèi)尋找最小代價(jià)Costmin的鏈路,使得Sni到Eni聯(lián)通。4. 建立以Sni-〉Eni=Costmin的參考條目;5. 重復(fù)步驟3直到兩個(gè)集合的節(jié)點(diǎn)都組合計(jì)算過;6. 最后形成Sni到Eni的最小代價(jià)參考表;水平方向路網(wǎng)的多塊化劃分計(jì)算路網(wǎng)出入的最小代價(jià)表后,可以將每個(gè)路網(wǎng)抽象成一條邏輯 上的鏈路,路網(wǎng)的數(shù)據(jù)規(guī)??梢酝ㄟ^劃分子網(wǎng)絡(luò)以后降低數(shù)據(jù)規(guī)模。 利用劃分多塊階段計(jì)算的出入最小代價(jià)作為水平方向路線計(jì)算的啟 發(fā)性信息。
權(quán)利要求
1、一種導(dǎo)航用道路拓?fù)鋽?shù)據(jù)模型和計(jì)算方法,該方法通過路線規(guī)劃和實(shí)時(shí)導(dǎo)航提供數(shù)據(jù)基礎(chǔ),完成導(dǎo)航地圖數(shù)據(jù)中道路拓?fù)渚W(wǎng)絡(luò)的核心數(shù)據(jù),其特征在于該方法利用道路網(wǎng)絡(luò)的各種屬性數(shù)據(jù),包括等級(jí),平均車速,行政區(qū)劃從屬,交通功能,道路鏈路之間的聯(lián)接節(jié)點(diǎn),將數(shù)據(jù)容量的平面道路網(wǎng)絡(luò)轉(zhuǎn)換成多層多塊的立體道路網(wǎng)絡(luò),并標(biāo)記出各層各塊道路鏈路之間的聯(lián)接節(jié)點(diǎn),實(shí)現(xiàn)整體道路網(wǎng)絡(luò)的連通性;通過多層多塊道路網(wǎng)絡(luò)數(shù)據(jù)的分割存儲(chǔ)和局部引用,實(shí)現(xiàn)路線計(jì)算過程中的有限資源消耗,和道路網(wǎng)絡(luò)數(shù)據(jù)的增量更新;通過多層多塊的立體道路數(shù)據(jù)的靜態(tài)預(yù)統(tǒng)計(jì),保留路線計(jì)算的啟發(fā)性數(shù)據(jù);通過多層多塊的立體道路數(shù)據(jù)的選擇性聯(lián)接,實(shí)現(xiàn)合理的長距離大范圍的路線計(jì)算;該數(shù)據(jù)模型和計(jì)算方法(1)至少包括分層抽取算法(10)、道路聯(lián)通性計(jì)算函數(shù)(20)、層次相鄰節(jié)點(diǎn)轉(zhuǎn)換表(30)、道路網(wǎng)絡(luò)的行政區(qū)劃提取算法(40)和路網(wǎng)出入間的最小代價(jià)算法(50);其中所述分層抽取算法(10)是用每個(gè)層次的道路網(wǎng)絡(luò)的自身連通性,不同層次間的道路網(wǎng)絡(luò)為切換,切換的地點(diǎn)是不同鏈路的聯(lián)接節(jié)點(diǎn);該開發(fā)對(duì)應(yīng)的分層抽取算法(10)的具體工作步驟是步驟1.初始化(101)步驟2.設(shè)計(jì)聯(lián)通性函數(shù)(102)執(zhí)行完初始化(101)模塊后,則進(jìn)入設(shè)計(jì)聯(lián)通性函數(shù)(102)模塊,設(shè)計(jì)出聯(lián)通性函數(shù);步驟3.設(shè)定分層集合S(103)執(zhí)行完設(shè)計(jì)聯(lián)通性函數(shù)(102)模塊后,則進(jìn)入設(shè)定分層集合S(103)模塊,并且初始化為空集合;步驟4.尋找符合當(dāng)前分層要求的鏈路L(104)執(zhí)行完設(shè)定分層集合S(103)模塊后,則進(jìn)入尋找符合當(dāng)前分層要求的鏈路L(104)模塊,在原始道路網(wǎng)絡(luò)中尋找到一條符合當(dāng)前分層要求的鏈路L,將L加到集合S;步驟5.判斷集合S為空(105)執(zhí)行完尋找符合當(dāng)前分層要求的鏈路L(104)模塊后,則進(jìn)入判斷集合S為空(105)模塊?如果集合S為非空,則進(jìn)入S為非空,將相同層次的鏈路集合加到S(106)模塊,假如S非空,取出一條鏈路Li,以Li為起點(diǎn),根據(jù)聯(lián)通性函數(shù),將可達(dá)到的所有相同層次的鏈路Lj,Lk,Lm,….集合加到S,并將Li設(shè)定成已訪問;如果集合S為空,則進(jìn)入S為空,結(jié)束計(jì)算(107)模塊;步驟6.循環(huán)執(zhí)行執(zhí)行完S為非空,將相同層次的鏈路集合加到S(106)模塊后,則反饋進(jìn)入尋找符合當(dāng)前分層要求的鏈路L(104)模塊的輸入端,重復(fù)步驟4,直到S為空結(jié)束計(jì)算;步驟7.S為空,結(jié)束計(jì)算(107);所述道路聯(lián)通性計(jì)算函數(shù)(20)用綜合考慮節(jié)點(diǎn)聯(lián)通性,交通功能和交通規(guī)則的限制,判斷出從該條鏈路是否經(jīng)過若干條中間鏈路到達(dá)目標(biāo)鏈路,一條鏈路必定有兩個(gè)節(jié)點(diǎn),而節(jié)點(diǎn)可以聯(lián)接若干條鏈路,鏈路到鏈路的訪問是鏈路到節(jié)點(diǎn)到鏈路的數(shù)據(jù)鏈條;該設(shè)計(jì)道路聯(lián)通性計(jì)算函數(shù)(20)的具體工作步驟是步驟1.初始化(201)步驟2.取兩端的節(jié)點(diǎn)Ni1,Ni2(202)執(zhí)行完初始化(201)模塊后,則進(jìn)入取兩端的節(jié)點(diǎn)Ni1,Ni2(202),以該條鏈路Li為起點(diǎn),得到其兩端的節(jié)點(diǎn)Ni1,Ni2;步驟3.節(jié)點(diǎn)擴(kuò)展(203)執(zhí)行完取兩端的節(jié)點(diǎn)Ni1,Ni2(202)模塊后,則進(jìn)入節(jié)點(diǎn)擴(kuò)展(203)模塊,參考Li的交通功能和規(guī)則限制,假如Li是專用道,那么根據(jù)數(shù)據(jù)從Ni1擴(kuò)展,否則兩個(gè)節(jié)點(diǎn)都擴(kuò)展;步驟4.找聯(lián)接的所有鏈路(204)執(zhí)行完節(jié)點(diǎn)擴(kuò)展(203)模塊后,則進(jìn)入找聯(lián)接的所有鏈路(204)模塊,從NiX擴(kuò)展,找到與NiX聯(lián)接的所有鏈路,根據(jù)節(jié)點(diǎn)的轉(zhuǎn)向限制,確定從Li切換到Lj所有行駛的鏈路,這個(gè)Lj集合就是Li通過Ni可聯(lián)通的鏈路集合;所述層次相鄰節(jié)點(diǎn)轉(zhuǎn)換表(30)是用不同層次中相鄰的可聯(lián)通的鏈路之間的節(jié)點(diǎn)叫做層次相鄰節(jié)點(diǎn),在路線計(jì)算過程中可利用這些節(jié)點(diǎn)切換不同層次的道路網(wǎng)絡(luò);設(shè)計(jì)該層次相鄰節(jié)點(diǎn)轉(zhuǎn)換表(30),將每個(gè)層次的道路網(wǎng)絡(luò)中的節(jié)點(diǎn)分層4個(gè)類型,包括層次內(nèi)部節(jié)點(diǎn)(301);層次相鄰出入節(jié)點(diǎn)(302);層次相鄰出節(jié)點(diǎn)(303);和 層次相鄰入節(jié)點(diǎn)(304);所述道路網(wǎng)絡(luò)的行政區(qū)劃提取算法(40)的具體工作步驟是步驟1.初始化(401)步驟2.設(shè)定行政區(qū)劃層次(402)執(zhí)行完初始化(401)模塊后,則進(jìn)入設(shè)定行政區(qū)劃層次(402)模塊,設(shè)定該個(gè)行政區(qū)劃層次省、市、區(qū)縣,在道路網(wǎng)絡(luò)內(nèi)找到該條屬于該區(qū)劃的鏈路,加入空集合S;步驟3.判斷集合S為空(403)執(zhí)行完設(shè)定行政區(qū)劃層次(402)模塊后,則進(jìn)入判斷集合S為空(403)模塊?如果集合S為非空,則進(jìn)入S為非空,取一條鏈路Li(404)模塊,如果集合S非空,從中獲取一條鏈路Li,并把Li從S減除,標(biāo)記為已訪問;并以Li為起點(diǎn),根據(jù)當(dāng)前設(shè)定的行政區(qū)劃代碼,通過廣度優(yōu)先搜索,和聯(lián)通性計(jì)算得到相關(guān)的鏈路集合Lj,Lk,Lm,Ln,….,加入集合S;如果集合S為空,則進(jìn)入S為空,結(jié)束計(jì)算(405)模塊;步驟4.循環(huán)執(zhí)行執(zhí)行完S為非空,取一條鏈路Li(404)模塊后,則反饋進(jìn)入判斷集合S為空(403)模塊的輸入端,重復(fù)步驟3,直到集合S為空,結(jié)束計(jì)算(405);步驟5.S為空,結(jié)束計(jì)算(405);所述路網(wǎng)出入間的最小代價(jià)算法(50)通過路網(wǎng)內(nèi)部鏈路計(jì)算的路線代價(jià)來實(shí)現(xiàn),該路網(wǎng)出入間的最小代價(jià)算法的具體工作步驟是步驟1.初始化(501)步驟2.收集路網(wǎng)C所有非內(nèi)部節(jié)點(diǎn)(502)執(zhí)行完初始化(501)模塊后,則進(jìn)入收集路網(wǎng)C所有非內(nèi)部節(jié)點(diǎn)(502)模塊;收集路網(wǎng)C的所有非內(nèi)部節(jié)點(diǎn),按照入和出的功能分為兩個(gè)集合,入口節(jié)點(diǎn)Sn,出口節(jié)點(diǎn)En; 步驟3.取兩者不相同的節(jié)點(diǎn)(503)執(zhí)行完收集路網(wǎng)C所有非內(nèi)部節(jié)點(diǎn)(502)模塊后,則進(jìn)入取兩者不相同的節(jié)點(diǎn)(503)模塊,從入口節(jié)點(diǎn)集合中任取節(jié)點(diǎn)Sni,從出口節(jié)點(diǎn)集合中任取節(jié)點(diǎn)Eni,并且兩者不相同;步驟4.尋找最小代價(jià)的鏈路(504)執(zhí)行完取兩者不相同的節(jié)點(diǎn)(503)模塊后,則進(jìn)入尋找最小代價(jià)的鏈路(504)模塊,將Sni當(dāng)作起點(diǎn),Eni當(dāng)作終點(diǎn),通過路線計(jì)算方法,在本網(wǎng)絡(luò)內(nèi)尋找最小代價(jià)的鏈路(504),使得Sni到Eni聯(lián)通;步驟5.建立最小代價(jià)的參考條目(505)執(zhí)行完尋找最小代價(jià)的鏈路(504)模塊后,則進(jìn)入建立最小代價(jià)的參考條目(505)模塊,建立以入口節(jié)點(diǎn)集合中任取節(jié)點(diǎn)Sni->出口節(jié)點(diǎn)集合中任取節(jié)點(diǎn)Eni=最小代價(jià)的參考條目;步驟6.判斷是否組合計(jì)算過(506)執(zhí)行完建立最小代價(jià)的參考條目(505)模塊后,則進(jìn)入判斷是否組合計(jì)算過(506)模塊?步驟7.循環(huán)執(zhí)行如果非兩個(gè)集合的節(jié)點(diǎn)都組合計(jì)算過,則反饋進(jìn)入取兩者不相同的節(jié)點(diǎn)(503)模塊,重復(fù)步驟3直到兩個(gè)集合的節(jié)點(diǎn)都組合計(jì)算過;如果是兩個(gè)集合的節(jié)點(diǎn)都組合計(jì)算過,則進(jìn)入形成最小代價(jià)參考表(507)模塊;步驟8.形成最小代價(jià)參考表(507)最后形成入口節(jié)點(diǎn)集合中任取節(jié)點(diǎn)Sni到出口節(jié)點(diǎn)集合中任取節(jié)點(diǎn)Eni的最小代價(jià)參考表。
2、根據(jù)權(quán)利要求1所述的一種導(dǎo)航用道路拓?fù)鋽?shù)據(jù)模型和計(jì)算 方法,其特征在于所述的道路聯(lián)通性計(jì)算函數(shù)(20)中的專用道 或?yàn)閱蜗虻缆坊驗(yàn)閱蜗蚪剐旭?;所述的道路?lián)通性計(jì)算函數(shù)(20) 中的數(shù)據(jù)從Nil擴(kuò)展或?yàn)閺腗2擴(kuò)展,否則兩個(gè)節(jié)點(diǎn)都擴(kuò)展。
全文摘要
一種涉及導(dǎo)航相關(guān)的應(yīng)用技術(shù)領(lǐng)域,尤旨一種利用集中在導(dǎo)航專用的道路拓?fù)鋽?shù)據(jù)的分析和提取方法,并以此建立數(shù)據(jù)模型,用于導(dǎo)航地圖數(shù)據(jù)中能處理大面積,長距離的道路分析計(jì)算的一種導(dǎo)航用道路拓?fù)鋽?shù)據(jù)模型和計(jì)算方法。該方法包括分層抽取算法、道路聯(lián)通性計(jì)算函數(shù)、層次相鄰節(jié)點(diǎn)轉(zhuǎn)換表、道路網(wǎng)絡(luò)的行政區(qū)劃提取算法和路網(wǎng)出入間的最小代價(jià)算法等模塊;主要解決如何實(shí)現(xiàn)合理的長距離大范圍的路線計(jì)算等有關(guān)技術(shù)問題。本發(fā)明的積極效果是確保整體道路網(wǎng)絡(luò)的連通性;保留了路線計(jì)算的啟發(fā)性數(shù)據(jù),提高了路線計(jì)算的效率;實(shí)現(xiàn)了合理的長距離大范圍的路線計(jì)算,具有在合理的時(shí)間和成本內(nèi)達(dá)到合理的分析計(jì)算結(jié)果等優(yōu)點(diǎn)。
文檔編號(hào)G01C21/26GK101149268SQ20071004755
公開日2008年3月26日 申請(qǐng)日期2007年10月30日 優(yōu)先權(quán)日2007年10月30日
發(fā)明者柏挺峰 申請(qǐng)人:上海上大鼎正軟件有限公司