王 琦 劉媛媛 萬 慶 陳文學 穆祥鵬
摘要:南水北調中線工程是我國最大的調水工程,其干線工程沿線建筑物眾多,運行工況復雜。開發南水北調中線干線工程WebGIS系統能夠作為工程調度運行的管理平臺,提高系統運行調度的信息管理水平。此外,該系統可在Internet發布工程地圖信息,供社會公眾瀏覽、查詢,更好地為社會經濟服務。介紹了南水北調中線干線工程的WebGIS系統,該系統是根據南水北調中線工程的特點采用Java為語言和Ajax技術以服務器動態緩存地圖的形式開發的。南水北調中線干線工程WebGIS系統以ArcIMS9.2作為地圖引擎,Oracle10g為數據庫管理軟件,Tomcat5.0Web服務器。由于開發過程中采用了地圖瓦片存儲技術,客戶端在瀏覽的時候直接加載生成好的地圖圖片,從而提高了瀏覽速度,也減輕了服務器的負荷。
關鍵詞:南水北調中線; WebGIS;信息平臺;Ajax;地圖瓦片
中圖分類號:TP391;TV68文獻標識碼:A 文章編號:1672-1683(2009)05-0028-05
Development and Application on WebGIS of the Middle Route of South-to-North Water Diversion Project
WANG Qi1,LIU Yuan-yuan2,WAN Qing3,CHEN Wen-xue1,MU Xiang-peng1
(1.China Institute of Water Resources and Hydropower Research,a. The Department of Hydraulics;
b. The Department of Water Hazard Research,Beijing 100038,China;2.Institute of Geographic Sciences and Natural Resources Research,CAS,Beijing 100101,China;)
Abstract: The Middle Route of South-to-North Water Diversion Project,with many buildings and being operated under complex conditions,is the largest water diversion project in China. Developing WebGIS for this project can not only provide a platform for operation and management and improve the information management,but also provide project map on the Internet to the public for browsing and inquiry. A WebGIS system is introduced,which developed by Java language,and the map of the project is presented by Ajax technology in the form of server dynamic buffer map. ArcIMS9.2 is used as map engine,Oracle10g as database management tool,and Tomcat5.0 as web server software. A key technology,map tiles technology,is used in this system. Since the map tiles of the project are generated previously in the server,the clients can browse the map of the project quickly.
Key words: the Middle Route of South-to-North Water Diversion Project;WebGIS;infomation platform;Ajax;map tiles
1 引言
隨著社會經濟的發展、人口的增長及城市化進程的加快,人們對水資源的需求量越來越多,加之水資源時空分布不均,使得許多地區尤其是一些大中型城市都出現了水資源短缺的問題,嚴重制約著社會經濟的發展。修建大型長距離調水工程是調節水資源時空分布不均,解決水資源供需矛盾的最有效、最直接的手段。
跨流域調水工程是一個復雜的系統工程,涉及到社會、經濟、環境、地質、水力學、調度控制等一系列復雜的技術問題。為了保證“安全、可靠、經濟”輸水,實現水資源的優化配置,需要研究分析調水工程自動控制技術、工程模擬仿真技術、工程風險評估與應急響應技術,對某些工程還要研究冰期輸水調度及冰情控制技術等。
南水北調中線工程從加壩擴容后的丹江口水庫陶岔渠首閘引水,經唐白河流域西部過長江流域與淮河流域的分水嶺方城埡口,沿黃淮海平原西部邊緣,在鄭州以西李村附近穿過黃河,沿京廣鐵路西側北上,可基本自流到北京、天津,局部采用泵站加壓管道輸水方式。工程總長約1 432 km(含天津干渠),穿越大小河流686條,沿線設61個節制閘控制渠道的輸水過程,由88個分水口門向用戶供水,51座退水閘避免渠道水流漫溢。對于這樣一個大型跨流域的調水工程,采用現代信息技術,提高信息采集、傳輸、處理的時效性和自動化水平,成為工程管理發展的新趨勢。作為一門新興信息技術,地理信息系統適合分布式多數據源的數據管理,可與南水北調中線干線工程控制系統、模擬仿真系統、風險評估與應急響應系統,以及其他系統耦合形成信息收集、處理的管理平臺。
地理信息是一種重要的分布式信息資源,是解決人口、資源、環境和災害等重大社會可持續發展問題,以及促進社會經濟持續、快速和健康發展的基礎信息數據。所以,在地理信息領域,如何發布信息,建立信息的共享技術和開放技術就顯得尤為重要。隨著Internet技術的不斷發展和人們對GIS需求的日益增長,利用Internet在Web上發布空間數據,為用戶提供空間數據瀏覽、查詢和分析的功能,已經成為GIS發展的必然趨勢。于是,基于Internet技術的地理信息系統——WebGIS就應運而生。WebGIS擁有廣泛的應用范圍,靈活的操作方式。建立南水北調中線干線工程WebGIS系統,在Internet上發布地理數據,管理工程數據,為實現水資源優化配置提供技術手段,為管理決策提供支持平臺,同時實現調水信息的網上的直觀、圖像化發布,提高公眾的參與性,正是適應了工程管理發展新趨勢,也體現出采用現代信息技術改造傳統管理模式的目的。
韓念龍等[1]基于ArcIMS開發網絡化的地理信息系統,實現長春市石頭口門水庫分布式監測點的水質監控與管理。系統實現了包括地圖瀏覽、地圖查詢以及地圖空間分析等基本GIS功能;同時通過水質監測點動態更新、水質監測預警可視化以及水污染動態模擬等關鍵功能,了解水質監測點的屬性信息,為管理部門提供決策依據。段雪輝[2]以汾河灌區為研究對象,總結了目前汾河灌區灌溉管理系統存在的不足,分析將WebGIS應用到灌區管理信息系統的優勢,提出了將地理信息系統與管理信息相結合的方案,并設計了系統的功能組成。丁繼紅等[3]采用ArcIMS,利用Servlet、JSP、動態Web等技術,建立了基于WebGIS的糧食作物品種動態智能系統,實現了糧食作物區域的信息發布。劉詩橋[4]實現了WebGIS在森林防火中的應用,并與林業管理地理信息系統GIS(Client/Server模式)組成了完整的林業管理地理信息系統。劉東民等[3]在黑龍江省防汛指揮決策支持系統項目中實現了基于ArcIMS平臺的系統集成,在功能集成、數據集成、界面集成和平臺集成等方面都采用先進技術,取得了良好成果。
WebGIS作為一種新興技術,在許多領域得到了應用。歸納起來主要有以下優點。
①無需不斷升級客戶端的硬件設備。與傳統的基于桌面或局域網的GIS相比,由于其客戶端軟件的更新,不斷地提高了對計算機性能的要求;而采用Browser/Server模式的WebGIS,系統主要運行在服務器端,客戶端不需要購買或升級硬件,在相當程度上拓展了計算機的生命周期。
②簡化了客戶端的安裝、配置。由于Browser/Server是建立在廣域網的基礎上,有比Client/Server更大的適應范圍,客戶端只需安裝操作系統和通用瀏覽器即可,不必安裝特別的應用軟件、數據庫接口等,有效節省了人力和物力。
③顯著降低了系統開發的費用。Browser/Server模式允許在不依賴客戶端系統平臺的情況下,快速應用開發,并且應用完全在服務器端(或中端事務邏輯)執行,客戶端通過有效的網絡協議,向服務器發送請求,中端事務邏輯系統將請求的信息返回到客戶端顯示。
④大大減少系統維護的工作量。由于客戶端不再擔負數據訪問和復雜數據計算等任務,只負責顯示或簡單的計算,而把事務邏輯處理放在服務器端,從而充分發揮了服務器的強大作用,這樣一方面大大降低了對客戶端的要求,另一方面也把技術人員從繁重的維護升級工作中解脫出來,使維護人員不再為維護工作奔波于各個客戶機之間,每一次的軟件升級只需要更新服務器端程序即可。
本文介紹了南水北調中線工程WebGIS平臺系統的開發方式、實現模式和實現方式,并描述了系統的架構組成、運行軟、硬件環境及數據庫設計。簡要介紹了系統功能。最后介紹了開發過程中用到的兩項關鍵技術。以期為WebGIS開發領域的研究提供參考[6]。
2 WebGIS相關技術
2.1 WebGIS平臺開發方式
目前WebGIS平臺開發方式有以下幾種。
①直接使用現有的WebGIS平臺進行二次開發。比如ArcIMS,MapXtreme,SuperMapIS。這種開發方式只需要編寫客戶端功能代碼。開發過程相對簡單,功能比較強大,缺點是平臺價格較高。
②利用MapObjects,MapX,SuperMap等組件提供GIS功能,自己開發WebServer,封裝成類似ArcIMS或MapXtreme的WEB地圖服務器。這樣做需要開發的東西較多,有一定難度,不過只要購買MapObject或者MapX,價格相對較低。
③全部從底層做起,包括自己實現GIS功能,自己實現WebServer,開發工作量大,對人員、時間要求高。
從開發周期和系統維護的角度考慮,本文選用基于商業WebGIS平臺進行二次開發的方式。現有的商業WebGIS平臺主要包括:ArcIMS,MapXtreme,SuperMapIS三家。經過市場調研,同時考慮平臺的通用性和擴展性,決定采用目前最流行的ArcIMS作為二次開發平臺。
2.2 WebGIS主要實現模式
WebGIS實現模式歸納起來主要有以下3種[7]。
①瘦客戶端/胖服務器模式。這是基于GIS服務器型,主要利用CGI方法來實現。這種處理模式簡化了客戶端,但加重了服務器端處理數據和網絡傳輸的負擔。
②胖客戶端/瘦服務器模式。這種模式需要配套的服務器端和客戶端軟件。客戶端從服務器端下載所需空間數據,再由客戶端軟件處理。這種模式雖然減少了服務器端的負擔,但由于客戶端軟件功能非常有限,限制了系統的性能。
③均衡客戶端/服務器模式。這是當前最普遍的模式。它利用Plug-in、ActiveX、Java Applets等前端插件技術將WebGIS服務器上的部分處理功能轉移到客戶端,從而較好的平衡客戶和服務器兩端的數據處理量,減輕了網絡傳輸負擔。這種模式的代表應屬ESRI公司的ArcIMS。
本系統采用當前最普遍的均衡客戶端/服務器實現模式。通過異步請求/響應機制,改變了傳統的Web應用習慣,獲得了良好的用戶體驗[8-9]。
2.3 WebGIS主要實現方式
在目前WebGIS的實現方式中,較常用的有通用網關接口 (Common Gateway Interface,CGI)、服務器應用程序接口 (Server API)、插件法(plug-ins)、客戶端控件(ActiveX Control)和Java Applet等[10-11]。
CGI (Common Gateway Interface通用網關接口)是定義標準數據結構和方法的規范,是外部應用程序與Web服務器之間的接口標準。CGI實質是駐留在Web服務器上,主要實現超文本文件和Web服務器應用程序之間傳遞信息的一個可執行文件。早期的WebGIS開發方法就是采用CGI和Server API (擴充的CGI工具)來建立應用程序和WebGIS服務器之間的接口。
Server API應用程序是Web服務器應用程序的擴展。它的基本思想是基于動態鏈接庫(DLL),使服務器程序運行速度提高并減輕系統的負載。從而改進了CGI技術,消除了啟動和關閉每一個單獨應用程序所需的開銷,改善了Web服務的響應性能。但它有移值性差,并且安全性能不好等缺點。
Plug-in技術主要利用網絡瀏覽器的API函數開發一個客戶端瀏覽器上的能識別矢量圖形格式數據的插件。GIS插件不但可以增加瀏覽器處理地理空間數據的能力,使人們更容易獲取地理數據,而且插件處理和傳輸的矢量格式空間數據,數據量小,網絡也只需將GIS數據一次性傳輸,這樣就加快了用戶操作的反應速度,減少網絡服務器的信息流量,從而使服務器更有效地為更多的用戶服務。但GIS插件受操作系統、運行平臺、數據類型的限制。
ActiveX技術是在OLE控件上加了一些新的網絡交互界面函數發展起來的一個解決方案。它是利用嵌在瀏覽器上的ActiveX組件作為客戶端操作界面,當用瀏覽器訪問包含ActiveX組件的WEB頁面時,該組件自動下載到客戶端,較成功地解決了CGI/HTTP瓶頸的約束。它是插件技術的一種,但無須將矢量圖形轉換成柵格圖形就能直接為用戶瀏覽、查詢和分析。基于GIS ActiveX控件的萬維網地理信息系統,依賴GIS ActiveX來完成GIS數據的處理和顯示。利用這種技術可以把空間處理功能集成在ActiveX控件中,而客戶機可以下載安裝并能及時更新,因此充分利用了客戶機空間數據處理分析能力。再加上ASP(Active Server Pages)技術可以作為ActiveX技術中的服務器端技術使用,ASP設置對象可方便地和Web服務器和數據庫服務器交互,它存放并且運行在服務器端,減輕了對客戶端的要求。但ActiveX控件存在著兼容性不好、安全性差等不足。目前許多GIS廠商都推出了ActiveX產品,如ESRI公司的MapObjects、ArcObjects,MapInfo公司的MapX以及Intergraph公司的GeoMedia Professional組件式GIS產品;國內也開發了一批高質量的組件式GIS產品,如中科院地理所的SuperMap,武漢大學的GeoSurf等。
Java技術是Sun公司于1995年推出的主要應用于網絡應用開發的、面向對象的程序設計語言。因它采用了Java虛擬機技術(JVM),實現了平臺獨立性,做到了“一次編譯,到處運行”的效果,同時支持Internet/Intranet環境下數據分布和計算分布的功能,所以它是目前實現WebGIS較為理想的方案。Java通過URL(Universal Resource Locator)實現分布式訪問具有URL的數據對象,通過下載Java Applet小程序到客戶端,將服務器上的計算操作部分放到客戶機上執行,從而實現分布計算。利用Java技術開發WebGIS有兩種方式:一種是只利用Java開發客戶端GIS功能,服務器端仍用其它傳統的開發方法或保持原有系統不變。這種方式在充分利用原有資源的基礎上,增強了客戶端的制圖和地理分析功能,并可以處理矢量數據,具有開發周期短,開發成本低等優點。另一種是服務器端和客戶端全都利用Java語言從底層開發。這是全新的開發方式,是未來WebGIS實現的主要方式。
本系統采用Java Applet技術。以Java為開發語言,采用Ajax技術,以服務器動態緩存地圖形式開發。
3 系統設計與實現
3.1 系統架構設計
南水北調中線干線工程WebGIS平臺采用B/S模式,主體框架用WebGIS體系結構構建,分為四層:客戶層、Javascript引擎層、WebServer層&GISServer層、和數據層,系統總體結構如圖1所示。

Client層作為最終客戶端,負責提交用戶請求和處理服務器返回的柵格數據、矢量數據。通過IE、Netscape等瀏覽器完成。
Javascript引擎層,負責連接Client層和WebServer層。該層擔負著與 WebServer層異步數據交互、電子地圖操作(如放大、縮小、漫游、移動等)、空間測量、數據查詢等任務,是整個體系的核心層。由用戶產生的頁面事件交由這個引擎處理,它負責向服務器發送請求,服務器傳回的是業務數據而非 HTML,引擎接收后,進行渲染,通過瀏覽器的解析在頁面上顯示出來。就提供地理底圖的方式來講,不是傳統的服務器端將海量矢量地圖臨時生成柵格圖片發給客戶端,而是事先生成好柵格圖塊,用戶請求時不做任何處理直接發給客戶端,這大大減輕了服務器端計算及網絡傳輸負擔,同時也避免了僅僅為了基本視圖而進行的海量矢量數據傳輸。這樣將事件監聽與頁面渲染的工作交給了瀏覽器,而后臺服務器只負責業務邏輯的處理。
WebServer層,負責處理Javascript引擎層異步請求、業務請求及響應。業務請求包括常規業務請求、GIS業務請求。
GISServer層,負責GIS業務邏輯的處理。與WebServer通訊,接收WebServer層提出的GIS業務請求,完成數據分析,提供分析后的GIS業務數據。
數據層,負責數據庫及柵格圖的組織和管理。數據層包含兩種格式的數據,柵格地圖切片數據及屬性數據。它們分別應用于不同的功能模塊,柵格地圖切片數據應用于地圖模塊,屬性數據應用于信息顯示、查詢模塊。
3.2 系統軟、硬件環境
3.2.1 系統運行硬件環境
①服務器端。HP xw8600工作站,CPU3.0GHz,2*4核,內存16G,硬盤250G(4+1磁盤陣列)。
客戶端:DELL Optiplex 75,CPU2.26GHz,內存2G,硬盤300G。
3.2.2 系統運行軟件環境
①服務器端。
操作系統:Windows XP中文版(服務器)。
數據庫管理系統:Oracle10g企業版。
空間數據庫引擎:ArcSDE9.2。
地圖服務器軟件:ArcIMS9.2。
Web服務器:Microsoft Internet Information Services(IIS)5.0及以上
開發工具:Eclipse3.2,Apache Tomcat5.0,Dreamweaver MX,JavaScripts,JSP,ASP等。
②客戶端。
操作系統:Windows XP中文版(客戶端)。
瀏覽器:IE,Firefox等。
3.3 數據庫設計
南水北調中線工程WebGIS平臺數據庫由空間數據和非空間屬性數據構成。
空間型數據是具有公共空間定位基礎的數據。在本系統框架定義內的空間數據庫,主要包括兩大部分:一部分是南水北調中線工程沿線區域內的基礎空間數據,包括行政區劃、水系、交通、山脈等及其注記圖層;另一部分是業務部門應用的空間數據,包括工程線路、節制閘、分水口、退水閘、倒虹吸、渡槽、隧洞、橋梁等專題圖層。
其中,基礎空間數據可看作整個系統的空間定位核心。基于調水工程的特點,在系統的使用過程中,業務空間數據作為信息展示的核心。盡管這些數據與基礎空間數據息息相關,但在具體的業務功能開發中,參與直接應用的不是基礎空間數據,而是業務空間數據。所以,系統內數據的使用是從基礎空間數據到業務空間數據再到業務應用的一個層層遞進的關系。
業務空間數據是通過工程管理部門提供的數據,在基礎空間數據上設置和編輯相應的專題圖層而實現。以SDE圖層的方式存儲在數據庫中。
非空間屬性數據包括沿線控制建筑物的尺寸、調水工程水情(水位、流量、各閘閘門開度等)、調水預期計劃與歷史記錄、及其他與工程相關的數據。以表格形式存儲在數據庫中。WebGIS系統數據庫結構見圖2。

3.4 系統功能
系統的主要界面如圖3所示,系統界面包括工具欄,地圖顯示區,圖層控制區和信息顯示區4大部分。在工具欄上用戶可進行放大、縮小和測距等操作。圖層控制區則用于選擇顯示不同的圖層等。系統可實現的主要功能有如下幾種。
①地圖發布。能夠將矢量地圖轉化成GIF或JPG格式的柵格圖像,用戶可通過瀏覽器方便地訪問地圖,見圖3。

②地圖縮放。用戶可對地圖進行放大或縮小,而地圖的分辨率不變。
③信息查詢。用戶可對地圖上的各建筑物信息進行查詢。渠道斷面信息查詢見圖4。
④測量距離。用戶可對地圖上的任意多點測量其距離,見圖5。
⑤比例尺顯示及控制。地圖可顯示當前的比例尺,同時用戶可按比例尺對地圖進行縮放。
⑥圖層控制。用戶可選擇性的顯示圖層,見圖6。

4 關鍵技術
4.1 “瓦片地圖”技術
本系統地圖生成引擎采用ESRI的ArcIMS,它負責向網絡用戶發布GIS地圖、數據和元數據。在系統實際應用中,為了加快地圖顯示時間,提高數據執行效率,采用了“瓦片地圖”技術。瓦片地圖實際就是采用“預生成”技術將地圖數據根據事先預定的范圍或比例進行切片,把切好的地圖圖片保存在服務端,然后借助客戶端直接提取圖片來顯示。基于瓦片地圖服務框架的系統響應速度要快于傳統的WebGIS系統,同時對服務器的負載也相應小一些。由于ArcIMS響應并發請求能力有限,所以在請求過多的情況下性能會受到影響,基于瓦片地圖服務的特點,將底圖數據切割成瓦片保存,需要做圖層控制的圖層實時生成,這樣ArcIMS實時生成的數據大量減少,即能減小服務器負載,又不影響圖層控制等功能使用。
4.2 Ajax技術
Ajax(Asynchronous JavaScipt and XML)是Jesse James Garrett于2005年2月提出的。在短短的四年多時間里,Ajax技術蓬勃發展。Ajax技術是由幾項技術合成而形成的一項功能強大的新技術。
①文檔對象模型DOM(Document Object Model):用來表示顯示在瀏覽器上的整個文檔對象及其層次結構。Ajax中使用JavaScript訪問文檔中的所有結點。通過對改變結點的屬性或者增加、刪除結點,控制頁面的局部行為,實現界面元素的動態變化,從而實現客戶端的動態顯示和交互。
②定義元素樣式的CSS(Caseading Style Sheets):在Web開發中CSS被用來定義標記的顯示樣式,實現標準的呈現界面。
③數據交換格式XML:服務器端與客戶端之間交換的數據被序列化成為文本格式,通常選擇XML作為數據交換的格式。XML是標準的數據表示方式,在服務器端和客戶端都可以得到很好的解釋。它為跨平臺、跨領域的應用提供了一種通信手段。Ajax中,XML是服務器端與客戶端規范的數據傳輸格式。
④XMLHttpRequest:它是Ajax最核心的部分。它用來幫助開發者實現客戶端與服務器端的異步通訊。通過XMLHttpRequest,客戶端可以在任何時刻與服務器端進行通訊,而不只是在頁面提交時。服務器執行其他程序的同時,用戶可以進行其他操作。
⑤客戶端腳本語言JavaScript: JavaScript是一種基于對象和事件驅動并具有安全性能的腳本語言。Ajax中利用JavaScript實現Web應用程序對用戶行為的實時響應和處理,例如鼠標事件,頁面載入、異步請求的發起和響應等。JavaScript將Ajax中的各對象融合在一起。
5 總結與展望
南水北調中線干線工程WebGIS系統是采用ArcIMS9.2地圖引擎,Oracle10g數據庫管理軟件,Tomcat5.0Web服務器軟件,以Java為開發語言開發的具有二維網絡信息發布功能的地理信息系統。該系統主要包括地圖操作和業務功能兩大部分功能。地圖操作部分包括地圖瀏覽、縮放復位、距離量算、地圖定位等功能。業務功能部分包括工程信息顯示和工程信息查詢。該系統可作為工程管理系統的平臺或者與管理平臺進行無縫銜接,輔助南水北調管理部門實時掌握渠道運行情況,實現輸水系統的實時調度控制,更好地為工程運行管理服務。同時,提供方便快捷的網上服務,使公眾足不出戶就能了解工程相關情況,更好地為經濟社會發展服務。
參考文獻:
[1] 韓念龍,陳圣波,王雪峰,等.基于ArcIMS的水資源環境管理信息系統[J].微計算機信息,2008,24(3):1-3.
[2] 段雪輝.WebGIS 在汾河灌區灌溉管理中的應用[J].科技情報開發與經濟,2006,16(14):216-217.
[3] 丁繼紅,楊長保,馬生忠,等.基于WebGIS地理信息網絡發布的技術實現與應用[J].吉林大學學報(信息科學版),2006,2(24):210-214.
[4] 劉詩橋.WebGIS 在森林防火中的應用[A]. ESRI中國(北京)有限公司.第七屆ArcGIS暨ERDAS中國用戶大會論文集(2006):下冊[C].北京:地震出版社,2006:651-655.
[5] 劉東民,陳 熠,劉 舒.黑龍江省防汛指揮決策支持系統基于ArcIMS平臺的系統集成[A]. ESRI中國(北京)有限公司.
第七屆ArcGIS暨ERDAS中國用戶大會論文集(2006):下冊[C].北京:地震出版社,2006:849-853.
[6] 徐 罡,許舒人.南水北調工程信息管理系統數據交換平臺的研究與設計[J].南水北調與水利科技,2005,3(3):1-3.
[7] 鄧凱,藺啟忠,王菁.基于XML的實時WebGIS優化模型的研究[J].計算機工程與設計,2003,24 (6): 4-7.
[8] 李舜才,李軍治.南水北調中線干線工程施工信息管理系統建設與應用[J].南水北調與水利科技,2005,4(2):6-7.
[9] 魯小新,王育紅.南水北調中線干線工程運行維護管理系統分析與設計[J].南水北調與水利科技,2007,5(1):16-18.
[10] 嬌樹春.基于SVG的WebGIS設計[D].蘭州大學碩士學位論文,2006.
[11] 馮艷杰.基于SVG的WebGIS實現技術[D].武漢大學碩士學位論文,2006.