夢華



摘 要:WebGIS技術能在網絡上發布空間地理數據,為用戶提供數據瀏覽、分析、查詢等功能,實現對地理信息的操作與共享。針對智慧水利系統的特點及搭建技術,本文提出了一個基于開源MapServer與PostgreSQL(PostGIS)的信息發布系統構建方法。通過配置MapFile,實現基于地圖服務器MapServer并以開源空間數據庫PostgreSQL(PostGIS)為數據源的空間地理信息的發布。結果表明:通過MapServer和PostgreSQL(PostGIS)等WebGIS相關技術,能搭建一個開源地理信息數據發布平臺,為實現智慧系統的水利信息管理與更新、共享和發布提供技術支撐。
關鍵詞:WebGIS;MapServer;PostgreSQL;PostGIS
中圖分類號:P283.7;TV87 文獻標識碼:A 文章編號:1003-5168(2018)23-0028-03
Application of WebGIS Technology in Intelligent Water Conservancy
MENG Hua
(Jilin Province Photo Surveying and Mapping Co., Ltd.,Changchun Jilin 130012)
Abstract: WebGIS can publish spatial geographic data on the network, provide users with data browsing, analysis, query and other functions, and realize the operation and sharing of geographic information. Aiming at the characteristics and construction technology of intelligent water conservancy system, this paper implemented an information publishing system construction method based on open source MapServer and PostgreSQL (PostGIS). By configuring Mapfile, the publishing of spatial geographic information based on MapServer and open source spatial database PostgreSQL (PostGIS) was realized. The results showed that an open source geographic information data publishing platform could be built through the related WebGIS technologies, such as MapServer and PostgreSQL (PostGIS), to provide technical support for the realization of intelligent system of water conservancy information management and update, sharing and publishing.
Keywords: WebGIS;MapServer;PostgreSQL;PostGIS
“智慧水利”的建設主要依托于通信、3S技術、虛擬仿真和物聯網等各種現代化技術手段,實現某區域內水利信息資源的采集與整合、管理與更新、共享和發布,建設統一的支撐、應用、決策平臺,形成較為完善的信息化管理系統,可有效提升區域水利綜合管理能力和服務水平,為水利現代化打下堅實的基礎[1,2]。
多樣化的信息獲取手段產生的大量不同種類的數據是構建“智慧水利”的基石。通過水利地理信息一張圖,可以對降雨、災害、水利設施等數據進行實時顯示,但由于服務提供商更新不及時和收費高昂,提高了使用成本。隨著信息獲取手段的多樣化,如何對數據信息進行有效管理顯得尤為重要。開源MapServer和數據庫的組合,可實現對海量信息數據的有效管理和發布,但國內關于MapServer管理數據庫的相關技術資料有限。蔡毅[3]實現了MapServer與空間數據庫的連接。開源軟件與安裝簡便、幫助文檔較多的商業軟件相比,參數設置較為復雜,對使用者提出了較高的要求。本文歸納總結了數據入庫、MapServer與空間數據庫連接以及信息發布的方法,提出了一個基于開源MapServer與PostgreSQL(PostGIS)的信息發布系統構建方法。在設計數據的顯示方式時,可以采用分層顯示、重要性顯示等多種方式,通過WebGIS矢量瓦片技術,實現查詢功能的快速響應,節省系統資源,提高瀏覽器訪問效率[4]。
1 系統框架
1.1 MapServer
MapServer是具有強大空間數據發布功能的開源軟件,由美國明尼蘇達大學(University of Minnesota)開發。MapServer是一個典型的基于胖服務器端/瘦客戶端模式的CGI實時地圖發布平臺,當客戶端發送數據請求時,服務器端基于MapFile實時地處理空間數據,并將產生的地圖數據返回給客戶端顯示。其常與客戶端組件OpenLayers、瓦片緩存等相關技術結合,構建一個完整的WebGIS系統[5]。MapServer支持多種數據類型,能方便地將空間數據、非空間數據在WebGIS中整合起來,有強大的空間信息網絡發布功能[6]。同時,MapServer支持投影變換和字型定制,支持不同比例尺下地圖要素顯示的自動控制等。
MapFile作為MapServer應用的自定義屬性配置文件,以.map為文件后綴,能定制MapServer的所有屬性,如不同圖層的繪制及其顯示樣式和查詢方式[7]。MapFile的配置由基本設置、Web設置、Legend設置、Scalebar設置、Layer設置和Ootputformat設置等幾部分組成[8]。在Layer的設置中應注意,MapServer發布的地圖由不同的Layer疊加,疊加的順序與各個Layer在MapFile中出現的次序相反[9]。如果MapFile配置信息不規范,MapServer將無法正常顯示[10]。
MapServer是WebGIS系統的一個重要組成部分,其有兩種操作模塊:CGI和MapScript,均可在服務器端使用[11]。
1.2 MapServer工作流程
MapServer的工作流程(見圖1)為:由Web服務器將用戶的訪問請求發送到MapServer;由設置中定義的MapFile路徑讀取數據來進行制圖表達。數據庫將空間數據和屬性傳遞給MapServer并進行處理,由GD Library將數據轉換成JPG或PNG。通過編輯MapFile中的有關屬性,就可由指定的Template file進行制圖表達,并對瀏覽器中MapServer Application的顯示樣式進行定制。待制圖完成后,保存至客戶端參數所指定的路徑,通過Web服務器傳回到客戶端進行顯示[12-14]。
1.3 運行環境
利用開源軟件便于用戶根據具體需求來定制。在此,筆者選用以下軟件搭建了一個信息發布系統。
①WebGIS服務器:MapServer。
②數據可視化工具:Quantum GIS。Quantum GIS(QGIS)基于跨平臺的圖形工具QT軟件包,是一款界面友好的GIS數據編輯顯示軟件,可為MapFile文件的各種屬性編輯和顯示提供了平臺[13]。
③Web服務器:Apache。Apache是一個功能強大的Web服務器,也是最常用的Web服務器端軟件之一。
④數據庫:PostgreSQL。PostgreSQL是以PostGRES為基礎的開源對象關系型數據庫管理系統。PostGIS是基于PostgreSQL的空間數據庫擴展,能更方便地管理空間數據。
⑤發布界面:Ka-Map。Ka-Map是一個界面風格類似于Google Map的MapServer前端工具,具有瓦片地圖緩存功能,可提高瀏覽器渲染效率、節省服務器資源[4]。其與MapServer結合緊密,通過提供的JavaScript API接口,就可利用瀏覽器的特點開發支持地理空間數據的傳輸與表達的高度交互性Web-Mapping接口[12]。
2 基于MapServer的在線地圖發布
2.1 數據庫的選擇
pgAdminⅢ是一個管理、維護PostgreSQL數據庫的圖形界面管理工具。其主要通過對postgresql.conf和pgpass.conf等文件進行編輯來優化PostgreSQL的性能。在這里用pgAdminⅢ建立一個空間數據庫(如圖2所示),然后將Shapefile導入數據庫中。
2.2 配置MapFile文件
2.2.1 MapFile的生成。MapFile是一個結構層次清晰的文件(如圖3所示)。在MapFile的屬性對象中,最主要的是LAYER對象。MapFile文件中至少應含有一個LAYER對象,其在MapFile中的順序與系統生成的圖層順序相反。如果MapFile丟失了LAYER對象,或者LAYER屬性值發生錯誤,將導致MapServer不能正常運行。MapFile中的屬性對象較多,如WEB、LEGEND、SCALEBAR、LAYER等[9]。
在開發過程中,MapFile文件的編輯是地圖配置的重要一步,其控制著MapServer的制圖表達和顯示樣式。項目中的各類圖層眾多,屬性參數復雜,人工編寫MapFile效率不高且容易出錯。而通過Maplab和Quantum GIS也可以來編寫MapFile,如使用功能強大的輕量級桌面GIS軟件Quantum GIS,可對發布的圖層類型、顏色、顯示樣式、比例等屬性進行編輯,最后可得到完整的MapFile。具體過程為:通過Quantum GIS導入相應的Shapefile文件后,可以在可視化界面上進行顯示樣式上的調整,并保存為.qgs項目,再使用Quantum GIS中的“插件→MapServer Export”選項生成MapFile文檔。但是,通過Quantum GIS自動生成的MapFile需要進行人工編輯,去除一些冗余無用信息[3]。
2.2.2 MapFile的編輯。此處需重新編輯并添加MapFile的部分屬性,將讀取本地的Shapefile文件改為連接postgis,如下所示:
將原屬性DATA "HYDA"修改為以下內容:
CONNECTIONTYPE postgis
CONNECTION "dbname='wmapdata' host=localhost port=5432 user='postgres' password='123456' "
DATA 'the_geom FROM "HYDA" USING UNIQUE gid USING srid=-1'
得到基于空間數據庫的在線信息發布系統界面,如圖4所示。
3 結語
水利行業是一個數據信息較為密集的行業。面對海量數據,需要建立大型水利信息數據庫對其進行分析、處理。這不僅是建立智慧水利信息系統的必要條件,也是部門之間信息共享的基礎。各類信息的共享與融合,在很大程度上能減少重復生產、降低生產成本、節約資金。而基于WebGIS技術,水利部門可以更好地與其他相關部門如地質、環境、農業、林業等部門進行數據分享與綜合,為科學決策提供技術支撐。
參考文獻:
[1]曹宏文.數字水利到智慧水利的構想[J].測繪標準化,2013(4):26-29.
[2]鄭燦堂,王慶華,張洪芳.淺談“智慧水利”[J].山東水利,2012(7):1-3.
[3]蔡毅.基于WebGIS的路網交通信息系統關鍵技術研究與系統設計[D].廣州:華南理工大學,2012.
[4]唐帥,姬光榮,王連波,等.遼河口濕地管理信息系統設計與實現[J].測繪科學,2013(1):90-92.
[5]高進.基于MapServer的電子海圖服務系統研究[D].大連:大連海事大學,2013.
[6]趙慧芬.基于MapServer和Openlayer的WebGIS開發[J].測繪與空間地理信息,2013(9):100-101.
[7] Vatsavai R R,Shekhar S,Burk T E,et al. UMN-MapServer: A High-Performance, Interoperable, and Open Source Web Mapping and Geo-spatial Analysis System[C]// International Conference on Geographic Information Science. Springer Berlin Heidelberg,2006.
[8]韓坤英,龐健峰,逯永光,等.“同一個地質”計劃的地質圖空間數據網絡共享研究——以中國1∶100萬MapGIS格式的地質圖數據為例[J].地球信息科學學報,2011(6):742-749.
[9]冉祥生.基于MapServer的空間信息發布技術研究[D].成都:西南交通大學,2008.
[10]劉旭林,趙文芳,劉國宏.基于WebGIS的氣象信息顯示和查詢系統[J].應用氣象學報,2008(1):116-122.
[11]臧卓,石軍男,趙亮,等.基于MapServer的地圖信息發布與查詢——以洞庭湖濕地為例[J].濕地科學,2008(4):473-478.
[12]熊靜,張箐.基于MapServer的遙感影像發布系統的研究[J].遙感信息,2007(1):53-57.
[13]李信鵬.基于Mapserver的遙感影像發布系統的設計與實現[D].北京:中國科學院中國遙感衛星地面站,2007.
[14]江宗展,史天元.由自由軟體MapServer探討WebGIS建置[J].地籍測量,2004(4):46-79.