本發(fā)明涉及定位導航技術領域,特別是涉及一種校區(qū)實時導航系統(tǒng)。
背景技術:
當前很多大學的校區(qū)只有簡易標識的校園地圖,沒有能夠體現(xiàn)校園特色的地圖,如果需要為某個具體的范圍區(qū)域量身定制一份標記各個地點的特色地圖,利用當前的導航系統(tǒng)技術所存在的最核心的問題如下:
當前存在的導航系統(tǒng)給出的導航路線不是最短路的問題
給出的導航路線存在某些路段實際是不能通行的問題;
對于某個具體的范圍區(qū)域內(nèi)的很多地點不能提供導航的問題;
不能提供在某個具體的范圍區(qū)域的組團區(qū)內(nèi)導航的問題。
技術實現(xiàn)要素:
為了克服上述現(xiàn)有技術中存在的缺陷,本發(fā)明提出了一種用于校區(qū)內(nèi)的復合式導航方法,利用SPFA最短路徑算法,針對天津大學北洋園校區(qū)內(nèi)的道路、建筑給出相應的導航路徑并根據(jù)定位進行實時導航。
本發(fā)明的一種用于校區(qū)內(nèi)的復合式導航方法,該方法包括以下步驟:
步驟1、在整個校園范圍內(nèi)針對校園內(nèi)部的道路以及建筑進行取點,記錄對應的描述信息以及經(jīng)緯度坐標,組成點集V;建立點集V中的點與點之間的連通關系;將每對兩兩可達的點之間建立表示連通的一條邊,組成邊集E,建立點與點之間的連通關系拓撲圖;
步驟2、通過導航定位技術獲取當前位置的經(jīng)緯坐標,在校園中定位當前位置;
步驟3、初始化設置dis[S]=0,dis[i]=無窮大,將源點S加入隊列,并在隊列中進行標記,運用最短路徑SPFA算法,得到起點到終點的導航路徑,重復進行以下操作,隊列為空時算法結束,算法具體包括:
(1)、從隊首取出一個結點u,將u標記為不在隊列中,遍歷所有和u直接相連的結點;
(2)、對于每個和u直接相連的結點v,若滿足dis[v]>dis[u]+w(u,v),則更新dis[v]的值,令dis[v]=dis[u]+w(u,v),即對于結點v進行松弛操作。
(3)、若對于dis[v]進行了更新,則檢查v的標記,假如點v不在隊列中,則將點v的標記更新為在隊列中,并將點v加入隊尾;
步驟4、將結果顯示在地圖之上;
步驟5、根據(jù)定位定時刷新,判斷刷新結果是否偏離規(guī)劃好的路線,若發(fā)生偏離則重新規(guī)劃。
所述取點對應組團位置,以支持組團內(nèi)的導航。
與現(xiàn)有技術相比,本發(fā)明為學校量身定制,可以精準的提供最短路徑,所有提供的路徑,都可以通行,校區(qū)內(nèi)所有地點都可以給出精準的導航路徑,并且可以實現(xiàn)組團區(qū)內(nèi)的導航。
附圖說明
圖1為本發(fā)明與現(xiàn)有技術的路徑準確性對比圖,左邊為本發(fā)明導航算法路徑,右邊為現(xiàn)有導航算法路徑;
圖2為本發(fā)明與現(xiàn)有技術的組團區(qū)內(nèi)導航導航情況對比圖;
圖3為本發(fā)明全局地圖示意圖;
圖4為本發(fā)明的整體流程示意圖。
具體實施方式
求單源最短路的SPFA算法的全稱是:Shortest Path Faster Algorithm,是西南交通大學段凡丁于1994年發(fā)表的。使用SPFA算法,解決給定的圖存在負權邊的問題。
本發(fā)明是利用SPFA算法,根據(jù)天津大學北洋園校區(qū)的建筑和路況信息,抽象出圖模型,設置節(jié)點和邊,求得最短路徑。
以下結合附圖對本發(fā)明的方案進行詳細說明。
如圖4所示,為本發(fā)明的校園導航方法整體流程示意圖。
步驟1、取點:針對校園內(nèi)部的道路以及建筑,按照地形的復雜程度,每隔10-50米取一個點,記錄對應的描述信息以及經(jīng)緯度坐標,組成點集V。
步驟2、建邊:建立點集V中的點與點之間的連通關系;將每對兩兩可達的點之間建立表示連通的一條邊,組成邊集E
E={(vi,vj)|vi,vj∈V}
步驟3、建圖:根據(jù)獲取的邊集和點集信息,針對整個校園建立一個無向拓撲圖。
步驟4、由定位系統(tǒng)定位到用戶當前位置,獲取當前所在位置的經(jīng)緯坐標,根據(jù)該經(jīng)緯坐標,在半徑為50米的圓形區(qū)域尋找點集中與當前位置最接近的點;
步驟5、使用SPFA最短路徑算法尋找最短路徑。
算法原理:記源點為S,源點S到達點i的路徑記為dis[i],源點S到達點i的最短路徑記作dis[S],初始時,除了dis[S],其他dis[i]皆為未知,將dis[i]初始化為無窮大,特別的將dis[S]初始化為0。W(i,j)表示從i點到j點的權值,即根據(jù)經(jīng)緯坐標計算出的距離。算法的目的是在運行過程中,通過迭代不斷減小dis[]的數(shù)值,直至該數(shù)組中保存的數(shù)值減小為到達該點的實際最短路徑的大小。
算法流程:初始化設置dis[S]=0,dis[i]=無窮大,將源點S加入隊列,并在隊列中進行標記。重復進行以下操作,隊列為空時算法結束:
(1)、從隊首取出一個結點u,將u標記為不在隊列中,遍歷所有和u直接相連的結點;
(2)、對于每個和u直接相連的結點v,若滿足dis[v]>dis[u]+w(u,v),則更新dis[v]的值,令dis[v]=dis[u]+w(u,v),即對于結點v進行松弛操作。
(3)、若對于dis[v]進行了更新,則檢查v的標記,假如點v不在隊列中,則將點v的標記更新為在隊列中,并將點v加入隊尾;
步驟6、根據(jù)定位定時刷新,判斷刷新結果是否偏離規(guī)劃好的路線,若發(fā)生偏離則重新規(guī)劃。
所得得到的導航地圖分成三個層級,每個層級分別由16塊,256塊,1024塊圖片構成整張地圖;對地圖進行縮放時,進入不同層級,顯示圖片。使用圖層覆蓋技術,加快頁面中圖片的加載速度。使用redis緩存,加快數(shù)據(jù)的加載速度。
天津大學北洋園校區(qū)導航系統(tǒng)可以實現(xiàn)校園內(nèi)的精準導航,相比現(xiàn)有的地圖導航,更加的準確?,F(xiàn)有導航提供的路徑并不是最近的路徑,而且對于校園內(nèi)部的情況不夠了解,提供的許多路徑實際上是不能通行,許多學校內(nèi)的地點不可以選為終點,即輸入許多學校內(nèi)的地點是找不到導航路徑的,天津大學北洋園校區(qū),由書院制組團構成,現(xiàn)有導航系統(tǒng)是不支持組團內(nèi)的導航的,而天津大學北洋園校區(qū)導航系統(tǒng)為學校量身定制,可以精準的提供最短路徑,所有提供的路徑,都可以通行,天津大學北洋園校區(qū)內(nèi)所有地點都可以給出精準的導航路徑,并且可以實現(xiàn)組團區(qū)內(nèi)的導航。相比現(xiàn)有的導航系統(tǒng),天津大學北洋園校區(qū)導航系統(tǒng)為天津大學北洋園校區(qū),量身定制了新的地圖,更能體現(xiàn)天津大學120年悠久的歷史文化。