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