一種景區(qū)內(nèi)智能導(dǎo)航方法
【專利摘要】本發(fā)明公開(kāi)一種景區(qū)內(nèi)智能導(dǎo)航方法,其步驟為:首先采集獲取景區(qū)內(nèi)的線性路網(wǎng)信息數(shù)據(jù);然后對(duì)采集到的線性路網(wǎng)信息數(shù)據(jù)進(jìn)行處理,形成節(jié)點(diǎn)路網(wǎng),將景區(qū)內(nèi)線路轉(zhuǎn)化為mif數(shù)據(jù)文件格式;再建立路網(wǎng)數(shù)據(jù)模型,將線路存入道路集合中,將線路端點(diǎn)和連接點(diǎn)存入頂點(diǎn)集合;最后通過(guò)改進(jìn)的最短尋路算法進(jìn)行尋路,并將尋路結(jié)果標(biāo)示在地圖上。本發(fā)明通過(guò)對(duì)傳統(tǒng)最短尋路法進(jìn)行改進(jìn),實(shí)現(xiàn)了景區(qū)內(nèi)的路網(wǎng)信息采集處理及設(shè)施導(dǎo)航,能夠快速可靠的為景區(qū)內(nèi)游客提供由當(dāng)前位置到其它任意景區(qū)內(nèi)景點(diǎn)或設(shè)施(如洗手間、停車場(chǎng)、超市等)的最短導(dǎo)航路徑。
【專利說(shuō)明】
一種景區(qū)內(nèi)智能導(dǎo)航方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及導(dǎo)航技術(shù)領(lǐng)域,特別是一種景區(qū)內(nèi)智能導(dǎo)航方法。
【背景技術(shù)】
[0002]隨著國(guó)家號(hào)召景區(qū)智能旅游的實(shí)施落地,景區(qū)內(nèi)智能導(dǎo)游的需求日漸增加,而景區(qū)內(nèi)導(dǎo)航作為智能導(dǎo)游的重要組成部分,在目前市面上基本是空白。
[0003]現(xiàn)有的智能導(dǎo)游軟件,可以實(shí)現(xiàn)通過(guò)GPS定位,邊走邊聽(tīng)軟件內(nèi)的導(dǎo)游講解,但是對(duì)于景區(qū)內(nèi)路網(wǎng)信息的搜集和尋路系統(tǒng)并未實(shí)現(xiàn)。比如游客需要尋找附近的某個(gè)景點(diǎn)、超市或者洗手間,并且在地圖上標(biāo)示出對(duì)應(yīng)的最短導(dǎo)航路徑,這樣的功能實(shí)用并且迫切。而現(xiàn)有的地圖導(dǎo)航僅僅存在于景區(qū)外,景區(qū)內(nèi)的路網(wǎng)信息和導(dǎo)航功能基本是一片空白。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的技術(shù)問(wèn)題為:提供一種景區(qū)內(nèi)智能導(dǎo)航方法,為景區(qū)內(nèi)游客提供由當(dāng)前位置到其它任意景區(qū)內(nèi)景點(diǎn)或設(shè)施(如洗手間、停車場(chǎng)、超市等)的導(dǎo)航路徑。
[0005]本發(fā)明采取的技術(shù)方案具體為:一種景區(qū)內(nèi)智能導(dǎo)航方法,包括以下步驟:
步驟一,采集獲取景區(qū)內(nèi)的線性路網(wǎng)信息數(shù)據(jù);本步驟可通過(guò)實(shí)地道路信息采集來(lái)實(shí)現(xiàn),或者從其它途徑獲取景區(qū)內(nèi)的線性路網(wǎng)信息數(shù)據(jù);如實(shí)地道路信息采集可利用現(xiàn)有的手持式GIS地理信息數(shù)據(jù)采集器進(jìn)行。采集到的線性路網(wǎng)信息數(shù)據(jù)包括了組成景區(qū)內(nèi)各條線路的地理坐標(biāo)集,各條線路皆以一系列有序的地理信息點(diǎn)的形式呈現(xiàn);
步驟二,對(duì)采集到的線性路網(wǎng)信息數(shù)據(jù)進(jìn)行處理,形成節(jié)點(diǎn)路網(wǎng):計(jì)算景區(qū)內(nèi)各線路之間的交叉點(diǎn),以交叉點(diǎn)為中斷點(diǎn),將道路按照中斷點(diǎn)進(jìn)行打斷,使得打斷后的任意兩條線路不相交,但有基于某一點(diǎn)相接的可能;將打斷后的各條線路轉(zhuǎn)化為mif數(shù)據(jù)文件格式;
MIF文件是MapInfo通用數(shù)據(jù)交換格式,這種格式是ASCII碼,可以編輯容易生成,且可以工作在MapInfo支持的所有平臺(tái)上。它將MapInfο數(shù)據(jù)保存在兩個(gè)文件中:圖形數(shù)據(jù)保存在.MIF文件中,而文本(屬性)數(shù)據(jù)保存在.MID文件中。
[0006]*.mif文件保存了該Map inf ο表的表結(jié)構(gòu)及表中所有空間對(duì)象的空間信息(如:每個(gè)點(diǎn)對(duì)象的符號(hào)樣式、點(diǎn)位坐標(biāo);每個(gè)線對(duì)象的線樣式、節(jié)點(diǎn)數(shù)據(jù)、節(jié)點(diǎn)坐標(biāo);區(qū)域?qū)ο蟮奶畛淠J健⒚總€(gè)區(qū)域包含的子區(qū)域個(gè)數(shù)及每個(gè)區(qū)域的節(jié)點(diǎn)數(shù)、節(jié)點(diǎn)數(shù)等)。
[0007]步驟三,建立路網(wǎng)數(shù)據(jù)模型:讀取所有線路的mif數(shù)據(jù)文件信息,存入道路集合中;從所有道路對(duì)象中找出各道路對(duì)象與相鄰道路對(duì)象之間的連接點(diǎn),以及未與其它道路對(duì)象相連接的道路端點(diǎn),將前述各連接點(diǎn)和端點(diǎn)存入頂點(diǎn)集合;所述道路集合與頂點(diǎn)集合即組成所述路網(wǎng)數(shù)據(jù)模型;
所形成的路網(wǎng)數(shù)據(jù)模型可做到:指定某條道路對(duì)象,可以獲取其兩端頂點(diǎn);指定某個(gè)頂點(diǎn)對(duì)象,可以獲取其所連接的道路;
步驟四,通過(guò)改進(jìn)的最短尋路算法進(jìn)行尋路,并將尋路結(jié)果標(biāo)示在地圖上:
4.1獲取起點(diǎn)及用戶指定的終點(diǎn)的地理位置數(shù)據(jù); 4.2判斷起點(diǎn)和終點(diǎn)是否屬于頂點(diǎn)集合:
若起點(diǎn)和終點(diǎn)皆為頂點(diǎn),則利用標(biāo)準(zhǔn)Astar算法對(duì)起點(diǎn)和終點(diǎn)之間線路進(jìn)行最短路線尋路,然后輸出尋路結(jié)果;
若起點(diǎn)和終點(diǎn)中有至少一個(gè)不是頂點(diǎn),則從道路集合中尋找距離非頂點(diǎn)起點(diǎn)或終點(diǎn)最近的道路或者頂點(diǎn);然后判斷距離非定點(diǎn)起點(diǎn)或終點(diǎn)最近的是頂點(diǎn)還是道路:
若距離非頂點(diǎn)起點(diǎn)或終點(diǎn)最近的為頂點(diǎn)而非道路,則在非頂點(diǎn)起點(diǎn)或終點(diǎn)與最近頂點(diǎn)之間新建道路,得到對(duì)應(yīng)起點(diǎn)和終點(diǎn)的頂點(diǎn)或最近頂點(diǎn)信息,然后利用標(biāo)準(zhǔn)Astar算法對(duì)對(duì)應(yīng)起點(diǎn)和終點(diǎn)的頂點(diǎn)或最近頂點(diǎn)之間線路進(jìn)行最短路線尋路,最后輸出尋路結(jié)果;
若距離非頂點(diǎn)起點(diǎn)或終點(diǎn)最近的為道路而非頂點(diǎn),則從非頂點(diǎn)起點(diǎn)或終點(diǎn)處向相應(yīng)道路作垂線,以垂線與道路的相交點(diǎn)作為中斷點(diǎn),對(duì)道路進(jìn)行打斷,然后更新路網(wǎng)數(shù)據(jù)模型中的道路集合和頂點(diǎn)集合,使得垂線成為新的道路對(duì)象,非頂點(diǎn)的起點(diǎn)或終點(diǎn)成為新的頂點(diǎn);再利用標(biāo)準(zhǔn)Astar算法對(duì)對(duì)應(yīng)起點(diǎn)和終點(diǎn)的新的頂點(diǎn)之間線路進(jìn)行最短路線尋路,最后輸出尋路結(jié)果。
[0008]AStar算法為現(xiàn)有算法,其一般用于尋找網(wǎng)狀結(jié)構(gòu)中任意兩頂點(diǎn)之間的最短路線,這里的網(wǎng)狀結(jié)構(gòu)我們可以理解為路網(wǎng),此時(shí)即可以解決交叉路口之間的尋路。但是游客位置未必總是在交叉路口,大部分時(shí)候是存在于路網(wǎng)內(nèi)某條路的任一點(diǎn)上,甚至不在道路上。此時(shí),我們需要對(duì)AStar算法進(jìn)行改良,以滿足尋路要求。本發(fā)明方案即先將用戶引導(dǎo)至垂直距離最近的道路,或者最近的交叉路口(取決于哪種形式的距離更近),當(dāng)用戶進(jìn)入道路時(shí),在道路上標(biāo)記進(jìn)入點(diǎn),將此道路以進(jìn)入點(diǎn)為分界點(diǎn)打斷,轉(zhuǎn)化為交叉路口。重新構(gòu)造路網(wǎng)信息并轉(zhuǎn)化為標(biāo)準(zhǔn)的頂點(diǎn)到頂點(diǎn)的尋路。
[0009]進(jìn)一步的,本發(fā)明步驟二中,還包括以景區(qū)內(nèi)各分景點(diǎn)位置為中斷點(diǎn)對(duì)線路進(jìn)行打斷??杀WC當(dāng)某分景點(diǎn)僅位于一條道路上時(shí),使得此分景點(diǎn)在步驟三時(shí)形成頂點(diǎn)集合中的一個(gè)頂點(diǎn)對(duì)象,方便引導(dǎo)用戶尋找所需景點(diǎn)。但由于一般景區(qū)內(nèi)分景點(diǎn)會(huì)有多個(gè)出入線路,因此即使不以分景點(diǎn)作為中斷點(diǎn)對(duì)線路進(jìn)行打斷,分景點(diǎn)所在位置也會(huì)因?yàn)橥瑫r(shí)有多條出入線路相交叉,而在步驟三時(shí)成為頂點(diǎn)對(duì)象。
[0010]優(yōu)選的,本發(fā)明步驟三中,所述道路集合中的各道路對(duì)象的屬性包括起始點(diǎn),終止點(diǎn)和道路長(zhǎng)度;
所述頂點(diǎn)集合中的各頂點(diǎn)對(duì)象的屬性包括地理位置、經(jīng)過(guò)該點(diǎn)的道路、所屬道路和該頂點(diǎn)的父節(jié)點(diǎn);
上述該頂點(diǎn)的父節(jié)點(diǎn)為:對(duì)于路網(wǎng)模型中的某點(diǎn),尋找其周邊通過(guò)一條道路即可到達(dá)的頂點(diǎn)對(duì)象,則前述某點(diǎn)為后述所有頂點(diǎn)對(duì)象的父節(jié)點(diǎn),,該頂點(diǎn)為后述所有頂點(diǎn)對(duì)象中的其中一個(gè)。
[0011]本發(fā)明的有益效果為:通過(guò)對(duì)傳統(tǒng)最短尋路法進(jìn)行改進(jìn),實(shí)現(xiàn)了景區(qū)內(nèi)的路網(wǎng)信息采集處理及設(shè)施導(dǎo)航,能夠快速可靠的為景區(qū)內(nèi)游客提供由當(dāng)前位置到其它任意景區(qū)內(nèi)景點(diǎn)或設(shè)施(如洗手間、停車場(chǎng)、超市等)的最短導(dǎo)航路徑。
【附圖說(shuō)明】
[0012]圖1所示為本發(fā)明方法流程示意圖;
圖2所示為最短尋路算法流程示意圖; 圖3所示為本發(fā)明一種實(shí)施例的路網(wǎng)信息展示示意圖;
圖4所示為本發(fā)明一種實(shí)施例的導(dǎo)航應(yīng)用展示示意圖。
【具體實(shí)施方式】
[0013]以下結(jié)合附圖和具體實(shí)施例進(jìn)一步描述。
[0014]參考圖1所示,本發(fā)明的景區(qū)內(nèi)智能導(dǎo)航方法,包括以下步驟:
步驟一,采集獲取景區(qū)內(nèi)的線性路網(wǎng)信息數(shù)據(jù);
圖1所示的實(shí)施例中,景區(qū)內(nèi)的線路路網(wǎng)信息數(shù)據(jù)利用現(xiàn)有的手持式GIS地理信息數(shù)據(jù)采集器,通過(guò)實(shí)地道路信息采集來(lái)獲取。也可以從其它途徑獲取景區(qū)內(nèi)的線性路網(wǎng)信息數(shù)據(jù)。
[0015]采集到的線性路網(wǎng)信息數(shù)據(jù)包括了組成景區(qū)內(nèi)各條線路的地理坐標(biāo)(如經(jīng)瑋度)集,各條線路皆以一系列有序的地理信息點(diǎn)的形式呈現(xiàn);在進(jìn)行數(shù)據(jù)處理之前,實(shí)際相交的道路并沒(méi)有邏輯上的相交關(guān)系和交叉點(diǎn)信息。
[0016]步驟二,對(duì)采集到的線性路網(wǎng)信息數(shù)據(jù)進(jìn)行處理,形成節(jié)點(diǎn)路網(wǎng),如圖3所示:計(jì)算景區(qū)內(nèi)各線路之間的交叉點(diǎn),以交叉點(diǎn)為中斷點(diǎn),將道路按照中斷點(diǎn)進(jìn)行打斷,使得打斷后的任意兩條線路不相交,但有基于某一點(diǎn)相接的可能;將打斷后的各條線路轉(zhuǎn)化為mif數(shù)據(jù)文件格式;
常見(jiàn)的尋路算法都是基于節(jié)點(diǎn)進(jìn)行計(jì)算,所以要計(jì)算出所有線路之間的交叉點(diǎn),并且以交叉點(diǎn)為中斷點(diǎn),利用mapinfo打斷道路信息,使得處理后的路網(wǎng)數(shù)據(jù)可用于后續(xù)的尋路導(dǎo)航算法。
[0017]步驟二中,還包括以景區(qū)內(nèi)各分景點(diǎn)位置為中斷點(diǎn)對(duì)線路進(jìn)行打斷??杀WC當(dāng)某分景點(diǎn)僅位于一條道路上時(shí),使得此分景點(diǎn)在步驟三時(shí)形成頂點(diǎn)集合中的一個(gè)頂點(diǎn)對(duì)象,方便引導(dǎo)用戶尋找所需景點(diǎn)。但由于一般景區(qū)內(nèi)分景點(diǎn)會(huì)有多個(gè)出入線路,因此即使不以分景點(diǎn)作為中斷點(diǎn)對(duì)線路進(jìn)行打斷,分景點(diǎn)所在位置也會(huì)因?yàn)橥瑫r(shí)有多條出入線路相交叉,而在步驟三時(shí)成為頂點(diǎn)對(duì)象。
[0018]步驟三,建立路網(wǎng)數(shù)據(jù)模型:讀取所有線路的mif數(shù)據(jù)文件信息,存入道路集合中;從所有道路對(duì)象中找出各道路對(duì)象與相鄰道路對(duì)象之間的連接點(diǎn),以及未與其它道路對(duì)象相連接的道路端點(diǎn),將前述各連接點(diǎn)和端點(diǎn)存入頂點(diǎn)集合;所述道路集合與頂點(diǎn)集合即組成所述路網(wǎng)數(shù)據(jù)模型;
所形成的路網(wǎng)數(shù)據(jù)模型可做到:指定某條道路對(duì)象,可以獲取其兩端頂點(diǎn);指定某個(gè)頂點(diǎn)對(duì)象,可以獲取其所連接的道路;
步驟四,通過(guò)改進(jìn)的最短尋路算法進(jìn)行尋路,并將尋路結(jié)果標(biāo)示在地圖上,如圖4所示: 4.1獲取起點(diǎn)及用戶指定的終點(diǎn)的地理位置數(shù)據(jù);
4.2判斷起點(diǎn)和終點(diǎn)是否屬于頂點(diǎn)集合:
若起點(diǎn)和終點(diǎn)皆為頂點(diǎn),則利用標(biāo)準(zhǔn)Astar算法對(duì)起點(diǎn)和終點(diǎn)之間線路進(jìn)行最短路線尋路,然后輸出尋路結(jié)果;
若起點(diǎn)和終點(diǎn)中有至少一個(gè)不是頂點(diǎn),則從道路集合中尋找距離非頂點(diǎn)起點(diǎn)或終點(diǎn)最近的道路或者頂點(diǎn);然后判斷距離非定點(diǎn)起點(diǎn)或終點(diǎn)最近的是頂點(diǎn)還是道路:
若距離非頂點(diǎn)起點(diǎn)或終點(diǎn)最近的為頂點(diǎn)而非道路,則在非頂點(diǎn)起點(diǎn)或終點(diǎn)與最近頂點(diǎn)之間新建道路,得到對(duì)應(yīng)起點(diǎn)和終點(diǎn)的頂點(diǎn)或最近頂點(diǎn)信息,然后利用標(biāo)準(zhǔn)Astar算法對(duì)對(duì)應(yīng)起點(diǎn)和終點(diǎn)的頂點(diǎn)或最近頂點(diǎn)之間線路進(jìn)行最短路線尋路,最后輸出尋路結(jié)果;
若距離非頂點(diǎn)起點(diǎn)或終點(diǎn)最近的為道路而非頂點(diǎn),則從非頂點(diǎn)起點(diǎn)或終點(diǎn)處向相應(yīng)道路作垂線,以垂線與道路的相交點(diǎn)作為中斷點(diǎn),對(duì)道路進(jìn)行打斷,然后更新路網(wǎng)數(shù)據(jù)模型中的道路集合和頂點(diǎn)集合,使得垂線成為新的道路對(duì)象,非頂點(diǎn)的起點(diǎn)或終點(diǎn)成為新的頂點(diǎn);再利用標(biāo)準(zhǔn)Astar算法對(duì)對(duì)應(yīng)起點(diǎn)和終點(diǎn)的新的頂點(diǎn)之間線路進(jìn)行最短路線尋路,最后輸出尋路結(jié)果。
[0019]AStar算法為現(xiàn)有算法,其一般用于尋找網(wǎng)狀結(jié)構(gòu)中任意兩頂點(diǎn)之間的最短路線,這里的網(wǎng)狀結(jié)構(gòu)我們可以理解為路網(wǎng),此時(shí)即可以解決交叉路口之間的尋路。但是游客位置未必總是在交叉路口,大部分時(shí)候是存在于路網(wǎng)內(nèi)某條路的任一點(diǎn)上,甚至不在道路上。此時(shí),我們需要對(duì)AStar算法進(jìn)行改良,以滿足尋路要求。本發(fā)明方案即先將用戶引導(dǎo)至垂直距離最近的道路,或者最近的交叉路口(取決于哪種形式的距離更近),當(dāng)用戶進(jìn)入道路時(shí),在道路上標(biāo)記進(jìn)入點(diǎn),將此道路以進(jìn)入點(diǎn)為分界點(diǎn)打斷,轉(zhuǎn)化為交叉路口。重新構(gòu)造路網(wǎng)信息并轉(zhuǎn)化為標(biāo)準(zhǔn)的頂點(diǎn)到頂點(diǎn)的尋路。
[0020]最短尋路算法的具體實(shí)現(xiàn)請(qǐng)參考圖2,步驟三中,所述道路集合中的各道路對(duì)象的屬性包括起始點(diǎn),終止點(diǎn)和道路長(zhǎng)度;
所述頂點(diǎn)集合中的各頂點(diǎn)對(duì)象的屬性包括地理位置、經(jīng)過(guò)該點(diǎn)的道路、所屬道路和該頂點(diǎn)的父節(jié)點(diǎn);
上述該頂點(diǎn)的父節(jié)點(diǎn)為:對(duì)于路網(wǎng)模型中的某點(diǎn),尋找其周邊通過(guò)一條道路即可到達(dá)的頂點(diǎn)對(duì)象,則前述某點(diǎn)為后述所有頂點(diǎn)對(duì)象的父節(jié)點(diǎn),,該頂點(diǎn)為后述所有頂點(diǎn)對(duì)象中的其中一個(gè)。
[0021 ]圖2所示的最短尋路算法為現(xiàn)有技術(shù),為了方便理解,現(xiàn)對(duì)其進(jìn)行簡(jiǎn)單描述:定義某頂點(diǎn)的g值為從起點(diǎn)開(kāi)始移動(dòng)到該頂點(diǎn)的直線距離,h為從該頂點(diǎn)移動(dòng)到終點(diǎn)的直線距離,則起點(diǎn)到終點(diǎn)的直線距離為f=g+h;最短尋路算法流程為:
I獲取已指定的起點(diǎn)和終點(diǎn),將起點(diǎn)作為當(dāng)前點(diǎn),其g記為O,h為起點(diǎn)到終點(diǎn)的直線距離,將當(dāng)前點(diǎn)加入一個(gè)“開(kāi)啟列表”;
2尋找路網(wǎng)中當(dāng)前點(diǎn)周邊通過(guò)一條道路可以到達(dá)的所有頂點(diǎn)對(duì)象,將這些頂點(diǎn)對(duì)象全部加入前述“開(kāi)啟列表”,并將當(dāng)前點(diǎn)保存為前述這些頂點(diǎn)對(duì)象的父節(jié)點(diǎn);
3從“開(kāi)啟列表”中刪除起點(diǎn),并將起點(diǎn)加入至一個(gè)“關(guān)閉列表”,所述“關(guān)閉列表”用于存放所有不需要再次檢查的頂點(diǎn);
4從“開(kāi)啟列表”中選擇f值最低的頂點(diǎn),作為新的當(dāng)前點(diǎn),并獲取路網(wǎng)中與新的當(dāng)前點(diǎn)相鄰的所有頂點(diǎn);新的當(dāng)前點(diǎn)為其相鄰所有頂點(diǎn)的父節(jié)點(diǎn);
5判斷所獲取的相鄰頂點(diǎn)中是否包含終點(diǎn):如果包括,則從終點(diǎn)開(kāi)始沿相應(yīng)道路依次尋找父節(jié)點(diǎn),連成線,作為導(dǎo)航路線進(jìn)行輸出;
如果不包括,則繼續(xù)判斷相鄰頂點(diǎn)是否在“開(kāi)啟列表”中,如果不在,則把相應(yīng)的相鄰頂點(diǎn)添加進(jìn)“開(kāi)啟列表”,轉(zhuǎn)至步驟4;如果相鄰頂點(diǎn)在“開(kāi)啟列表”中,則獲取相應(yīng)相鄰頂點(diǎn)的g值,如果此頂點(diǎn)的g值更低,代表起點(diǎn)到此頂點(diǎn)所耗費(fèi)的距離更短,那么此時(shí)新的頂點(diǎn)作為更優(yōu)選的當(dāng)前頂點(diǎn),需要把之前計(jì)算的道路,改為指向新頂點(diǎn)。即是把相鄰頂點(diǎn)的父節(jié)點(diǎn)改為目前選中的頂點(diǎn),然后重新計(jì)算f和g的值,轉(zhuǎn)至步驟4; 直至獲取到原始起點(diǎn)與終點(diǎn)之間的所有路線,并輸出至用戶的APP界面上,如圖4所示,為從用戶當(dāng)前位置到景仁宮的最短導(dǎo)航路線圖。
[0022]綜上,最短尋路算法的原理也即:從終點(diǎn)開(kāi)始,尋找其父節(jié)點(diǎn),依次將當(dāng)前點(diǎn)周邊找到的f值最小的頂點(diǎn)的父節(jié)點(diǎn)作為起點(diǎn),將找到的起點(diǎn)依次連接,即形成導(dǎo)航路線。
[0023]本發(fā)明通過(guò)對(duì)傳統(tǒng)最短尋路法進(jìn)行改進(jìn),實(shí)現(xiàn)了景區(qū)內(nèi)的路網(wǎng)信息采集處理及設(shè)施導(dǎo)航,能夠快速可靠的為景區(qū)內(nèi)游客提供由當(dāng)前位置到其它任意景區(qū)內(nèi)景點(diǎn)或設(shè)施(如洗手間、停車場(chǎng)、超市等)的最短導(dǎo)航路徑。
【主權(quán)項(xiàng)】
1.一種景區(qū)內(nèi)智能導(dǎo)航方法,其特征是,包括以下步驟: 步驟一,采集獲取景區(qū)內(nèi)的線性路網(wǎng)信息數(shù)據(jù); 步驟二,對(duì)采集到的線性路網(wǎng)信息數(shù)據(jù)進(jìn)行處理,形成節(jié)點(diǎn)路網(wǎng):計(jì)算景區(qū)內(nèi)各線路之間的交叉點(diǎn),以交叉點(diǎn)為中斷點(diǎn),將道路按照中斷點(diǎn)進(jìn)行打斷,使得打斷后的任意兩條線路不相交,但有基于某一點(diǎn)相接的可能;將打斷后的各條線路轉(zhuǎn)化為mif數(shù)據(jù)文件格式; 步驟三,建立路網(wǎng)數(shù)據(jù)模型:讀取所有線路的mif數(shù)據(jù)文件信息,存入道路集合中;從所有道路對(duì)象中找出各道路對(duì)象與相鄰道路對(duì)象之間的連接點(diǎn),以及未與其它道路對(duì)象相連接的道路端點(diǎn),將前述各連接點(diǎn)和端點(diǎn)存入頂點(diǎn)集合;所述道路集合與頂點(diǎn)集合即組成所述路網(wǎng)數(shù)據(jù)模型; 步驟四,通過(guò)改進(jìn)的最短尋路算法進(jìn)行尋路,并將尋路結(jié)果標(biāo)示在地圖上: 4.1獲取起點(diǎn)及用戶指定的終點(diǎn)的地理位置數(shù)據(jù); 4.2判斷起點(diǎn)和終點(diǎn)是否屬于頂點(diǎn)集合: 若起點(diǎn)和終點(diǎn)皆為頂點(diǎn),則利用標(biāo)準(zhǔn)Astar算法對(duì)起點(diǎn)和終點(diǎn)之間線路進(jìn)行最短路線尋路,然后輸出尋路結(jié)果; 若起點(diǎn)和終點(diǎn)中有至少一個(gè)不是頂點(diǎn),則從道路集合中尋找距離非頂點(diǎn)起點(diǎn)或終點(diǎn)最近的道路或者頂點(diǎn);然后判斷距離非定點(diǎn)起點(diǎn)或終點(diǎn)最近的是頂點(diǎn)還是道路: 若距離非頂點(diǎn)起點(diǎn)或終點(diǎn)最近的為頂點(diǎn)而非道路,則在非頂點(diǎn)起點(diǎn)或終點(diǎn)與最近頂點(diǎn)之間新建道路,得到對(duì)應(yīng)起點(diǎn)和終點(diǎn)的頂點(diǎn)或最近頂點(diǎn)信息,然后利用標(biāo)準(zhǔn)Astar算法對(duì)對(duì)應(yīng)起點(diǎn)和終點(diǎn)的頂點(diǎn)或最近頂點(diǎn)之間線路進(jìn)行最短路線尋路,最后輸出尋路結(jié)果; 若距離非頂點(diǎn)起點(diǎn)或終點(diǎn)最近的為道路而非頂點(diǎn),則從非頂點(diǎn)起點(diǎn)或終點(diǎn)處向相應(yīng)道路作垂線,以垂線與道路的相交點(diǎn)作為中斷點(diǎn),對(duì)道路進(jìn)行打斷,然后更新路網(wǎng)數(shù)據(jù)模型中的道路集合和頂點(diǎn)集合,使得垂線成為新的道路對(duì)象,非頂點(diǎn)的起點(diǎn)或終點(diǎn)成為新的頂點(diǎn);再利用標(biāo)準(zhǔn)Astar算法對(duì)對(duì)應(yīng)起點(diǎn)和終點(diǎn)的新的頂點(diǎn)之間線路進(jìn)行最短路線尋路,最后輸出尋路結(jié)果。2.根據(jù)權(quán)利要求1所述的方法,其特征是,步驟二中,還包括以景區(qū)內(nèi)各分景點(diǎn)位置為中斷點(diǎn)對(duì)線路進(jìn)行打斷。3.根據(jù)權(quán)利要求1所述的方法,其特征是,步驟三中,所述道路集合中的各道路對(duì)象的屬性包括起始點(diǎn),終止點(diǎn)和道路長(zhǎng)度; 所述頂點(diǎn)集合中的各頂點(diǎn)對(duì)象的屬性包括地理位置、經(jīng)過(guò)該點(diǎn)的道路、所屬道路和該頂點(diǎn)的父節(jié)點(diǎn); 上述該頂點(diǎn)的父節(jié)點(diǎn)為:對(duì)于路網(wǎng)模型中的某點(diǎn),尋找其周邊通過(guò)一條道路即可到達(dá)的頂點(diǎn)對(duì)象,則前述某點(diǎn)為后述所有頂點(diǎn)對(duì)象的父節(jié)點(diǎn),該頂點(diǎn)為后述所有頂點(diǎn)對(duì)象中的其中一個(gè)。
【文檔編號(hào)】G01C21/34GK106017492SQ201610314315
【公開(kāi)日】2016年10月12日
【申請(qǐng)日】2016年5月13日
【發(fā)明人】李東方, 吳旻暉
【申請(qǐng)人】蘇州東方智旅信息科技有限公司