本發(fā)明涉及電子地圖技術(shù),尤其涉及一種路徑規(guī)劃方法及路徑規(guī)劃裝置。
背景技術(shù):
在電子地圖技術(shù)中,經(jīng)常會(huì)存在規(guī)劃起點(diǎn)和終點(diǎn)之間的路徑的需求。
目前,使用較為廣泛的一種路徑規(guī)劃方法的實(shí)現(xiàn)原理為:從起點(diǎn)和終點(diǎn)同時(shí)向外進(jìn)行擴(kuò)展計(jì)算,當(dāng)基于起點(diǎn)計(jì)算出的最短路徑和基于終點(diǎn)計(jì)算出的最短路徑中包含有道路屬性完全相同的同一路段時(shí),不再執(zhí)行最短路徑的計(jì)算操作,合并基于起點(diǎn)計(jì)算出的最短路徑和基于終點(diǎn)計(jì)算出的最短路徑即可確定出起點(diǎn)和終點(diǎn)之間的路徑。
發(fā)明人在實(shí)現(xiàn)本發(fā)明過程中發(fā)現(xiàn),在路網(wǎng)數(shù)據(jù)采集過程中,一條實(shí)際道路往往會(huì)由于紅綠燈、收費(fèi)站、交叉路口、車道數(shù)量以及出入口等多種因素而被劃分為具有不同道路屬性的多個(gè)路段,如北京的二環(huán)路會(huì)由于車道數(shù)量以及出入口等多種因素而被劃分為數(shù)十條甚至上百個(gè)路段;由于現(xiàn)有的確定起點(diǎn)和終點(diǎn)之間的路徑過程是在基于起點(diǎn)計(jì)算出的最短路徑和基于終點(diǎn)計(jì)算出的最短路徑都包含具有完全相同道路屬性的同一路段時(shí),才會(huì)停止最短路徑的計(jì)算過程,因此,現(xiàn)有的路徑規(guī)劃方法的計(jì)算量必然會(huì)包括:對尋找到的最短路徑所包含的各路段的計(jì)算量以及對尋找到的路徑所包含的各路段的周圍路段的計(jì)算量。雖然路徑規(guī)劃的算法在被不斷的優(yōu)化,但是,現(xiàn)有的路徑規(guī)劃的實(shí)現(xiàn)原理導(dǎo)致其路徑規(guī)劃的計(jì)算量仍然較大,路徑規(guī)劃的效率有待于進(jìn)一步提高。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種路徑規(guī)劃方法和裝置。
根據(jù)本發(fā)明的一個(gè)方面,提供一種路徑規(guī)劃方法,其中,該方法主要包 括以下步驟:獲取起點(diǎn)和終點(diǎn);從所述起點(diǎn)和所述終點(diǎn)分別進(jìn)行最短路徑計(jì)算,并在最短路徑計(jì)算過程中,執(zhí)行以下獲取步驟:當(dāng)判斷從起點(diǎn)進(jìn)行最短路徑計(jì)算得到的第一最短路徑中的路段一與從終點(diǎn)進(jìn)行最短路徑計(jì)算得到的第二最短路徑中的路段二具有相同道路標(biāo)識(shí)時(shí),從道路數(shù)據(jù)庫中獲取連通所述路段一和路段二的中間路段,并將該中間路段連接為中間路徑,其中所述中間路段的道路標(biāo)識(shí)與所述路段一和路段二的道路標(biāo)識(shí)相同;根據(jù)所述第一最短路徑、中間路徑和第二最短路徑,生成從所述起點(diǎn)到所述終點(diǎn)的路徑。
根據(jù)本發(fā)明的另一個(gè)方面,還提供一種路徑規(guī)劃裝置,其中,該裝置包括:獲取模塊,用于獲取起點(diǎn)和終點(diǎn);計(jì)算模塊,用于從所述起點(diǎn)和終點(diǎn)分別進(jìn)行最短路徑計(jì)算,并在最短路徑計(jì)算過程中,執(zhí)行以下獲取步驟:當(dāng)判斷從起點(diǎn)進(jìn)行最短路徑計(jì)算得到的第一最短路徑中的路段一與從終點(diǎn)進(jìn)行最短路徑計(jì)算得到的第二最短路徑中的路段二具有相同道路標(biāo)識(shí)時(shí),從道路數(shù)據(jù)庫中獲取連通所述路段一和路段二的中間路段,并將該中間路段連接為中間路徑,其中所述中間路段的道路標(biāo)識(shí)與所述路段一和路段二的道路標(biāo)識(shí)相同;路徑生成模塊,用于根據(jù)所述第一最短路徑、中間路徑以及第二最短路徑,生成從所述起點(diǎn)到所述終點(diǎn)的路徑。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):本發(fā)明通過在從起點(diǎn)和終點(diǎn)分別進(jìn)行最短路徑計(jì)算的過程中,一旦在當(dāng)前計(jì)算獲得的基于起點(diǎn)的第一最短路徑中的路段一和基于終點(diǎn)的第二最短路徑中的路段二具有相同道路標(biāo)識(shí)時(shí),由于可以從道路數(shù)據(jù)庫中獲取到連通路段一和路段二的具有與路段一和路段二相同的道路標(biāo)識(shí)的中間路段,并利用第一最短路徑、第二最短路徑以及由中間路段拼接而成的中間路徑來形成從起點(diǎn)到終點(diǎn)的路徑,因此,本發(fā)明可以立即停止最短路徑的計(jì)算操作,從而本發(fā)明不僅可以避免對上述連通第一最短路徑和第二最短路徑的具有相同道路標(biāo)識(shí)的多個(gè)中間路段進(jìn)行最短路徑計(jì)算的計(jì)算量,還可以避免對上述具有相同道路標(biāo)識(shí)的多個(gè)中間路段的周圍道路進(jìn)行最短路徑計(jì)算的計(jì)算量。由此可知,本發(fā)明提供的技術(shù)方案能夠在較大程度上減小最短路徑的計(jì)算量,有效提高了路徑規(guī)劃效率。
附圖說明
通過閱讀參照以下附圖所作的對非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
圖1為本發(fā)明實(shí)施例一的路徑規(guī)劃方法流程圖;
圖2為本發(fā)明實(shí)施例二的路徑規(guī)劃的一個(gè)具體例子的示意圖;
圖3為本發(fā)明實(shí)施例三的路徑規(guī)劃的一個(gè)具體例子的示意圖;
圖4為本發(fā)明實(shí)施例四的路徑規(guī)劃裝置示意圖。
附圖中相同或相似的附圖標(biāo)記代表相同或相似的部件。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明的實(shí)施例作詳細(xì)描述。
在更加詳細(xì)地討論示例性實(shí)施例之前應(yīng)當(dāng)提到的是,一些示例性實(shí)施例被描述成作為流程圖描繪的處理或方法。雖然本發(fā)明的流程圖將各項(xiàng)操作描述成順序的處理,但是,其中的許多操作可以被并行地、并發(fā)地或者同時(shí)實(shí)施。此外,各項(xiàng)操作的順序可以被重新安排。當(dāng)其操作完成時(shí)所述處理可以被終止,但是還可以具有未包括在附圖中的附加步驟。所述處理可以對應(yīng)于方法、函數(shù)、規(guī)程、子例程、子程序等等。
所述智能電子設(shè)備包括用戶設(shè)備與網(wǎng)絡(luò)設(shè)備。其中,所述用戶設(shè)備包括但不限于電腦、智能移動(dòng)電話以及pda等;所述網(wǎng)絡(luò)設(shè)備包括但不限于單個(gè)網(wǎng)絡(luò)服務(wù)器、多個(gè)網(wǎng)絡(luò)服務(wù)器組成的服務(wù)器組或者基于云計(jì)算(cloudcomputing)的由大量計(jì)算機(jī)或者網(wǎng)絡(luò)服務(wù)器構(gòu)成的云,其中,云計(jì)算是分布式計(jì)算的一種,由一群松散耦合的計(jì)算機(jī)集組成的一個(gè)超級(jí)虛擬計(jì)算機(jī)。其中,所述智能電子設(shè)備可以接入網(wǎng)絡(luò)并與網(wǎng)絡(luò)中的其他智能電子設(shè)備進(jìn)行信息交互操作。其中,所述智能電子設(shè)備所能夠接入的網(wǎng)絡(luò)包括但不限于互聯(lián)網(wǎng)、廣域網(wǎng)、城域網(wǎng)、局域網(wǎng)、vpn網(wǎng)絡(luò)等。
需要說明的是,所述用戶設(shè)備、網(wǎng)絡(luò)設(shè)備以及網(wǎng)絡(luò)等僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的智能電子設(shè)備或者網(wǎng)絡(luò)如可適用于本申請,也應(yīng)包含在本申請保護(hù)范圍以內(nèi),并以引用方式包含于此。
后面描述所討論的方法(其中一些通過流程圖示出)實(shí)施例可以通過硬 件、軟件、固件、中間件、微代碼、硬件描述語言或者其任意組合的形式來實(shí)施。當(dāng)用軟件、固件、中間件或者微代碼來實(shí)施時(shí),用以實(shí)施必要任務(wù)的程序代碼或者代碼段可以被存儲(chǔ)在機(jī)器或計(jì)算機(jī)可讀介質(zhì)(比如存儲(chǔ)介質(zhì))中。(一個(gè)或多個(gè))處理器可以實(shí)施必要的任務(wù)。
這里所公開的具體結(jié)構(gòu)和功能細(xì)節(jié)僅僅是代表性的,并且是用于描述本申請的示例性實(shí)施例的目的,但是,本申請可以通過許多替換形式來具體實(shí)現(xiàn),并且不應(yīng)當(dāng)被解釋成僅僅受限于這里所闡述的實(shí)施例。
應(yīng)當(dāng)理解的是,雖然在這里可能使用了術(shù)語“第一”、“第二”等等來描述各個(gè)單元,但是這些單元不應(yīng)當(dāng)受這些術(shù)語限制。使用這些術(shù)語僅僅是為了將一個(gè)單元與另一個(gè)單元進(jìn)行區(qū)分。舉例來說,在不背離示例性實(shí)施例的范圍的情況下,第一單元可以被稱為第二單元,并且類似地第二單元可以被稱為第一單元。這里所使用的術(shù)語“和/或”包括其中一個(gè)或更多所列出的相關(guān)聯(lián)項(xiàng)目的任意和所有組合。
應(yīng)當(dāng)理解的是,當(dāng)一個(gè)單元被稱為“連接”或者“耦合”到另一個(gè)單元時(shí),其可以直接連接或者耦合到所述另一個(gè)單元,也可以存在中間單元。與此相對的,當(dāng)一個(gè)單元被稱為“直接連接”或者“直接耦合”到另一個(gè)單元時(shí),則不存在中間單元。應(yīng)當(dāng)按照類似的方式來解釋被用于描述單元之間的關(guān)系的其他詞語(例如,“處于...之間”相比于“直接處于...之間”,“與...鄰近”相比于“與...直接鄰近”等等)。
這里所使用的術(shù)語僅僅是為了描述具體實(shí)施例,而不是意圖限制示例性實(shí)施例。除非上下文中明確地另有所指,否則,這里所使用的單數(shù)形式“一個(gè)”、“一項(xiàng)”還意圖包括復(fù)數(shù)。還應(yīng)當(dāng)理解的是,這里所使用的術(shù)語“包括”和/或“包含”規(guī)定了所陳述的特征、整數(shù)、步驟、操作、單元和/或組件的存在,而不排除存在或者添加一個(gè)或更多的其他特征、整數(shù)、步驟、操作、單元、組件和/或其組合。
還應(yīng)當(dāng)提到的是,在一些替換實(shí)現(xiàn)方式中,所提到的功能/動(dòng)作可以按照不同于附圖中標(biāo)示的順序發(fā)生。舉例來說,取決于所涉及的功能/動(dòng)作,相繼示出的兩幅圖實(shí)際上可以基本上同時(shí)執(zhí)行或者有時(shí)可以按照相反的順序來執(zhí)行。
下面結(jié)合附圖對本發(fā)明的技術(shù)方案作進(jìn)一步詳細(xì)描述。
實(shí)施例一、路徑規(guī)劃方法。
圖1為本實(shí)施例的路徑規(guī)劃方法流程圖。如圖1所示,本實(shí)施例的方法主要包括:步驟s100、步驟s110以及步驟s120。本實(shí)施例所記載的方法既可以在網(wǎng)絡(luò)側(cè)的智能電子設(shè)備中執(zhí)行,也可以在用戶側(cè)的智能電子設(shè)備中執(zhí)行,如在實(shí)現(xiàn)在線路徑規(guī)劃或者在線導(dǎo)航等過程中,本實(shí)施例所記載的路徑規(guī)劃方法可以由網(wǎng)絡(luò)側(cè)的服務(wù)器(如云端服務(wù)器)等執(zhí)行;再如在實(shí)現(xiàn)離線路徑規(guī)劃或者離線導(dǎo)航等過程中,本實(shí)施例所記載的路徑規(guī)劃方法可以由用戶側(cè)的智能移動(dòng)電話、平板電腦或者計(jì)算機(jī)等用戶設(shè)備執(zhí)行。本實(shí)施例不限制實(shí)現(xiàn)路徑規(guī)劃方法的智能電子設(shè)備的具體表現(xiàn)形式,即本實(shí)施例不限制路徑規(guī)劃方法所適用的硬件環(huán)境。
下面對圖1中的各步驟分別進(jìn)行詳細(xì)描述。
s100、獲取起點(diǎn)和終點(diǎn)。
具體的,本實(shí)施例中的起點(diǎn)和終點(diǎn)(如可以是需要進(jìn)行最短路徑計(jì)算的起點(diǎn)和終點(diǎn))可以是在用戶通過相應(yīng)的用戶交互界面執(zhí)行相應(yīng)的操作(如在用戶交互界面輸入框中進(jìn)行的文字輸入操作或者在電子地圖界面的選點(diǎn)操作等)而獲取到的起點(diǎn)和終點(diǎn);如在用戶進(jìn)入電子地圖的app(應(yīng)用)后,應(yīng)用為用戶展示相應(yīng)的電子地圖主界面,用戶可以在電子地圖主界面進(jìn)行選點(diǎn)操作得到起點(diǎn)和終點(diǎn),用戶還可以在電子地圖主界面點(diǎn)擊“路線”或者“導(dǎo)航”后跳轉(zhuǎn)到相應(yīng)的路徑規(guī)劃頁面,用戶在路徑規(guī)劃頁面的輸入框中輸入相應(yīng)的起點(diǎn)以及終點(diǎn)。當(dāng)然用戶可以在路徑規(guī)劃頁面的起點(diǎn)輸入框中輸入起點(diǎn)關(guān)鍵詞,應(yīng)用會(huì)在下拉框中展示與該起點(diǎn)關(guān)鍵詞相關(guān)的多個(gè)地名,在用戶從下拉框中選擇一個(gè)地名時(shí),該地名被作為起點(diǎn),同樣的,用戶可以在相應(yīng)的路徑規(guī)劃頁面的終點(diǎn)輸入框中輸入終點(diǎn)關(guān)鍵詞,應(yīng)用會(huì)在下拉框中展示與該終點(diǎn)關(guān)鍵詞相關(guān)的多個(gè)地名,在用戶從該下拉框中選擇一個(gè)地名時(shí),該地名被作為終點(diǎn)。另外,本實(shí)施例也可以根據(jù)用戶的相應(yīng)操作將用戶的當(dāng)前所在地作為起點(diǎn)。再有,本實(shí)施例可以將用戶以前曾經(jīng)搜索過的多個(gè)終點(diǎn)信息展示給用戶,從而本實(shí)施例可以根據(jù)用戶在該展示出的多個(gè)終點(diǎn)信息中的選擇來獲取終點(diǎn)。本實(shí)施例不限制獲取起點(diǎn)和終點(diǎn)的具體實(shí)現(xiàn)方式。
s110、從上述起點(diǎn)和終點(diǎn)分別進(jìn)行最短路徑計(jì)算,并在最短路徑計(jì)算過程中,執(zhí)行以下獲取步驟:當(dāng)判斷從起點(diǎn)進(jìn)行最短路徑計(jì)算得到的第一最短路徑中的路段一與從終點(diǎn)進(jìn)行最短路徑計(jì)算得到的第二最短路徑中的路段二具有相同道路標(biāo)識(shí)時(shí),從道路數(shù)據(jù)庫中獲取連通路段一和路段二的多個(gè)中間路段,并將多個(gè)中間路段連接為中間路徑,其中,中間路段的道路標(biāo)識(shí)與路段一和路段二的道路標(biāo)識(shí)相同。
本實(shí)施例判斷從起點(diǎn)進(jìn)行最短路徑計(jì)算得到的第一最短路徑中的路段一與從終點(diǎn)進(jìn)行最短路徑計(jì)算得到的第二最短路徑中的路段二具有相同道路標(biāo)識(shí),可采取以下兩種方式實(shí)現(xiàn):
方式1、從起點(diǎn)進(jìn)行最短路徑計(jì)算的過程中,每計(jì)算得到一條構(gòu)成所述第一最短路徑的新路段時(shí),將該新路段的道路標(biāo)識(shí)與第二最短路徑中包含的路段的道路標(biāo)識(shí)進(jìn)行比較;當(dāng)?shù)诙疃搪窂街邪c所述新路段的道路標(biāo)識(shí)相同的路段時(shí),將該路段作為路段二,將所述新路段作為路段一;當(dāng)?shù)诙疃搪窂街胁话c所述新路段的道路標(biāo)識(shí)相同的路段時(shí),從起點(diǎn)接續(xù)第一最短路徑和從終點(diǎn)接續(xù)第二最短路徑進(jìn)行最短路徑計(jì)算,并在最短路徑計(jì)算過程中繼續(xù)執(zhí)行所述獲取步驟。
方式2、從終點(diǎn)進(jìn)行最短路徑計(jì)算的過程中,每計(jì)算得到一條構(gòu)成所述第二最短路徑的新路段時(shí),將該新路段的道路標(biāo)識(shí)與第一最短路徑中包含的路段的道路標(biāo)識(shí)進(jìn)行比較;當(dāng)?shù)谝蛔疃搪窂街邪信c所述新路段的道路標(biāo)識(shí)相同的路段時(shí),將該路段作為路段一,將所述新路段作為路段二;當(dāng)?shù)谝蛔疃搪窂街胁话c所述新路段的道路標(biāo)識(shí)相同的路段時(shí),從起點(diǎn)接續(xù)第一最短路徑和從終點(diǎn)接續(xù)第二最短路徑進(jìn)行最短路徑計(jì)算,并在最短路徑計(jì)算過程中繼續(xù)執(zhí)行所述獲取步驟。
在前述方式1和方式2中,當(dāng)在第一最短路徑與第二最短路徑之間存在道路標(biāo)識(shí)相同的路段時(shí),此時(shí)應(yīng)該先停止當(dāng)前的最短路徑的計(jì)算過程;如果第一最短路徑與第二最短路徑之間不存在道路標(biāo)識(shí)相同的路段時(shí),則不應(yīng)打斷當(dāng)前的最短路徑的計(jì)算過程,即繼續(xù)進(jìn)行最短路徑的計(jì)算過程,直到基于起點(diǎn)的第一最短路徑和基于終點(diǎn)的第二最短路徑中包含具有相同道路標(biāo)識(shí)的路段為止。
本實(shí)施例在判斷出當(dāng)前計(jì)算獲得的基于起點(diǎn)的第一最短路徑和基于終點(diǎn)的第二最短路徑中包含有具有相同道路標(biāo)識(shí)的路段時(shí),應(yīng)獲取用于連通當(dāng)前計(jì)算獲得的第一最短路徑中的路段一之前的路徑(包含路段一)和當(dāng)前計(jì)算獲得的第二最短路徑中的路段二之前的路徑(包含路段二)的所有具有路段一/路段二的道路標(biāo)識(shí)的中間路段。
本實(shí)施例的獲取該中間路段的一種具體實(shí)現(xiàn)方式可以為:
道路數(shù)據(jù)庫中預(yù)先存儲(chǔ)有多條整合道路信息,每一條整合道路均由具有相同道路標(biāo)識(shí)的多個(gè)路段形成(即整合道路是指由道路標(biāo)識(shí)相同且具有連通關(guān)系的多個(gè)路段拼接而成的道路),且整合道路的道路標(biāo)識(shí)與其所包含的多個(gè)路段所具有的道路標(biāo)識(shí)相同;另外,不同整合道路的道路標(biāo)識(shí)不相同。具體的,本實(shí)施例可以將北京市二環(huán)路內(nèi)環(huán)以及北京市二環(huán)路外環(huán)分別作為一條整合道路,也可以將北京市三環(huán)路內(nèi)環(huán)以及北京市三環(huán)路外環(huán)分別作為一條整合道路,還可以將北京市西直門大街上行方向或者北京市西直門大街下行方向分別作為一條整合道路。
本實(shí)施例中的每一條整合道路所包含的所有路段均設(shè)置有索引信息,且存儲(chǔ)有路段id號(hào)與其索引信息的對應(yīng)關(guān)系;且一條整合道路所包含的所有路段各自對應(yīng)的索引信息的順序排序位置可以表示出所有路段在整合道路中順序排列位置,即各路段的索引信息的排序可以表示出整合道路中的各路段的實(shí)際銜接順序,更具體而言,本實(shí)施例可以通俗的將一條整合道路所包含的所有路段分別對應(yīng)的索引信息理解為一條公交線路中的順序排列的站號(hào)。另外,本實(shí)施例中的預(yù)先存儲(chǔ)的整合道路信息可以包括該整合道路中的每一個(gè)路段的索引信息以及各路段的坐標(biāo)信息等。
由此,本實(shí)施例可以先根據(jù)路段一的id號(hào)、路段二的id號(hào),從預(yù)先存儲(chǔ)的整合道路信息中與該路段一/路段二的道路標(biāo)識(shí)相同的整合道路中的路段id與索引信息的對應(yīng)關(guān)系中確定出路段一和路段二分別對應(yīng)的索引信息,再將路段一的索引信息與路段2的索引信息之間的路段確定為中間路段,該多個(gè)中間路段構(gòu)成的路徑即為中間路徑。
如對于高速公路而言,路段一和路段二對應(yīng)的索引信息可以具體為進(jìn)入高速的入口標(biāo)識(shí)信息或者駛出高速的出口標(biāo)識(shí)信息等;再如對于城市環(huán)路而 言,路段一和路段二對應(yīng)的索引信息可以為由輔路進(jìn)入主路的入口標(biāo)識(shí)信息或者由主路到輔路的出口標(biāo)識(shí)信息等。本實(shí)施例不限制路段一和路段二對應(yīng)的索引信息的具體表現(xiàn)形式。
本實(shí)施的一個(gè)具體的例子,北京市二環(huán)路由于紅綠燈、收費(fèi)站、交叉路口、車道數(shù)量以及出入口等多種因素而被劃分為具有不同道路屬性的數(shù)十條甚至上百個(gè)路段,本實(shí)施例可以將北京市二環(huán)路內(nèi)環(huán)/外環(huán)作為一條整合道路,并存儲(chǔ)該整合道路信息,如存儲(chǔ)組成該整合道路的所有路段的索引信息等;在判斷出當(dāng)前計(jì)算獲得的第一最短路徑中的路段一和第二最短路徑的路段二的道路名稱均為北京市二環(huán)路內(nèi)環(huán)/外環(huán)時(shí),獲取第一最短路徑中的路段一所對應(yīng)索引信息(如索引值為3),并獲取第二最短路徑中的路段二所對應(yīng)的索引信息(如索引值為10),然后,利用這兩個(gè)索引信息從預(yù)先存儲(chǔ)的北京市二環(huán)路內(nèi)環(huán)/外環(huán)的整合道路信息中獲取這兩個(gè)索引信息之間的所有路段,即索引值為4-9的所有路段,索引值為4-9的所有路段即為上述用于連通當(dāng)前計(jì)算獲得的第一最短路徑中的路段一之前的路徑和第二最短路徑中的路段二之前的路徑的所有具有北京市二環(huán)路內(nèi)環(huán)/外環(huán)這一道路名稱的中間路段,本實(shí)施例可以將索引值為4-9的各中間路段拼接為中間路徑。
具體的,本實(shí)施例可以從起點(diǎn)和終點(diǎn)分別在預(yù)置的道路集合中包含的路段進(jìn)行最短路徑計(jì)算。優(yōu)選地,在一個(gè)實(shí)施例中,道路集合包含的路段可以是某區(qū)域內(nèi)的主干路網(wǎng)的路段,主干路網(wǎng)的路段可包括:城市快速公路、環(huán)路、高速公路、國道以及省道等;本實(shí)施例規(guī)劃出的起點(diǎn)到終點(diǎn)的路徑所包含的路段均是主干路網(wǎng)路段。
在另一個(gè)實(shí)施例中,道路集合包含的路段也可以是某區(qū)域內(nèi)的全路網(wǎng)路段,即本實(shí)施例中的道路集合中存儲(chǔ)的路段是某區(qū)域內(nèi)包含的所有路段。
本實(shí)施例中的某區(qū)域可以是指一個(gè)行政區(qū)劃或者多個(gè)行政區(qū)劃,甚至全國范圍或者多個(gè)國家范圍,或者還可以是自定義的一個(gè)地理范圍等。本實(shí)施例不限制道路集合的具體表現(xiàn)形式。
本實(shí)施例在根據(jù)道路集合中的路段從起點(diǎn)和終點(diǎn)分別進(jìn)行最短路徑計(jì)算的過程中,可以基于優(yōu)先級(jí)高于預(yù)置級(jí)別閾值的優(yōu)先原則從起點(diǎn)和終點(diǎn)分別進(jìn)行最短路徑計(jì)算,也就是說,本實(shí)施例在進(jìn)行最短路徑計(jì)算過程中可以優(yōu) 先選取優(yōu)先級(jí)高于預(yù)置級(jí)別閾值的路段進(jìn)行最短路徑的計(jì)算,在路徑計(jì)算失敗時(shí)再選擇優(yōu)先級(jí)低于或等于預(yù)置級(jí)別閾值的路段進(jìn)行最短路徑的計(jì)算。采用該種方式使得確保規(guī)劃出的路徑時(shí)高優(yōu)先級(jí)路段組成的路徑,以盡可能的滿足用戶的實(shí)際需求。
本實(shí)施例中的預(yù)置級(jí)別閾值可以具體包括:城市快速公路級(jí)別、環(huán)路級(jí)別或者高速公路級(jí)別等。另外,本實(shí)施例中的預(yù)置級(jí)別閾值可以是根據(jù)用戶的選擇而設(shè)置的預(yù)置級(jí)別閾值,如用戶在選擇起點(diǎn)和終點(diǎn)時(shí),可以同時(shí)選擇一個(gè)預(yù)置級(jí)別閾值;一個(gè)具體的例子,在用戶在相應(yīng)的用戶界面中選擇了“城市快速公路優(yōu)先”這一選項(xiàng)時(shí),本實(shí)施例將城市快速公路級(jí)別作為預(yù)置級(jí)別閾值。另外,本實(shí)施例中的預(yù)置級(jí)別閾值也可以是根據(jù)缺省設(shè)置信息而設(shè)置的預(yù)置級(jí)別閾值,例如,當(dāng)前缺省設(shè)置信息為城市快速公路級(jí)別,在用戶不修改該缺省設(shè)置信息的情況下,本實(shí)施例將城市快速公路級(jí)別作為預(yù)置級(jí)別閾值。
本實(shí)施例可以采用現(xiàn)有的多種最短路徑算法從起點(diǎn)和終點(diǎn)分別進(jìn)行最短路徑計(jì)算,本實(shí)施例不限制所采用的最短路徑算法的具體實(shí)現(xiàn)方式。
本實(shí)施例中的具有相同道路標(biāo)識(shí)的路段通常是指具有相同道路名稱的路段,即本實(shí)施例中的道路標(biāo)識(shí)可以為道路名稱;道路集合中的每一個(gè)路段都具有該路段所在道路的道路名稱。
s120、根據(jù)第一最短路徑、中間路徑和第二最短路徑,生成從起點(diǎn)到終點(diǎn)的路徑。
具體的,本實(shí)施例可以將上述第一最短路徑中的路段一之前的路徑(包含路段一)、中間路徑和第二最短路徑中的路段二之前的路徑(包含路段二)順序連接(如基于各路段的坐標(biāo)將路段一之前的路徑中的所有路段、中間路徑中的所有路段以及路段二之前的路徑中的所有路段順序連接起來),從而形成規(guī)劃出的從起點(diǎn)到終點(diǎn)的完整路徑。
另外,為了使最終獲得的從起點(diǎn)到終點(diǎn)的路徑更為合理,本實(shí)施例中的根據(jù)第一最短路徑、中間路徑和第二最短路徑,生成從起點(diǎn)到終點(diǎn)的路徑也可以采用如下兩種方式來實(shí)現(xiàn):
方式一、將第一最短路徑中的路段一之前的路徑(包含路段一)、中間 路徑、第二最短路徑中的路段二之前的路徑(包含路段二)順序連接來的從起點(diǎn)到終點(diǎn)的完整路徑作為待定路徑;計(jì)算起點(diǎn)與終點(diǎn)之間的直線距離,并計(jì)算待定路徑的長度;之后,判斷待定路徑的長度與直線距離的比值是否大于預(yù)置的比例閾值,如果比值大于預(yù)置的比例閾值,則繼續(xù)進(jìn)行基于起點(diǎn)的第一最短路徑的計(jì)算過程以及基于終點(diǎn)的第二最短路徑的計(jì)算過程,并在最短路徑的計(jì)算過程中執(zhí)行上述s110所記載的獲取步驟;而如果比值不大于預(yù)置的比例閾值,則將該待定路徑確定為本次規(guī)劃出的從起點(diǎn)到終點(diǎn)的路徑。
方式二、計(jì)算中間路徑的長度,并判斷中間路徑的長度是否大于等于預(yù)置的長度閾值,如果中間路徑的長度大于等于預(yù)置的長度閾值,則繼續(xù)進(jìn)行基于起點(diǎn)的第一最短路徑的計(jì)算過程以及基于終點(diǎn)的第二最短路徑的計(jì)算過程,并在最短路徑的計(jì)算過程中執(zhí)行上述s110所記載的獲取步驟;如果中間路徑的長度小于預(yù)置的長度閾值,則將第一最短路徑中的路段一之前的路徑(包含路段一)、中間路徑、第二最短路徑中的路段二之前的路徑(包含路段二)進(jìn)行順序連接(如基于各路段的坐標(biāo)將路段一之前的路徑中的所有路段、中間路徑中的所有路段以及路段二之前的路徑中的所有路段順序連接起來),從而形成本次規(guī)劃出的從起點(diǎn)到終點(diǎn)的完整路徑。前述長度閾值可以根據(jù)起終點(diǎn)直線距離的長短設(shè)置為不同的取值,如起終點(diǎn)直線距離越短設(shè)置的長度閾值取值越小,起終點(diǎn)直線距離越長設(shè)置的長度閾值取值越大。
實(shí)施例二、路徑規(guī)劃方法。下面結(jié)合圖2對本實(shí)施例的方法進(jìn)行說明。
本實(shí)施例中,假設(shè)預(yù)先存儲(chǔ)有京通快速公路上行/下行這一整合道路的信息,在該整合道路信息中,包括京通快速公路名稱、京通快速公路上行道路包含的所有路段的id與索引信息、京通快速公路下行道路包含的所有路段的id與索引信息(包括索引值)。整合道路上的路段按照行車方向其對應(yīng)的索引值連續(xù)且按照從大到小或者從小到大的順序依次排序。如整合道路按照行車方向依次包括路段1、路段2、路段3、路段4、…、路段n,則對應(yīng)的索引值依次為1、2、3、…、n。
在需要進(jìn)行城市快速公路優(yōu)先的最短路徑計(jì)算時(shí),設(shè)定本次最短路徑計(jì)算的起點(diǎn)和終點(diǎn)分別為圖2中的兩個(gè)五星標(biāo)志處,例如起點(diǎn)為北京工人體育 館,終點(diǎn)為通州區(qū)的某一具體位置。首先,本實(shí)施例應(yīng)從起點(diǎn)以及終點(diǎn)分別進(jìn)行最短路徑的計(jì)算,在基于起點(diǎn)的第一最短路徑中的路段一的道路名稱為京通快速公路上行/下行,且基于終點(diǎn)的第二最短路徑中包含有道路名稱為京通快速公路的道路上行/下行的路段二時(shí),本實(shí)施例暫且可以不再繼續(xù)進(jìn)行基于起點(diǎn)的最短路徑計(jì)算以及基于終點(diǎn)的最短路徑計(jì)算,而是獲取路段一對應(yīng)的索引值以及路段二對應(yīng)的索引值,并從預(yù)先存儲(chǔ)的基于京通快速公路上行/下行的整合道路信息中獲取這兩個(gè)索引值之間的所有中間路段;這兩個(gè)索引值之間的所有路段構(gòu)成中間路徑,中間路徑連通第一最短路徑中的路段一之前的路徑(包含路段一)以及第二最短路徑中的路段二之前的路徑(包含路段二);拼接第一最短路徑中的路段一之前的路徑、中間路徑和第二最短路徑中的路段二之間的路徑,得到待定路徑;以前面例子為例,假設(shè)路段一為路段4,路段二為路段8,則路段4的索引值4和路段8的索引值之間的索引值5,6,7對應(yīng)的路段5、路段6和路段7為中間路段,則路段5、路段6、路段7構(gòu)成的路徑為中間路徑;之后,計(jì)算北京工人體育館和通州區(qū)的某一具體位置的直線距離以及待定路徑的長度(即待定路徑包含的所有路段的長度的和值),并判斷待定路徑的長度與該直線距離的比值是否大于預(yù)置的比例閾值,如果比值大于預(yù)置的比例閾值(如比例閾值為2.5),則繼續(xù)進(jìn)行第一最短路徑的計(jì)算過程以及第二最短路徑的計(jì)算過程,并在最短路徑的計(jì)算過程中執(zhí)行上述第一最短路徑和第二最短路徑是否包含有路段一和路段二的判斷操作、獲取索引值的操作、計(jì)算長度的操作以及判斷操作;而如果比值不大于預(yù)置的比例閾值,則將該待定路徑確定為本次規(guī)劃出的從起點(diǎn)(如北京工人體育館)到終點(diǎn)(如通州區(qū)的某一具體位置)的完整路徑。
優(yōu)選地,本實(shí)施例中,還可以針對起終點(diǎn)直線距離的長短,設(shè)置不同的比例閾值,如起終點(diǎn)直線距離越小比例閾值越大,起終點(diǎn)直線距離越大比例閾值越小。如比例閾值大于1小于等于2.5。
由上述描述可知,由于本實(shí)施例的最短路徑的計(jì)算量包括:圖2中起點(diǎn)周圍路段的計(jì)算量(如對圖2中的左側(cè)圓圈所覆蓋的路段進(jìn)行計(jì)算的計(jì)算量)以及圖2中終點(diǎn)周圍路段的計(jì)算量(如對圖2中的右側(cè)圓圈所覆蓋的路段進(jìn)行計(jì)算的計(jì)算量),而不會(huì)包括對圖2中的中部區(qū)域的橢圓所覆蓋的路段進(jìn) 行計(jì)算的計(jì)算量,因此,本實(shí)施例能夠在較大程度上減小路徑的計(jì)算量,有效提高了路徑規(guī)劃效率。
實(shí)施例三、路徑規(guī)劃方法。下面結(jié)合圖3對本實(shí)施例的方法進(jìn)行說明。
本實(shí)施例中,假設(shè)預(yù)先存儲(chǔ)有北京市五環(huán)公路上行/下行這一整合道路的信息,在該整合道路信息中,包括北京市五環(huán)公路名稱、五環(huán)路上行道路所包含的所有路段的id與索引信息、五環(huán)路下行道路所包含的所有路段的id與索引信息(包括索引值)等。
在需要進(jìn)行城市快速公路優(yōu)先的最短路徑計(jì)算時(shí),設(shè)定本次最短路徑計(jì)算的起點(diǎn)和終點(diǎn)分別為圖3中的兩個(gè)五星標(biāo)志處,如起點(diǎn)為北京東小口森林公園,終點(diǎn)為北京市南苑機(jī)場。首先,本實(shí)施例應(yīng)從起點(diǎn)和終點(diǎn)分別進(jìn)行最短路徑的計(jì)算,在基于起點(diǎn)的第一最短路徑中的路段一的道路名稱為北京市五環(huán)公路上行/下行,且基于終點(diǎn)的第二最短路徑中包含有道路名稱為北京市五環(huán)公路上行/下行的路段二時(shí),本實(shí)施例暫且不再繼續(xù)進(jìn)行基于起點(diǎn)的最短路徑計(jì)算以及基于終點(diǎn)的最短路徑計(jì)算,而是獲取路段一對應(yīng)的索引值以及路段二對應(yīng)的索引值,并從預(yù)先存儲(chǔ)的北京市五環(huán)公路上行/下行的整合道路信息中獲取這兩個(gè)索引值之間的所有中間路段;這兩個(gè)索引值之間的所有路段構(gòu)成中間路徑,且中間路徑連通第一最短路徑中的路段一之前的路徑(包含路段一)和第二最短路徑中的路段二之前的路徑(包含路段二);拼接第一最短路徑中的路段一之前的路徑、中間路徑和第二最短路徑中的路段二之間的路徑,得到待定路徑;之后,計(jì)算北京東小口森林公園和北京市南苑機(jī)場的直線距離以及待定路徑的長度,并判斷待定路徑的長度與該直線距離的比值是否大于預(yù)置的比例閾值,如果比值大于預(yù)置的比例閾值,則繼續(xù)進(jìn)行第一最短路徑的計(jì)算過程以及第二最短路徑的計(jì)算過程,并在最短路徑的計(jì)算過程中執(zhí)行上述第一最短路徑和第二最短路徑是否包含有路段一和路段二的判斷操作、獲取索引值的操作、計(jì)算長度的操作以及判斷操作;而如果比值不大于預(yù)置的比例閾值,則將該待定路徑確定為本次規(guī)劃出的從起點(diǎn)(如北京東小口森林公園)到終點(diǎn)(如北京市南苑機(jī)場)的完整路徑。
由上述描述可知,由于本實(shí)施例的最短路徑的計(jì)算量包括:圖3中起點(diǎn) 周圍路段的計(jì)算量(如對圖3中的上側(cè)圓圈所覆蓋的路段進(jìn)行計(jì)算的計(jì)算量)以及圖3中終點(diǎn)周圍路段的計(jì)算量(如對圖3中的下側(cè)圓圈所覆蓋的路段進(jìn)行計(jì)算的計(jì)算量),而不會(huì)包括對圖3中的中部區(qū)域的橢圓所覆蓋的路段進(jìn)行計(jì)算的計(jì)算量,因此,本實(shí)施例能夠在較大程度上減小路徑的計(jì)算量,有效提高了路徑規(guī)劃效率。
實(shí)施例四、路徑規(guī)劃裝置。
本實(shí)施例的路徑規(guī)劃裝置通常設(shè)置于智能電子設(shè)備中,且該路徑規(guī)劃裝置既可以設(shè)置于網(wǎng)絡(luò)側(cè)的智能電子設(shè)備中,也可以設(shè)置于用戶側(cè)的智能電子設(shè)備中,具體的,本實(shí)施例所記載的路徑規(guī)劃裝置可以設(shè)置于用戶側(cè)的智能電子設(shè)備中(如移動(dòng)電話、平板電腦或者計(jì)算機(jī)等),如設(shè)置于用戶設(shè)備所安裝的電子地圖app中。本實(shí)施例不限制路徑規(guī)劃裝置所適用的硬件環(huán)境。
圖4中的裝置主要包括:獲取模塊400、計(jì)算模塊410以及路徑生成模塊420。
獲取模塊400,用于獲取起點(diǎn)和終點(diǎn)。
具體的,獲取模塊400所獲取到的起點(diǎn)和終點(diǎn)(如可以是需要進(jìn)行最短路徑計(jì)算的起點(diǎn)和終點(diǎn))可以是在用戶通過相應(yīng)的用戶交互界面執(zhí)行相應(yīng)的操作(如在用戶交互界面輸入框中進(jìn)行的文字輸入操作或者在電子地圖界面的選點(diǎn)操作等)而獲取到的起點(diǎn)和終點(diǎn);如在用戶進(jìn)入電子地圖的app(應(yīng)用)后,應(yīng)用為用戶展示相應(yīng)的電子地圖主界面,用戶可以在電子地圖主界面進(jìn)行選點(diǎn)操作得到起點(diǎn)和終點(diǎn),用戶還可以在電子地圖主界面點(diǎn)擊“路線”或“導(dǎo)航”后跳轉(zhuǎn)到相應(yīng)的路徑規(guī)劃頁面,用戶在路徑規(guī)劃頁面的輸入框中輸入相應(yīng)的起點(diǎn)和終點(diǎn)。當(dāng)然用戶可以在路徑規(guī)劃頁面的起點(diǎn)輸入框中輸入起點(diǎn)關(guān)鍵詞,應(yīng)用會(huì)在下拉框中展示與該起點(diǎn)關(guān)鍵詞相關(guān)的多個(gè)地名,在用戶從下拉框中選擇一個(gè)地名時(shí),該地名被獲取模塊400作為起點(diǎn),同樣的,用戶可以在相應(yīng)的路徑規(guī)劃頁面的終點(diǎn)輸入框中輸入終點(diǎn)關(guān)鍵詞,應(yīng)用會(huì)在下拉框中展示與該終點(diǎn)關(guān)鍵詞相關(guān)的多個(gè)地名,在用戶從下拉框中選擇一個(gè)地名時(shí),該地名獲取模塊400被作為終點(diǎn)。另外,本實(shí)施例也可以根據(jù)用戶的相應(yīng)操作將用戶的當(dāng)前所在地作為起點(diǎn)。再有,本實(shí)施例可以將用戶以前搜 索過的多個(gè)終點(diǎn)信息展示給用戶,從而本實(shí)施例可以根據(jù)用戶在該展示出的多個(gè)終點(diǎn)信息中的選擇來獲取終點(diǎn)。本實(shí)施例不限制獲取起點(diǎn)和終點(diǎn)的具體實(shí)現(xiàn)方式。
計(jì)算模塊410,用于從起點(diǎn)和終點(diǎn)分別進(jìn)行最短路徑計(jì)算,并在最短路徑計(jì)算過程中,執(zhí)行以下獲取步驟:當(dāng)判斷從起點(diǎn)進(jìn)行最短路徑計(jì)算得到的第一最短路徑中的路段一與從終點(diǎn)進(jìn)行最短路徑計(jì)算得到的第二最短路徑中的路段二具有相同道路標(biāo)識(shí)時(shí),從道路數(shù)據(jù)庫中獲取連通路段一和路段二的中間路段,并將該中間路段連接為中間路徑,其中中間路段的道路標(biāo)識(shí)與路段一和路段二的道路標(biāo)識(shí)相同。
路徑生成模塊420,用于根據(jù)第一最短路徑、中間路徑以及第二最短路徑,生成從起點(diǎn)到終點(diǎn)的路徑。
路徑生成模塊420,具體地,將上述第一最短路徑中的路段一之前的路徑(包含路段一)、中間路徑以及第二最短路徑中的路段二之前的路徑(包含路段二)順序連接(如基于各路段的坐標(biāo)將路段一之前的路徑中的所有路段、中間路徑中的所有路段以及路段二之前的路徑中的所有路段順序連接起來),從而形成規(guī)劃出的從起點(diǎn)到終點(diǎn)的完整路徑。
在一個(gè)實(shí)施例中,本實(shí)施例的路徑生成模塊420可以可選的包括:第一子模塊、第二子模塊以及第三子模塊;其中:第一子模塊,用于將所述第一最短路徑中路段一以前的路徑(包括路段一)、中間路徑和第二最短路徑中路段二以前的路徑(包括路段二)拼接成一條待定路徑;第二子模塊,用于計(jì)算所述起點(diǎn)與終點(diǎn)之間的直線距離,以及所述待定路徑的長度(待定路徑中各個(gè)路段的長度的和值);第三子模塊,用于判斷所述待定路徑的長度與所述直線距離的比值是否大于預(yù)置的比例閾值,若是則觸發(fā)所述計(jì)算模塊410從起點(diǎn)接續(xù)第一最短路徑和從終點(diǎn)接續(xù)第二最短路徑進(jìn)行最短路徑計(jì)算,并在最短路徑計(jì)算過程中執(zhí)行所述獲取步驟;若否,則將所述待定路徑確定為從所述起點(diǎn)到所述終點(diǎn)的路徑。
在另一個(gè)實(shí)施例中,本實(shí)施例的路徑生成模塊420可以可選的包括:第四子模塊以及第五子模塊,其中,第四子模塊,用于計(jì)算所述中間路徑的長度;第五子模塊,用于判斷所述中間路徑的長度是否大于等于預(yù)置的長度閾 值,若是,則觸發(fā)所述計(jì)算模塊410從起點(diǎn)接續(xù)第一最短路徑和從終點(diǎn)接續(xù)第二最短路徑進(jìn)行最短路徑計(jì)算并在最短路徑計(jì)算過程中執(zhí)行所述獲取步驟;若否,則將所述第一最短路徑中路段一以前的路徑、中間路徑和第二最短路徑中路段二以前的路徑拼接成一條從所述起點(diǎn)到所述終點(diǎn)的路徑。
計(jì)算模塊410在最短路徑計(jì)算過程中,應(yīng)不斷的判斷當(dāng)前計(jì)算獲得的基于起點(diǎn)的第一最短路徑和基于終點(diǎn)的第二最短路徑中是否包含有具有相同道路標(biāo)識(shí)的路段,如通過最短路徑計(jì)算每獲得一個(gè)基于起點(diǎn)的第一最短路徑中的新路段時(shí),均應(yīng)判斷一下該新路段的道路標(biāo)識(shí)是否出現(xiàn)在當(dāng)前計(jì)算獲得的基于終點(diǎn)的第二最短路徑中,如果出現(xiàn)在當(dāng)前計(jì)算獲得的基于終點(diǎn)的第二最短路徑中,則將該新路段作為路段一,而將第二最短路徑中的與路段一具有相同道路標(biāo)識(shí)的路段作為路段二,計(jì)算模塊410可以暫且停止當(dāng)前的最短路徑的計(jì)算過程,而如果沒有出現(xiàn)在當(dāng)前計(jì)算獲得的基于終點(diǎn)的第二最短路徑中,則不應(yīng)打斷當(dāng)前的最短路徑的計(jì)算過程,即計(jì)算模塊410繼續(xù)進(jìn)行最短路徑的計(jì)算過程,直到確定出基于起點(diǎn)的第一最短路徑和基于終點(diǎn)的第二最短路徑中包含具有相同道路標(biāo)識(shí)的路段為止。再如計(jì)算模塊410通過最短路徑計(jì)算每獲得一個(gè)基于終點(diǎn)的第二最短路徑中的新路段時(shí),均應(yīng)判斷該新路段的道路標(biāo)識(shí)是否出現(xiàn)在當(dāng)前計(jì)算獲得的基于起點(diǎn)的第一最短路徑中,如果出現(xiàn)在當(dāng)前計(jì)算獲得的基于起點(diǎn)的第一最短路徑中,則將該新路段作為路段二,將第一最短路徑中的與路段二具有相同道路標(biāo)識(shí)的路段作為路段一,計(jì)算模塊410可以先停止當(dāng)前的最短路徑的計(jì)算過程,如果沒有出現(xiàn)在當(dāng)前計(jì)算獲得的基于起點(diǎn)的第一最短路徑中,則不應(yīng)打斷當(dāng)前的最短路徑的計(jì)算過程,即計(jì)算模塊410繼續(xù)進(jìn)行最短路徑的計(jì)算過程,直到判斷出基于起點(diǎn)的第一最短路徑和基于終點(diǎn)的第二最短路徑中包含具有相同道路標(biāo)識(shí)的路段為止。
計(jì)算模塊410判斷從起點(diǎn)進(jìn)行最短路徑計(jì)算得到的第一最短路徑中的路段一與從終點(diǎn)進(jìn)行最短路徑計(jì)算得到的第二最短路徑中的路段二具有相同道路標(biāo)識(shí),具體可通過以下兩種方式實(shí)現(xiàn):
方式1、從起點(diǎn)進(jìn)行最短路徑計(jì)算的過程中,每計(jì)算得到一條構(gòu)成所述第一最短路徑的新路段時(shí),將該新路段的道路標(biāo)識(shí)與第二最短路徑中包含的 路段的道路標(biāo)識(shí)進(jìn)行比較;當(dāng)?shù)诙疃搪窂街邪c所述新路段的道路標(biāo)識(shí)相同的路段時(shí),將該路段作為路段二,將所述新路段作為路段一;當(dāng)?shù)诙疃搪窂街胁话c所述新路段的道路標(biāo)識(shí)相同的路段時(shí),從起點(diǎn)接續(xù)第一最短路徑和從終點(diǎn)接續(xù)第二最短路徑進(jìn)行最短路徑計(jì)算,并在最短路徑計(jì)算過程中繼續(xù)執(zhí)行所述獲取步驟;
方式2、從終點(diǎn)進(jìn)行最短路徑計(jì)算的過程中,每計(jì)算得到一條構(gòu)成所述第二最短路徑的新路段時(shí),將該新路段的道路標(biāo)識(shí)與第一最短路徑中包含的路段的道路標(biāo)識(shí)進(jìn)行比較;當(dāng)?shù)谝蛔疃搪窂街邪信c所述新路段的道路標(biāo)識(shí)相同的路段時(shí),將該路段作為路段一,將所述新路段作為路段二;當(dāng)?shù)谝蛔疃搪窂街胁话c所述新路段的道路標(biāo)識(shí)相同的路段時(shí),從起點(diǎn)接續(xù)第一最短路徑和從終點(diǎn)接續(xù)第二最短路徑進(jìn)行最短路徑計(jì)算,并在最短路徑計(jì)算過程中繼續(xù)執(zhí)行所述獲取步驟。
優(yōu)選地,本發(fā)明實(shí)施例中,計(jì)算模塊410從所述起點(diǎn)和終點(diǎn)分別進(jìn)行最短路徑計(jì)算,具體用于:
基于優(yōu)先選取預(yù)置的道路集合中包含的道路的路段原則,從所述起點(diǎn)和終點(diǎn)分別進(jìn)行最短路徑計(jì)算;其中,道路集合中的道路為道路級(jí)別不低于預(yù)置級(jí)別閾值的主干路。具體地,計(jì)算模塊410可以從起點(diǎn)和終點(diǎn)分別在預(yù)置的道路集合中包含的路段進(jìn)行最短計(jì)算。優(yōu)選地,在一個(gè)實(shí)施例中,道路集合包含的道路可以是某區(qū)域內(nèi)的主干路網(wǎng)的路段,該主干路網(wǎng)的路段可以包括:城市快速公路、環(huán)路、高速公路、國道以及省道等;本實(shí)施例規(guī)劃出的起點(diǎn)到終點(diǎn)的路徑所包含的路段均是主干路網(wǎng)路段。
在另一個(gè)實(shí)施例中,道路集合包含的道路也可以某區(qū)域內(nèi)的全路網(wǎng)路段,即本實(shí)施例中的道路集合中存儲(chǔ)的路段是某區(qū)域內(nèi)包含的所有路段。
本實(shí)施例中的某區(qū)域可以是指一個(gè)行政區(qū)劃或者多個(gè)行政區(qū)劃,甚至全國范圍或者多個(gè)國家范圍,或者還可以是自定義的一個(gè)地理范圍等。本實(shí)施例不限制道路集合的具體表現(xiàn)形式。
計(jì)算模塊410在根據(jù)道路集合中的路段從起點(diǎn)和終點(diǎn)分別進(jìn)行最短路徑計(jì)算的過程中,可以基于優(yōu)先級(jí)高于預(yù)置級(jí)別閾值的優(yōu)先原則從起點(diǎn)和終點(diǎn)分別進(jìn)行最短路徑計(jì)算,也就是說,本實(shí)施例計(jì)算模塊410在進(jìn)行最短路徑 計(jì)算過程中可以優(yōu)先選取優(yōu)先級(jí)高于預(yù)置級(jí)別閾值的路段進(jìn)行最短路徑的計(jì)算,在路徑計(jì)算失敗時(shí)再選擇優(yōu)先級(jí)低于或等于預(yù)置級(jí)別閾值的路段進(jìn)行最短路徑的計(jì)算。采用該種方式使得確保規(guī)劃出的路徑時(shí)高優(yōu)先級(jí)路段組成的路徑,以盡可能的滿足用戶的實(shí)際需求。
本實(shí)施例中的預(yù)置級(jí)別閾值可以具體包括:城市快速公路級(jí)別、環(huán)路級(jí)別或者高速公路級(jí)別等。另外,本實(shí)施例中的預(yù)置級(jí)別閾值可以是根據(jù)用戶的選擇而設(shè)置的預(yù)置級(jí)別閾值,如用戶在選擇起點(diǎn)和終點(diǎn)時(shí),可以同時(shí)選擇一個(gè)預(yù)置級(jí)別閾值;一個(gè)具體的例子,在用戶在相應(yīng)的用戶界面中選擇了“城市快速公路優(yōu)先”這一選項(xiàng)時(shí),本實(shí)施例將城市快速公路級(jí)別作為預(yù)置級(jí)別閾值。另外,本實(shí)施例中的預(yù)置級(jí)別閾值也可以是根據(jù)缺省設(shè)置信息而設(shè)置的預(yù)置級(jí)別閾值,例如,當(dāng)前缺省設(shè)置信息為城市快速公路級(jí)別,在用戶不修改該缺省設(shè)置信息的情況下,本實(shí)施例將城市快速公路級(jí)別作為預(yù)置級(jí)別閾值。
本實(shí)施例的計(jì)算模塊410可以采用現(xiàn)有的多種最短路徑算法從起點(diǎn)和終點(diǎn)分別進(jìn)行最短路徑計(jì)算,本實(shí)施例不限制所采用的最短路徑算法的具體實(shí)現(xiàn)方式。計(jì)算模塊410在判斷出當(dāng)前計(jì)算獲得的基于起點(diǎn)的第一最短路徑和基于終點(diǎn)的第二最短路徑中包含有具有相同道路標(biāo)識(shí)的路段時(shí),應(yīng)獲取用于連通當(dāng)前計(jì)算獲得的第一最短路徑中的路段一之前的路徑(包含路段一)和當(dāng)前計(jì)算獲得的第二最短路徑中的路段二之前的路徑(包含路段二)的所有具有路段一/路段二的道路標(biāo)識(shí)的中間路段。
該計(jì)算模塊410從道路數(shù)據(jù)庫中獲取連通所述路段一和路段二的中間路段,具體包括:從道路數(shù)據(jù)庫中預(yù)先存儲(chǔ)的具有道路標(biāo)識(shí)的整合道路中,獲取道路標(biāo)識(shí)與所述路段一和路段二的道路標(biāo)識(shí)相同的整合道路;其中整合道路是指由道路標(biāo)識(shí)相同且具有連通關(guān)系的多個(gè)路段拼接而成的道路;確定路段一和路段二在獲取的整合道路中的位置,將該整合道路中位于所述路段一和路段二之間的路段確定為中間路段。
計(jì)算模塊410獲取中間路段的一種具體實(shí)現(xiàn)方式可以為:
本實(shí)施例的裝置中的道路數(shù)據(jù)庫中預(yù)先存儲(chǔ)有多條整合道路信息,每一條整合道路均由具有相同道路標(biāo)識(shí)的多個(gè)路段形成(即整合道路是指由道路 標(biāo)識(shí)相同且具有連通關(guān)系的多個(gè)路段拼接而成的道路),且整合道路的道路標(biāo)識(shí)與其所包含的多個(gè)路段所具有的道路標(biāo)識(shí)相同;另外,不同整合道路的道路標(biāo)識(shí)不相同。具體的,本實(shí)施例可以將北京市二環(huán)路內(nèi)環(huán)以及北京市二環(huán)路外環(huán)分別作為一條整合道路,也可以將北京市三環(huán)路內(nèi)環(huán)以及北京市三環(huán)路外環(huán)分別作為一條整合道路,還可以將北京市西直門大街上行方向或者北京市西直門大街下行方向分別作為一條整合道路。
本實(shí)施例中的每一條整合道路所包含的所有路段均設(shè)置有索引信息,且存儲(chǔ)有路段id號(hào)與其索引信息的對應(yīng)關(guān)系;且一條整合道路所包含的所有路段各自對應(yīng)的索引信息的順序排序位置可以表示出所有路段在整合道路中順序排列位置,即各路段的索引信息的排序可以表示出整合道路中的各路段的實(shí)際銜接順序,更具體而言,本實(shí)施例可以通俗的將一條整合道路所包含的所有路段分別對應(yīng)的索引信息理解為一條公交線路中的順序排列的站號(hào)。另外,本實(shí)施例的裝置中的預(yù)先存儲(chǔ)的整合道路信息可以包括該整合道路中的每一個(gè)路段的索引信息以及各路段的坐標(biāo)信息等。
由此,計(jì)算模塊410可以先根據(jù)路段一的id號(hào)、路段二的id號(hào),從預(yù)先存儲(chǔ)的整合道路信息中與該路段一/路段二的道路標(biāo)識(shí)相同的整合道路中的路段id與索引信息的對應(yīng)關(guān)系中確定出路段一和路段二分別對應(yīng)的索引信息,再將路段一的索引信息與路段2的索引信息之間的路段確定為中間路段,該多個(gè)中間路段構(gòu)成的路徑即為中間路徑。
如對于高速公路而言,路段一和路段二對應(yīng)的索引信息可以具體為進(jìn)入高速的入口標(biāo)識(shí)信息或者駛出高速的出口標(biāo)識(shí)信息等;再如對于城市環(huán)路而言,路段一和路段二對應(yīng)的索引信息可以為由輔路進(jìn)入主路的入口標(biāo)識(shí)信息或者由主路到輔路的出口標(biāo)識(shí)信息等。
本實(shí)施例不限制路段一和路段二對應(yīng)的索引信息的具體表現(xiàn)形式。在確定出路段一和路段二分別對應(yīng)的索引信息之后,計(jì)算模塊410可以利用這兩個(gè)索引信息從預(yù)先存儲(chǔ)的整合道路信息中獲取這兩個(gè)索引信息之間的所有路段,這兩個(gè)索引信息之間的所有路段即為上述用于連通當(dāng)前計(jì)算獲得的第一最短路徑中的路段一之前的路徑和第二最短路徑中的路段二之前的路徑的具有路段一/路段二的道路標(biāo)識(shí)的中間路段,計(jì)算模塊410將獲取到的多個(gè)中間 路段連接為中間路徑。
本實(shí)施的一個(gè)具體的例子,北京市二環(huán)路由于紅綠燈、收費(fèi)站、交叉路口、車道數(shù)量以及出入口等多種因素而被劃分為具有不同道路屬性的數(shù)十條甚至上百個(gè)路段,本實(shí)施例可以將北京市二環(huán)路內(nèi)環(huán)/外環(huán)作為一條整合道路,并存儲(chǔ)該整合道路信息,如本實(shí)施例的裝置存儲(chǔ)組成該整合道路的所有路段的索引信息等;在計(jì)算模塊410判斷出當(dāng)前計(jì)算獲得的第一最短路徑中的路段一和第二最短路徑的路段二的道路名稱均為北京市二環(huán)路內(nèi)環(huán)/外環(huán)時(shí),計(jì)算模塊410應(yīng)獲取第一最短路徑中的路段一所對應(yīng)索引信息(如索引值為3),并獲取第二最短路徑中的路段二所對應(yīng)的索引信息(如索引值為10),然后,計(jì)算模塊410利用這兩個(gè)索引信息從預(yù)先存儲(chǔ)的北京市二環(huán)路內(nèi)環(huán)/外環(huán)的整合道路信息中獲取這兩個(gè)索引信息之間的所有路段,即索引值為4-9的所有路段,索引值為4-9的所有路段即為上述用于連通當(dāng)前計(jì)算獲得的第一最短路徑中的路段一之前的路徑和第二最短路徑中的路段二之前的路徑的所有具有北京市二環(huán)路內(nèi)環(huán)/外環(huán)這一道路名稱的中間路段,計(jì)算獲取模塊410可以將索引值為4-9的各中間路段拼接為中間路徑。
本實(shí)施例中的具有相同道路標(biāo)識(shí)的路段通常是指具有相同道路名稱的路段,即本實(shí)施例中的道路標(biāo)識(shí)可以為道路名稱;道路集合中的每一個(gè)路段都具有該路段所在道路的道路名稱。
需要注意的是,本發(fā)明的一部分可以被應(yīng)用為計(jì)算機(jī)程序產(chǎn)品,例如計(jì)算機(jī)程序指令,當(dāng)其被智能電子設(shè)備(如智能移動(dòng)電話或者平板電腦等)執(zhí)行時(shí),通過該智能電子設(shè)備的操作可以調(diào)用或者提供根據(jù)本發(fā)明的方法和/或技術(shù)方案。而調(diào)用本發(fā)明的方法的程序指令,可能被存儲(chǔ)在固定的或者可移動(dòng)的記錄介質(zhì)中,和/或通過廣播或者其他信號(hào)承載媒體中的數(shù)據(jù)流而被傳輸,和/或被存儲(chǔ)在根據(jù)所述程序指令運(yùn)行的智能電子設(shè)備的工作存儲(chǔ)器中。在此,根據(jù)本發(fā)明的一個(gè)實(shí)施例包括一個(gè)裝置,該裝置包括用于存儲(chǔ)計(jì)算機(jī)程序指令的存儲(chǔ)器和用于執(zhí)行程序指令的處理器,其中,當(dāng)該計(jì)算機(jī)程序指令被該處理器執(zhí)行時(shí),觸發(fā)該裝置運(yùn)行基于前述根據(jù)本發(fā)明的多個(gè)實(shí)施例的方法和/或技術(shù)方案。
對于本領(lǐng)域技術(shù)人員而言,顯然本發(fā)明并不限于上述示范性實(shí)施例的細(xì) 節(jié),而且在不背離本發(fā)明的精神或基本特征的情況下,能夠以其他的具體形式實(shí)現(xiàn)本發(fā)明。因此,無論從哪一點(diǎn)來看,均應(yīng)將本發(fā)明實(shí)施例看作是示范性的,而且是非限制性的,本發(fā)明的范圍由所附權(quán)利要求而不是上述說明限定,因此,旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化涵括在本發(fā)明內(nèi)。而不應(yīng)將權(quán)利要求中的任何附圖標(biāo)記視為限制所涉及的權(quán)利要求。此外,顯然“包括”一詞不排除其他單元或步驟,單數(shù)不排除復(fù)數(shù)。系統(tǒng)權(quán)利要求中陳述的多個(gè)單元或裝置也可以由一個(gè)單元或裝置通過軟件或者硬件來實(shí)現(xiàn)。第一,第二等詞語用來表示名稱,而并不表示任何特定的順序。