王星捷,李春花
(成都理工大學(xué) 工程技術(shù)學(xué)院,四川 樂山 614007)
當(dāng)前,許多國內(nèi)的旅游系統(tǒng)大多還處在圖文為載體的景區(qū)景點和旅游線路的介紹上,數(shù)據(jù)處理與分析[1]還存在一定的發(fā)展空間。文中將GIS和旅游系統(tǒng)相結(jié)合,加入數(shù)據(jù)處理與分析功能,實現(xiàn)將地理信息和常規(guī)管理系統(tǒng)的相互融合,適應(yīng)了現(xiàn)今大數(shù)據(jù)環(huán)境下的信息背景。
文中以圓明園景區(qū)為研究對象。為了逼真地體現(xiàn)圓明園,滿足智能化旅游系統(tǒng)[2]的功能,在地圖矢量數(shù)據(jù)處理、網(wǎng)絡(luò)圖制作、最短路徑算法和服務(wù)區(qū)算法分析、平臺框架設(shè)計以及技術(shù)開發(fā)等方面進行了深入的探索和研究。
數(shù)據(jù)的精細度[3]是決定該系統(tǒng)成功與否的重要評判標(biāo)準(zhǔn),制作一張精細的矢量底圖尤其重要。矢量底圖是關(guān)系到該系統(tǒng)體驗效果的關(guān)鍵。
制作圓明園矢量底圖,采用圓明園柵格圖、高程數(shù)據(jù)圖[4]為基礎(chǔ);根據(jù)具體設(shè)計中的需要建立詳細的數(shù)據(jù)圖層[5]。例如,系統(tǒng)中需要對景區(qū)內(nèi)各景點和服務(wù)設(shè)施等信息進行查詢,需要建立園區(qū)內(nèi)景點和各服務(wù)點分布情況的圖層[6];景區(qū)路徑查詢和路徑導(dǎo)航需要建立路徑網(wǎng)絡(luò)圖,則需要建立景區(qū)道路圖層[7-8]等等。具體的圖層設(shè)計見表1。完成矢量底圖數(shù)據(jù)和網(wǎng)絡(luò)分析[9]后,使用地圖服務(wù)[10]平臺對地圖數(shù)據(jù)進行發(fā)布,便于瀏覽器對地圖數(shù)據(jù)的訪問。
表1 矢量數(shù)據(jù)圖層
系統(tǒng)包含四層架構(gòu),分別為數(shù)據(jù)層、服務(wù)層、業(yè)務(wù)層、表現(xiàn)層,圖1展示了各架構(gòu)層之間的關(guān)系。
圖1 系統(tǒng)框架
(1)數(shù)據(jù)層。
數(shù)據(jù)層主要包括空間數(shù)據(jù)以及屬性數(shù)據(jù)的存取,本次設(shè)計的數(shù)據(jù)將統(tǒng)一存儲于ArcGIS數(shù)據(jù)庫中。
(2)服務(wù)層。
服務(wù)層主要包括地圖服務(wù)和Web服務(wù)。地圖服務(wù)由已在ArcMap中制作完成的圓明園景區(qū)地圖發(fā)布得到,由ArcGIS Server實現(xiàn),Web服務(wù)由Silverlight實現(xiàn)。Web服務(wù)主要是實現(xiàn)網(wǎng)頁和屬性數(shù)據(jù)讀取相關(guān)服務(wù),地圖服務(wù)則提供基礎(chǔ)的地圖服務(wù)、網(wǎng)絡(luò)數(shù)據(jù)服務(wù)、幾何服務(wù)以及其他服務(wù)等。
(3)業(yè)務(wù)層。
業(yè)務(wù)層主要由所建項目的各項功能服務(wù)實現(xiàn),此結(jié)構(gòu)層主要由系統(tǒng)需求決定,目前項目實現(xiàn)的功能有景區(qū)簡介、景區(qū)復(fù)原圖瀏覽景區(qū)景點查詢、景區(qū)路徑導(dǎo)航、緩沖區(qū)分析、最佳視野距離功能。
(4)表現(xiàn)層。
表現(xiàn)層是用戶和系統(tǒng)交互的窗口,用戶可以通過在表現(xiàn)層的操作對功能層的各個功能進行調(diào)用,并使得功能代碼獲取服務(wù)層中的地圖等服務(wù),最終提取儲存于數(shù)據(jù)層中的數(shù)據(jù)。經(jīng)由功能代碼調(diào)用處理,將處理結(jié)果反饋在表現(xiàn)層,最終被用戶直觀感受。文中采用ArcGIS API for Silverlight接口實現(xiàn)。
1.Silverlight技術(shù)。
Silverlight是一種新的Web呈現(xiàn)技術(shù),能在各種平臺上運行。它提供了一套開發(fā)框架,并通過使用基于向量的圖像圖層技術(shù),支持任何尺寸圖像的無縫整合,基于asp.net、AJAX在內(nèi)的Web開發(fā)環(huán)境實現(xiàn)了無縫連接,有效實現(xiàn)在Windows和Macintosh上多種瀏覽器中運行的內(nèi)容豐富、界面絢麗的Silverlight應(yīng)用程序。
2.迪杰斯特拉算法。
迪杰斯特拉算法能解決從一個頂點到其余各頂點的最短路徑問題,其主要特點是以起點為中心向外進行擴散,直到擴展到終點位置。
迪杰斯特拉算法的原理如下:
(1)首先引入輔助常量D,其每個分量D[i]表示當(dāng)前所找到的從起點v到其他各頂點vi的長度。
(2)D的初始狀態(tài)為:如果v到vi存在連接邊,則D[i]為連接邊上的權(quán)值,否則將D[i]設(shè)置為∞。長度為D[j]=Min{D|vi∈V}的路徑就是從v到vj最短的路徑。
(3)假設(shè)此段路徑終點為vk,那么這條路徑便是(v,vk)和(v,vj,vk)中的一條,此路徑的長度為從v到vk的權(quán)值或是D[j]加上vj到vk的弧上的權(quán)值。
由此可見,下一條稍短一點長度的路徑的長度值必然是:
D[j]=Min{D[i]|vi∈V-S}
其中,D[i]為(v,vi)上的權(quán)值或D[k](vk∈S)和(vk,vi)弧上的權(quán)值的和。
3.服務(wù)區(qū)分析算法。
服務(wù)區(qū)分析算法的原理是給定一個點和一個權(quán)值范圍,求在此權(quán)值范圍限制內(nèi)從給定點出發(fā)所能到達的所有節(jié)點。此算法使用最小生成樹算法,文中使用的是普利姆(Prim)小生成樹算法。
利用普利姆算法構(gòu)造最小生成樹的過程是選擇集合中一個頂點U={u0}作為初態(tài),尋找與集合U中頂點相鄰并且具有最小代價邊的另一個頂點,直到將集合U擴充至U=V為止(如圖2所示)。
圖2 普利姆算法
假設(shè)有N=(V,E)是連通網(wǎng),TE是連通網(wǎng)N中最小生成樹的邊的集合。令算法從U={u0}(u0∈V)且TE={}開始,重復(fù)執(zhí)行以下操作:
在所有的u∈V中,v∈V-U的邊(u,v)中找出最小邊(u0,v0)并將此邊并入集合TE,同時在集合U中并入v0。
當(dāng)集合U=V時,結(jié)束操作,結(jié)束時集合TE中必然有n-1條邊,此時T=(V,{TE})為連通網(wǎng)N的最小生成樹。
系統(tǒng)采用Silverlight技術(shù),簡化了開發(fā)界面的復(fù)雜度,組件化程度高,界面絢麗多彩,功能集成度高,易于擴展和維護。
導(dǎo)航功能的實現(xiàn),通過點擊地圖圖層時,系統(tǒng)記錄點擊的位置,并在地圖上顯示符號[11]進行標(biāo)示,在網(wǎng)絡(luò)數(shù)據(jù)集中對點的位置預(yù)先設(shè)定容差值[12],設(shè)置路徑亮點的起點和終點,查找容差范圍內(nèi)距離最近的一條道路,并將與點最近處設(shè)置為路徑起點和終點。利用矢量數(shù)據(jù)的路徑網(wǎng)絡(luò)圖和迪杰斯特拉算法實現(xiàn)景區(qū)的最短路徑分析[13],獲得兩點之間的最佳路徑導(dǎo)航,具體實現(xiàn)效果如圖3所示。
最佳可見范圍是利用點緩沖分析來實現(xiàn)。點緩沖分析[14]通過對設(shè)定點進行記錄,在點周圍生成一定范圍的緩沖區(qū)??赏ㄟ^此功能預(yù)先得到自己選定點的最佳可見范圍,從而可以針對自己想要拍照的景點選定合適的拍照位置,具體實現(xiàn)如圖4所示。
利用普利姆算法和網(wǎng)絡(luò)路徑圖,可以實現(xiàn)服務(wù)區(qū)查詢功能,通過此功能查詢網(wǎng)絡(luò)中任何位置的服務(wù)區(qū)。具體服務(wù)區(qū)分析效果如圖5所示。
圖3 路徑導(dǎo)航
圖4 最佳可見范圍
圖5 服務(wù)區(qū)分析
以圓明園景區(qū)為研究對象,采用GIS技術(shù)制作了地圖數(shù)據(jù)和網(wǎng)絡(luò)圖,采用WebGIS技術(shù)平臺[15]和Silverlight技術(shù)對地圖服務(wù)進行發(fā)布和系統(tǒng)開發(fā),建立了基于WebGIS的旅游系統(tǒng)。該系統(tǒng)實現(xiàn)了智能查詢、路徑導(dǎo)航、緩沖分析和最佳可視等功能,界面豐富,操作性強,擴展和維護性好。游客可以事前通過系統(tǒng)進行查詢和景區(qū)的分析,可以有針對性地選擇旅游景點,能大大緩解景區(qū)接待的壓力,同時為WebGIS的系統(tǒng)以及相關(guān)旅游系統(tǒng)的開發(fā)提供一種技術(shù)參考。