專利名稱:一種基于WebGIS的公交導(dǎo)乘線路信息處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種公交導(dǎo)乘線路選擇方法,尤其是涉及一種基于WebGIS的公交導(dǎo)乘線路信息處理方法。
背景技術(shù):
目前,WebGIS在國內(nèi)外已得到越來越廣泛的應(yīng)用,城市交通電子地圖就是其中的一例,它是智能交通系統(tǒng)(Intelligent traffic System, ITS)的重要組成部分。在城市交通電子地圖中,人們廣泛關(guān)心的問題是對出行線路的選擇。對于采用公交出行的人們而言,出行線路的選擇主要集中在公交換乘方面,本文研究并提出了一種實用、便捷的公交換乘搜索算法,并采用中間件技術(shù)將其應(yīng)用于基于WebGIS的城市交通電子地圖。人們在選擇公交線路時考慮的因素很多,如乘車時間是否最少,乘車是否最方便(如換乘次數(shù)是否最少),乘車費用是否便宜,乘車路線是否最短,等等??梢?,人們出行時面對眾多的因素很難做出準確的判斷,所以希望電子地圖能提供多種出行的參考方案。如果將公交站點看成是圖(Graph)的頂點(Vertex),將公交線路看成是圖的邊(Edge),則求公交換乘選擇就等價于求圖的最短路徑問題。求圖的最短路徑的最直接方法是采用Dijkstra算法,該算法求從所有其余頂點到特定頂點的最短路徑的時間復(fù)雜度0(m+nlogn)。然而,在WebGIS中使用該算法有很大的局限性:Di jkstra算法的時間復(fù)雜度建立在圖已經(jīng)生成的基礎(chǔ)上,對于建立一個由近百條公交線路、每條線路有十幾個站點的圖來說,圖的生成時間是不允許忽略的。在WebGIS中,所有的公交線路信息放置在遠程數(shù)據(jù)庫服務(wù)器中,如果從數(shù)據(jù)庫中讀取全部的公交線路信息來生成圖是不現(xiàn)實的。
發(fā)明內(nèi)容
本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種基于WebGIS的公交導(dǎo)乘線路信息處理方法,該算法根據(jù)需要獲取公交線路信息,采用從簡到繁、遞增式的方式進行計算,并利用先前得到的結(jié)果作為后續(xù)計算的基礎(chǔ),整個信息處理方法高效合理。本發(fā)明的目的可以通過以下技術(shù)方案來實現(xiàn):一種基于WebGIS的公交導(dǎo)乘線路信息處理方法,包括以下步驟:I)輸入起始公交站點A和終點公交站點B ;2)從數(shù)據(jù)庫中獲取經(jīng)過起始公交站點A和終點公交站點B的公交線路號,并將它們分別存入動態(tài)數(shù)組strStartBusNum和動態(tài)數(shù)組strEndBusNum中;3)對動態(tài)數(shù)組strStartBusNum和動態(tài)數(shù)組strEndBusNum中的元素進行比較后,判斷是否存在公共線路,若為是,則存入動態(tài)數(shù)組strSameBusNum中,并打印輸出結(jié)果,退出;若為否,則執(zhí)行步驟4);4)將經(jīng)過起始點A和終點公交站點B的公交車所包含的所有站點分別存入動態(tài)數(shù)組intStartStop和動態(tài)數(shù)組intEndStop中,并比較這兩個動態(tài)數(shù)組,判斷是否存在公共站點C,若為是,則將公共站點C轉(zhuǎn)換成公交線路號,打印輸出結(jié)果,退出;若為否,則執(zhí)行步驟5);5)建立公交權(quán)值矩陣T,并對T進行賦值,通過比較公交權(quán)值來尋找兩次換乘的線路R,若找到則計算出換乘點和所乘的公交線路,并打印輸出,退出;若未找到,則執(zhí)行步驟
6);6)打印輸出失敗的信息,結(jié)束。所述的公交權(quán)值取I或0, I表不列項和行項對應(yīng)的兩個站點處于同一條線路中,可通過兩次換乘到達終點公交站點B,0表示列項和行項對應(yīng)的兩個站點不處于同一條線路,無法通過兩次換乘到達達終點公交站點B。與現(xiàn)有技術(shù)相比,本發(fā)明根據(jù)需要獲取公交線路信息,采用從簡到繁、遞增式的方式進行計算,并利用先前得到的結(jié)果作為后續(xù)計算的基礎(chǔ),整個信息處理方法高效合理。
圖1為本發(fā)明的流程圖;圖2為本發(fā)明硬件系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施例方式下面結(jié)合附圖和具體實施例對本發(fā)明進行詳細說明。實施例如圖1所示,一種基于WebGIS的公交導(dǎo)乘線路信息處理方法,包括以下步驟:步驟S1:輸入起始公交站點A和終點公交站點B ;步驟S2:從數(shù)據(jù)庫中獲取經(jīng)過起始公交站點A和終點公交站點B的公交線路號,并將它們分別存入動態(tài)數(shù)組strStartBusNum和動態(tài)數(shù)組strEndBusNum中;步驟S3:對動態(tài)數(shù)組strStartBusNum和動態(tài)數(shù)組strEndBusNum中的元素進行比較后,判斷是否存在公共線路,若為是,則存入動態(tài)數(shù)組strSameBusNum中,并打印輸出結(jié)果,退出;若為否,則執(zhí)行步驟S4;步驟S4:將經(jīng)過起始點A和終點公交站點B的公交車所包含的所有站點分別存入動態(tài)數(shù)組intStartStop和動態(tài)數(shù)組intEndStop中,并比較這兩個動態(tài)數(shù)組,判斷是否存在公共站點C,若為是,則將公共站點C轉(zhuǎn)換成公交線路號,打印輸出結(jié)果,退出;若為否,則執(zhí)行步驟S5 ;步驟S5:建立公交權(quán)值矩陣T,并對T進行賦值,通過比較公交權(quán)值來尋找兩次換乘的線路R,若找到則計算出換乘點和所乘的公交線路,并打印輸出,退出;若未找到,則執(zhí)行步驟S6 ;步驟S6:打印輸出失敗的信息,結(jié)束。在具體實現(xiàn)時,首先根據(jù)用戶輸入的起點A和終點B,利用GIS的buffer算法,通過搜索函數(shù),將起點和終點附近的公交站點分別放入兩個動態(tài)數(shù)組,讓用戶選擇起點A和終點B的公交站點。確定了公交站點后,搜索數(shù)據(jù)庫,查詢起點站A和終點站B是否有相同的車經(jīng)過,如果有,計算從起點A到終點B的路程,通過比較可以得到最短長度的公交線路,推薦給用戶;如果沒有,則計算從起點站A到終點站B之間有沒有一個公共站點C可以換車到達終點,這時候又可以分成兩種情況,如果有,則計算起點A和公共站點C有沒有相同的公交車經(jīng)過并存入動態(tài)數(shù)組,同樣,終點B和公共站點C有沒有相同的公交車經(jīng)過并存入動態(tài)數(shù)組,將這兩個動態(tài)數(shù)組比較后可以得到到達終點的公交車,然后計算出換乘方案,在這些換乘方案中通過路程計算函數(shù)得到路徑長度,顯示給用戶。以上是屬于換乘一次的情況。如果起點A和終點B之間沒有公共站點,就出現(xiàn)了要換乘兩次的情況。兩次換乘的實現(xiàn)參見公交權(quán)值矩陣T,在這個矩陣中存放的是公交權(quán)值。
權(quán)利要求
1.一種基于WebGIS的公交導(dǎo)乘線路信息處理方法,其特征在于,包括以下步驟: 1)輸入起始公交站點A和終點公交站點B; 2)從數(shù)據(jù)庫中獲取經(jīng)過起始公交站點A和終點公交站點B的公交線路號,并將它們分別存入動態(tài)數(shù)組strStartBusNum和動態(tài)數(shù)組strEndBusNum中; 3)對動態(tài)數(shù)組strStartBusNum和動態(tài)數(shù)組strEndBusNum這兩個數(shù)組中的元素進行比較后,判斷是否存在公共線路,若為是,則存入動態(tài)數(shù)組strSameBusNum中,并打印輸出結(jié)果,退出;若為否,則執(zhí)行步驟4); 4)將經(jīng)過起始點A和終點公交站點B的公交車所包含的所有站點分別存入動態(tài)數(shù)組intStartStop和動態(tài)數(shù)組intEndStop中,并比較這兩個動態(tài)數(shù)組,判斷是否存在公共站點C,若為是,則將公共站點C轉(zhuǎn)換成公交線路號,打印輸出結(jié)果,退出;若為否,則執(zhí)行步驟5); 5)建立公交權(quán)值矩陣T,并對T進行賦值,通過比較公交權(quán)值來尋找兩次換乘的線路R,若找到則計算出換乘點和所乘的公交線路,并打印輸出,退出;若未找到,則執(zhí)行步驟6); 6)打印輸出失敗的信息,結(jié)束。
2.根據(jù)權(quán)利要求1所述的一種基于WebGIS的公交導(dǎo)乘線路信息處理方法,其特征在于,所述的公交權(quán)值取I或0,I表示列項和行項對應(yīng)的兩個站點處于同一條線路中,可通過兩次換乘到達終點公交站點B,0表示列項和行項對應(yīng)的兩個站點不處于同一條線路,無法通過兩次換乘到達達終點公交站點B。
全文摘要
本發(fā)明涉及一種基于WebGIS的公交導(dǎo)乘線路信息處理方法,包括以下步驟輸入起始公交站點A和終點公交站點B;獲取經(jīng)過起始公交站點A和終點公交站點B的公交線路號,并將它們分別存入動態(tài)數(shù)組中;對數(shù)組中的元素進行比較后,判斷是否存在公共線路;判斷經(jīng)過起始點A和終點公交站點B的公交車所包含的所有站點是否存在公共站點C;建立公交權(quán)值矩陣T,并對T進行賦值,通過比較公交權(quán)值來尋找兩次換乘的線路R,若找到則計算出換乘點和所乘的公交線路,并打印輸出,退出;若未找到,則打印輸出失敗的信息并退出。與現(xiàn)有技術(shù)相比,本發(fā)明根據(jù)需要獲取公交線路信息,采用從簡到繁、遞增式的方式進行計算,并利用先前得到的結(jié)果作為后續(xù)計算的基礎(chǔ),整個算法高效合理。
文檔編號G06F17/30GK103092843SQ20111033540
公開日2013年5月8日 申請日期2011年10月29日 優(yōu)先權(quán)日2011年10月29日
發(fā)明者黃詩盛, 姚薇 申請人:上海遙薇(集團)有限公司