梁其洋,張 雁
基于開(kāi)源平臺(tái)的昆明市旅游地理信息系統(tǒng)
梁其洋1,張雁2
(1.西南林業(yè)大學(xué)林學(xué)院,昆明650224;2.西南林業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院,昆明650224)
對(duì)基于開(kāi)源GIS軟件的WebGIS系統(tǒng)架構(gòu)與功能進(jìn)行探討與研究,在開(kāi)源技術(shù)的基礎(chǔ)上實(shí)現(xiàn)三層B/S架構(gòu)的昆明市旅游地理信息系統(tǒng),以GeoServer為空間數(shù)據(jù)發(fā)布服務(wù)器,PostgreSQL為空間數(shù)據(jù)管理載體,OpenLayers為空間信息展現(xiàn)組件;直觀顯示昆明市景點(diǎn)和配套資源的分布特征,提供對(duì)旅游信息在線查詢(xún)、評(píng)價(jià)留言、統(tǒng)計(jì)分析、輸出等功能,為用戶(hù)提供靈活方便的信息查詢(xún)與交流平臺(tái),同時(shí)也為旅游管理部門(mén)決策分析提供參考。
開(kāi)源GIS;WebGIS;B/S;GeoServer;OpenLayers;PostgreSQL
云南省教育科研基金(No.2012C098)
昆明是舉世聞名的旅游城市,2014年昆明市接待游客總數(shù)為6268.66萬(wàn)人次,旅游業(yè)總收入614.77億元,旅游收入占全省旅游總收入的四分之一。昆明的旅游景點(diǎn)分布較為分散,游客多為外地來(lái)客,在這種情況下采用先進(jìn)的網(wǎng)絡(luò)地理信息技術(shù)建立昆明市旅游地理信息系統(tǒng),為旅客提供一站式查詢(xún)與規(guī)劃服務(wù)平臺(tái),實(shí)現(xiàn)現(xiàn)代化旅游信息服務(wù)和管理功能是非常重要的。建立基于WebGIS的旅游地理信息系統(tǒng)對(duì)發(fā)展旅游業(yè),提高旅游的公眾形象,進(jìn)行旅游促銷(xiāo),輔助旅游決策和進(jìn)行旅游管理,起著不可低估的作用[1]。本文以昆明市為例,探討在開(kāi)源平臺(tái)下對(duì)昆明市旅游地理信息系統(tǒng)進(jìn)行設(shè)計(jì)與實(shí)現(xiàn)。
1.1OpenLayers、GecServen和PostgreSQL/PostGIS
開(kāi)源GIS客戶(hù)端OpenLyaers、GIS服務(wù)器GeoServer和地理數(shù)據(jù)庫(kù)PostgreSQL/PostGIS組成了本系統(tǒng)的三層架構(gòu),為系統(tǒng)提供地理數(shù)據(jù)的存儲(chǔ)、樣式編輯、發(fā)布、顯示和要素查詢(xún)等功能。
1.2最短路徑分析
最短路徑分析采用了PostgreSQL/PostGIS的擴(kuò)展模塊pgRouting,pgRouting提供開(kāi)源的路徑分析功能。pgRouting提供以下算法實(shí)現(xiàn):Johnson's算法、Floyd-Warshall算法、A*算法、雙向Dijkstra最短路徑算法、雙向A*最短路徑算法、Dijkstra算法、行駛距離、k最短路徑算法、轉(zhuǎn)向限制最短路徑算法等。
2.1系統(tǒng)功能設(shè)計(jì)
系統(tǒng)基于開(kāi)源平臺(tái),采用JSP+ExtJS技術(shù),實(shí)現(xiàn)了圖層管理、圖層操作、地圖查詢(xún)、地圖分析、留言板、地圖輸出和用戶(hù)管理等模塊。系統(tǒng)的功能模塊結(jié)構(gòu)如圖1所示。
2.2系統(tǒng)工作流程
當(dāng)用戶(hù)通過(guò)瀏覽器訪問(wèn)地圖時(shí),客戶(hù)端調(diào)用XML HttpRequest對(duì)象向地圖服務(wù)器發(fā)送WMS請(qǐng)求,地圖服務(wù)器則根據(jù)請(qǐng)求返回特定格式的地圖瓦片顯示在頁(yè)面的控件上。當(dāng)用戶(hù)通過(guò)瀏覽器進(jìn)行相關(guān)的操作時(shí),JavaScript調(diào)用XML HttpRequest對(duì)象向Web服務(wù)器發(fā)送WFS請(qǐng)求,將用戶(hù)的操作信息發(fā)送給Web服務(wù)器,Web服務(wù)器則根據(jù)不同的請(qǐng)求,將參數(shù)傳遞給GeoServer地圖服務(wù)器,然后GeoServer地圖服務(wù)器根據(jù)需要請(qǐng)求PostgreSQL/PostGIS數(shù)據(jù)庫(kù)中的數(shù)據(jù),結(jié)果以GML格式返回;JavaScript通過(guò)AJAX引擎的回調(diào)函數(shù)在客戶(hù)端接收返回的結(jié)果,并解析旅游數(shù)據(jù)中的空間特征信息和屬性信息,空間信息通過(guò)OpenLayers的JS類(lèi)庫(kù),以WMS或WFS服務(wù)顯示在地圖上,屬性信息則以屬性窗口的形式來(lái)顯示[2]。系統(tǒng)工作流程如圖2所示。
圖1 系統(tǒng)功能模塊結(jié)構(gòu)
圖2 系統(tǒng)工作流程圖
系統(tǒng)功能主要包括圖形顯示、屬性查詢(xún)、游客查詢(xún)、旅游統(tǒng)計(jì)、旅游評(píng)價(jià)、打印輸出等。
3.1圖形顯示
圖形顯示包括顯示各旅游要素圖層、比例尺、任意點(diǎn)坐標(biāo)、縮放工具條、鷹眼等。通過(guò)客戶(hù)端OpenLayers向服務(wù)器發(fā)送WMS請(qǐng)求,將返回的圖層顯示在地圖面板中。這些控件是調(diào)用OpenLayers的Control類(lèi)來(lái)實(shí)現(xiàn)的。點(diǎn)擊工具欄上的按鈕可以對(duì)圖形進(jìn)行基本的操作與控制——放大、縮小、漫游和全圖等。圖形顯示效果如圖3所示。
圖3 系統(tǒng)主界面
3.2屬性查詢(xún)
本系統(tǒng)提供兩種屬性查詢(xún)方式:點(diǎn)擊圖層名稱(chēng)查詢(xún)和點(diǎn)擊要素查詢(xún)。二者都是通過(guò)向GeoServer發(fā)出WFS DescribeFeatureType請(qǐng)求,前者返回整個(gè)圖層的屬性信息并顯示在表格中,后者返回被點(diǎn)擊要素的屬性信息并顯示在彈窗(Popup)中。
3.3游客查詢(xún)
游客查詢(xún),包括分類(lèi)查詢(xún)、公交換乘、拉框查詢(xún)、周邊查詢(xún)、路徑規(guī)劃、天氣查詢(xún)。
(1)分類(lèi)查詢(xún)包括景點(diǎn)查詢(xún)、公交查詢(xún)、街道查詢(xún)、酒店查詢(xún)、商場(chǎng)查詢(xún)和醫(yī)院查詢(xún)。按要素主要分為針對(duì)點(diǎn)要素(如景點(diǎn)、酒店、商場(chǎng)、醫(yī)院)的查詢(xún)和針對(duì)線要素(街道)的查詢(xún)。針對(duì)點(diǎn)要素的查詢(xún)通過(guò)在WFS服務(wù)中添加過(guò)濾(Filter)功能請(qǐng)求得到符合某一屬性值的要素信息,把返回的XML解析為單獨(dú)的一個(gè)圖層顯示出來(lái)[3]。針對(duì)線要素的查詢(xún)主要通過(guò)設(shè)置一個(gè)預(yù)定義的包含F(xiàn)ilter的SLD來(lái)動(dòng)態(tài)渲染通過(guò)WMS請(qǐng)求返回的圖層,滿足過(guò)濾屬性的要素被高亮顯示。公交線路查詢(xún)是通過(guò)返回某一線路中所有的點(diǎn)要素(有名稱(chēng)的為站點(diǎn),沒(méi)有名稱(chēng)的為通過(guò)節(jié)點(diǎn))構(gòu)成的線要素,并將站點(diǎn)要素按次序排列在屬性表中。
(2)公交換乘,根據(jù)用戶(hù)輸入的起點(diǎn)站和終點(diǎn)站檢索數(shù)據(jù)庫(kù),實(shí)現(xiàn)了直達(dá)、一次換乘和二次換乘。
(3)拉框查詢(xún),用戶(hù)在屏幕上畫(huà)一個(gè)矩形框來(lái)查詢(xún)落在其中的地物目標(biāo)信息。通過(guò)使用Filter定義的地理操作符INTERSECTS獲得與所畫(huà)矩形要素相交的所有要素并呈現(xiàn)在地圖中。
(4)周邊查詢(xún),用戶(hù)指定一個(gè)目標(biāo)點(diǎn),系統(tǒng)生成以該點(diǎn)為中心以指定距離為半徑的緩沖區(qū),可查詢(xún)到該緩沖區(qū)范圍內(nèi)的吃住行游購(gòu)?qiáng)实确植夹畔⒓捌湓敿?xì)內(nèi)容。檢索區(qū)域內(nèi)要素的原理與拉框查詢(xún)相同。周邊查詢(xún)的效果如圖4所示。
圖4 周邊查詢(xún)
(5)路徑規(guī)劃,通過(guò)pgRouting實(shí)現(xiàn)。下載OSM官方網(wǎng)站提供的昆明市道路網(wǎng)數(shù)據(jù)后,將該數(shù)據(jù)導(dǎo)入PostgreSQL/PostGIS數(shù)據(jù)庫(kù)中,為該數(shù)據(jù)庫(kù)添加擴(kuò)展和建立拓?fù)湟员阍谇芭_(tái)進(jìn)行調(diào)用。通過(guò)點(diǎn)擊屏幕設(shè)置起點(diǎn)和終點(diǎn),系統(tǒng)自動(dòng)生成最短路徑方案,效果如圖5所示。
圖5 最短路徑分析
(6)天氣查詢(xún),將昆明各縣區(qū)內(nèi)一點(diǎn)作為點(diǎn)要素添加到矢量圖層,根據(jù)點(diǎn)要素的屬性動(dòng)態(tài)改變天氣圖片和文字。
3.4旅游統(tǒng)計(jì)
系統(tǒng)提供的旅游統(tǒng)計(jì)功能包括:曲線圖、餅狀圖、柱狀圖和熱力圖。
曲線圖、餅狀圖和柱狀圖由Highcharts實(shí)現(xiàn)。Highcharts是一個(gè)用純JavaScript編寫(xiě)的圖表庫(kù),能夠很簡(jiǎn)單便捷地在Web網(wǎng)站或是Web應(yīng)用程序添加具有交互性的圖表。曲線圖顯示了2012年至2014年昆明市旅游人數(shù)與旅游收入變化情況,結(jié)果如圖6所示。柱狀圖反映昆明市主要景點(diǎn)從2012年至2014年的游客接待人數(shù)。餅狀圖用來(lái)反映游客的國(guó)別與游客的年齡結(jié)構(gòu)。熱力圖是GeoServer的擴(kuò)展功能,添加了相關(guān)插件后可以實(shí)現(xiàn)從加權(quán)的旅游景點(diǎn)要素的接待量屬性計(jì)算出一個(gè)熱力表面,反映昆明市主要旅游景區(qū)接待量的熱力分布。
圖6 昆明市近三年旅游人數(shù)
3.5旅游評(píng)價(jià)
留言板為注冊(cè)用戶(hù)提供了交流平臺(tái),使用戶(hù)能夠?yàn)g覽查看相關(guān)信息并分享自己的想法、照片和旅游體驗(yàn)。
3.6打印輸出
打印輸出是GeoServer擴(kuò)展模塊中的功能,它調(diào)用了Mapfish的打印服務(wù)。Mapfish打印模塊為JavaScript地圖應(yīng)用程序提供了一個(gè)基于HTTP的API來(lái)進(jìn)行打印??赏ㄟ^(guò)打印設(shè)置為將要輸出的地圖添加圖名和摘要,目前僅支持輸出為PDF格式。
遵守行業(yè)規(guī)范、可互操作、可移植和可定制性強(qiáng)等優(yōu)勢(shì),而B(niǎo)/S結(jié)構(gòu)具有分布性、伸縮性強(qiáng)、開(kāi)發(fā)與維護(hù)簡(jiǎn)單、共享性強(qiáng)的優(yōu)點(diǎn)。本文在開(kāi)源軟件的基礎(chǔ)上,構(gòu)建了以GeoServer為空間數(shù)據(jù)發(fā)布服務(wù)器、PostgreSQL為空間數(shù)據(jù)管理載體、OpenLayers為空間信息展現(xiàn)組件的三層B/S架構(gòu)的昆明市旅游地理信息系統(tǒng)。通過(guò)對(duì)昆明市2012年至2014年的旅游人數(shù)和旅游收入進(jìn)行調(diào)查收集,直觀地展示了昆明市旅游人數(shù)與旅游收入的時(shí)間和空間分布規(guī)律,有助于有關(guān)部門(mén)探尋形成規(guī)律的動(dòng)力機(jī)制。
開(kāi)源GIS軟件具有源代碼開(kāi)放、免費(fèi)或者低費(fèi)用、
[1]郝選文.基于WebGIS西安市旅游地理信息系統(tǒng)[D].陜西師范大學(xué),2006
[2]王麗,謝剛生,肖慧琴.基于開(kāi)源技術(shù)構(gòu)建房產(chǎn)GIS圖形管理系統(tǒng)[J].測(cè)繪通報(bào),2009(12):57~59
[3]楊朝暉,鄭文鋒,李曉璐.基于開(kāi)源WebGIS的網(wǎng)絡(luò)房地產(chǎn)估價(jià)系統(tǒng)[J].軟件導(dǎo)刊,2008,7(6):156~158
Open Source GIS;WebGIS;B/S;GeoServer;OpenLayer;PostgreSQL
Kunming Tourism Geographic Information System Based on Open Source Platform
LIANG Qi-yang1,ZHANG Yan2
(1.College of Forestry,South West Forestry University,Kunming 650224; 2.College of Computer and Information,South West Forestry University,Kunming 650224)
Researches on the architecture and function of the WebGIS system based on open source GIS software and technology.Develops Kunming tourism geographic information system with a 3-tier B/S architecture,with GeoServer as spatial data publishing server,PostgreSQL as spatial data and OpenLayers as spatial data display component.It directly shows the distribution characteristic of scenic spots and mating resources in Kunming.It also offers a number of functions such as online query,assessment,statistics and output.It provides users with a flexible and convenient platform to query and communicate,makes decision and analysis for tourism management department.
1007-1423(2015)12-0076-04
10.3969/j.issn.1007-1423.2015.12.017
梁其洋(1990-),男,河南信陽(yáng)人,碩士研究生,研究方向?yàn)榈乩硇畔⑾到y(tǒng)開(kāi)發(fā)與設(shè)計(jì)
張雁(1973-),女,云南祿豐人,博士,副教授,研究方向?yàn)檫b感技術(shù)與機(jī)器學(xué)習(xí)
2015-02-03
2015-03-12