鄭智江 王杰民
摘 要:VML是一種可用于構(gòu)建WebGIS服務(wù)的Web矢量圖形技術(shù)。它具有表述簡單、交互性強、易于維護等特點。基于VML開發(fā)的陸態(tài)網(wǎng)絡(luò)資料信息管理系統(tǒng)是一個將空間數(shù)據(jù)以Web矢量圖形形式呈現(xiàn),實時響應(yīng)用戶操作的簡單WebGIS應(yīng)用。該系統(tǒng)通過VML構(gòu)建的簡單WebGIS應(yīng)用模塊,將底層空間數(shù)據(jù)轉(zhuǎn)換成Web矢量圖,并結(jié)合用戶響應(yīng),實現(xiàn)交互式繪圖。上述開發(fā)流程是一種頗為有效的WebGIS構(gòu)建方式,為實際工作帶來較大的便利。
關(guān)鍵詞:VML;WebGIS;陸態(tài)網(wǎng)絡(luò);交互式響應(yīng)
中圖分類號:TP393 文獻標識碼:A
Abstract:VML is a kind of Web vector graphics technology which can be used to build WebGIS services.Its characteristics includes:ease of expression,ease of interaction and ease of maintenance,etc.The data management system of CMONOC based on VML is a simple WebGIS application,which presents the spatial data in the form of Web vector graphics and provides real-time response to the user's operation.The system constructs simple WebGIS application modules via VML,converts the underlying spatial data into Web vector graphics and combines the user's response to implement interactive drawing.As an effective construction method of WebGIS systems,the development process above can bring great convenience in practice.
Keywords:VML;WebGIS;CMONOC;interactive response
1 引言(Introduction)
WebGIS是一個實現(xiàn)GIS空間信息網(wǎng)絡(luò)化并為用戶提供互聯(lián)網(wǎng)地理信息服務(wù)的軟件系統(tǒng)。它是GIS技術(shù)在信息技術(shù)的迅猛發(fā)展環(huán)境下的產(chǎn)物,它將以前基于C/S模式下的GIS服務(wù)插上了互聯(lián)網(wǎng)的翅膀,成為GIS發(fā)展的主流方向之一。部分學(xué)者基于WebGIS技術(shù)展開了深入的研究,取得了一些實用性成果[1-3]。與傳統(tǒng)的GIS技術(shù)相比:它具有跨平臺、交互性強、升級便捷、成本低等特點,可以實現(xiàn)多用戶并發(fā)訪問[4]。鑒于上述特點,WebGIS技術(shù)擁有廣闊的應(yīng)用前景,能帶來很好的社會和經(jīng)濟效益,受到了廣泛關(guān)注并逐級成為國內(nèi)外GIS軟件廠商和新型網(wǎng)絡(luò)服務(wù)公司的研究熱點。目前國內(nèi)也有很多優(yōu)秀的WebGIS服務(wù)產(chǎn)品,如百度地圖、搜狗地圖等。矢量格式地圖生成和交互式操作是WebGIS系統(tǒng)的主要功能之一,也是系統(tǒng)構(gòu)建的關(guān)鍵要素。在上述背景下,1999年微軟公司發(fā)布了一種用于繪制矢量圖形的XML語言—VML(Vector Markup Language)。VML語言的出現(xiàn)給Web矢量地圖交互處理提供了一條新的途徑。它支持矢量圖形的顯示和特征,可以較好地解決WebGIS系統(tǒng)中存在的矢量地圖交互處理等一系列的問題,在構(gòu)建WebGIS服務(wù)過程中得到較為廣泛應(yīng)用。近年來,隨著VML與SVG、GML、柵格地圖等技術(shù)[5,6]和網(wǎng)絡(luò)腳本語言(ASP、JSP)的綜合運用[7,8],構(gòu)建出了在線學(xué)習(xí)系統(tǒng)、氣象服務(wù)系統(tǒng)等多樣的簡單WebGIS實用型服務(wù)系統(tǒng)[9,10]。
2 VML語言(VML language)
2.1 VML簡介
VML語言是微軟公司1999年9月發(fā)布的一種基于XML的標記語言。它以簡潔的代碼,在網(wǎng)頁中繪制矢量圖形(圓形、線段、矩形、曲線、弧型、多邊形等),并修飾這些圖形的(邊框、背景、陰影、箭頭、填充、3D、漸變)外觀效果。VML可以在網(wǎng)頁上建立的靈活、簡潔和高效的矢量圖形,結(jié)合腳本語言(ASP、JSP)就能設(shè)計出動態(tài)的統(tǒng)計圖形(圖1)。在動態(tài)交互過程中,服務(wù)器只須動態(tài)數(shù)據(jù)發(fā)送到客戶端即可完成動態(tài)繪制和顯示。這種交互方式不僅易于對圖形進行調(diào)整和控制,而且充分發(fā)掘了客戶端的資源,減輕了服務(wù)器端負擔。
此外,還存在另一種web矢量圖形技術(shù),SVG(Scalable Vector Graphics)語言。SVG是在綜合了VML的優(yōu)點后提出的,顯然比VML具有更多的優(yōu)勢。但由于VML有IE的支持,可以看成是IE中的矢量畫筆,而SVG技術(shù)成圖在瀏覽器顯示時需要安裝插件,從這方面看,VML要優(yōu)于SVG。
2.2 VML使用方法
使用“v”創(chuàng)建XML命名空間,定義為
指明XML名域“v”引用VML語言為
結(jié)合CSS樣式表,給HTML對象增加行為(方法、屬性、事件),在標記處增加了一個命名空間
VML支持DHTML大部分事件和屬性,如id、name、title、onmouseover等。VML寫法較靈活,屬性可以在標記里,也可以單獨寫入新標記,如
VML使用group和shape兩個元素定義全部結(jié)構(gòu);shape表示一個基本矢量圖形,group將這些圖形結(jié)合在一起,從而形成一個整體進行處理。VML包含兼容多種矢量圖形特征元素,如:Path、Group、Shape、Line、Curve、Polyline、Rect等等。VML通過使用簡單的標記文本表述復(fù)雜的圖像,降低了圖形空間占用,減輕了設(shè)備存儲負擔。通過在HTML中VML命名空間聲明并配套相應(yīng)處理函數(shù),就可以像HTML元素一樣使用。同時,VML兼容DHTML大部分屬性和事件,如id、title、name、onmouseover等等。
2.3 VML的特點
VML的特點包括:
(1)基于XML標準,架構(gòu)清晰,表述簡單,易于擴展和維護。
(2)使用簡單的標記文本的XML語言來表示圖形,標記文本構(gòu)成的圖像,有效的節(jié)省存儲空間。
(3)與HTML兼容,通過在HTML中聲明VML命名空間和處理函數(shù),就可以和其他HTML元素一樣使用VML元素,在客戶端瀏覽器顯示圖像。
(4)支持的大部分的矢量圖形特征,它們基于基本的直線和曲線組合描述負責(zé)路徑,從而可以描述各種矢量圖形實體特征。
(5)利用腳本語言重新定義DHTML屬性和特征實現(xiàn)動畫和交互。
3 基于VML的簡單WebGIS實現(xiàn)(Construction of
Simple WebGIS System Based on VML)
本人負責(zé)開發(fā)一個用于陸態(tài)網(wǎng)絡(luò)資料信息管理的WebGIS平臺—“陸態(tài)網(wǎng)絡(luò)資料綜合信息管理系統(tǒng)”[6]。下面就這一平臺開發(fā)背景和概況做簡單介紹。
中國內(nèi)地構(gòu)造環(huán)境監(jiān)測網(wǎng)絡(luò)(CMONOC)—陸態(tài)網(wǎng)絡(luò),是以全球衛(wèi)星定位系統(tǒng)為主,輔以各種精密觀測技術(shù)、空間技術(shù),實時動態(tài)監(jiān)測中國內(nèi)地構(gòu)造環(huán)境變化,探求上述變化對資源、災(zāi)害和環(huán)境的影響的綜合觀測網(wǎng)絡(luò)。陸態(tài)網(wǎng)絡(luò)觀測產(chǎn)生海量數(shù)據(jù),形成的資料涉及的種類繁多,無法快捷的進行查詢,這給其產(chǎn)生資料和數(shù)據(jù)的管理工作帶來很大困難。基于上述背景,研發(fā)出一個針對陸態(tài)網(wǎng)絡(luò)資料的一個簡單WebGIS應(yīng)用系統(tǒng)。
該應(yīng)用系統(tǒng)實現(xiàn)了陸態(tài)網(wǎng)絡(luò)資料信息的數(shù)據(jù)庫管理、檢索和打印等功能,結(jié)合地理圖形進行選擇和顯示,很好的滿足了形變研究和監(jiān)測工作的需要。同時,多樣化的檢索方式,增強了系統(tǒng)的可用性和便利性。除了有快速搜索和高級搜索兩種基本檢索功能之外,更有在地理地圖上直接劃范圍選點的交互式圖形化檢索模式,從而形成了一個簡潔、高效的自用型地理信息系統(tǒng)。高級檢索頁面如圖2所示。
為了提高的用戶體驗,達到所見即所得的效果,平臺加入了矩形框交互式檢索功能(圖3)。即通過鼠標畫出一個矩形框,點擊搜索后,平臺會將矩形框區(qū)域內(nèi)所有點信息迅速檢索出來。實現(xiàn)這一功能的過程為:①通過onMouseMove函數(shù),將客戶區(qū)鼠標位置的坐標實時記錄下來,并在瀏覽器狀態(tài)欄實時顯示大地坐標(坐標轉(zhuǎn)換后的坐標);②當鼠標左鍵按下后,通過onMouseDown記錄當前位置,并啟動VML矩形畫筆(加入半透明效果),將當前客戶區(qū)坐標賦值給矩形框的top和left屬性;③當鼠標按住不放移動會觸發(fā)onMouseMove響應(yīng),實時獲取當前坐標,并不斷與原始坐標作對比計算。將VML矩形框的top、left、width、height四個屬性不斷賦予新的數(shù)值,并實時畫出矩形框;④當鼠標左鍵彈起,矩形最終定型并繪制完畢。將矩形框四個頂點坐標轉(zhuǎn)換為大地坐標并賦予SQL語句中進行數(shù)據(jù)庫select查詢,獲得空間點的信息通過VML繪制出來。
4 結(jié)論(Conclusion)
本文詳細描述了VML的特點和基本使用方法,并通過一個實例平臺介紹了基于VML技術(shù)的簡單WebGIS平臺實現(xiàn)。通過上述內(nèi)容可以發(fā)現(xiàn),雖然基于XML的可用于描述矢量圖形標記語言有很多種,如VML、GML、SVG等。但基于VML等網(wǎng)絡(luò)矢量圖形標記語言實現(xiàn)簡單、輕量化交互式GIS應(yīng)用操作是構(gòu)建WebGIS系統(tǒng)一種有效途徑,大大提高了實際開發(fā)工作效率,也使開發(fā)成本得以降低。
參考文獻(References)
[1] SHUNFU HU,JIANPENG ZHOU.DEVELOPING.A GIS-BASED INFORMATION MANAGEMENT SYSTEM FOR ON-SITE WASTEWATER TREATMENT FACILITIES[J]. International Journal of Software Engineering and Knowledge Engineering,2008,18(04):503-513.
[2] David Taniar,Maytham Safar et al.Spatial Network RNN Queries in GIS[J].The Computer Journal,2011,54(4):617-627.
[3] Mariam G.Salim.Selection of groundwater sites in Egypt,using geographic information systems,for desalination by solar energy in order to reduce greenhouse gases[J].Journal of Advanced Research,2012,3:11-19.
[4] 常齊,鐘勇.基于VML與SVG的矢量圖形構(gòu)架[J].計算機應(yīng)用,2009,29(z1):288-291.
[5] 付宗堂,陶象武.用VML技術(shù)構(gòu)建WebGIS客戶端矢量圖形的方法研究[J].測繪科學(xué),2007,32(6):146-147.
[6] 鄭智江,等.陸態(tài)網(wǎng)絡(luò)資料綜合信息管理系統(tǒng)的開發(fā)[J].大地測量與地球動力學(xué),2012,32(B08):61-63.
[7] 陳欣.云計算及Android系統(tǒng)中的地震應(yīng)急信息獲取探討[J].信息系統(tǒng)工程,2016(3):28.
[8] 宋磊,吳健平.基于VML和腳本技術(shù)的WebGIS研究與實現(xiàn)[J].計算機技術(shù)與發(fā)展,2008,18(10):190-193.
[9] 駱帝勇.基于VML的計算機圖形學(xué)在線學(xué)習(xí)系統(tǒng)[D].2008.
[10] 蔡錦輝,陸明典.用VML構(gòu)建基于WebGIS的交通氣象服務(wù)系統(tǒng)[J].氣象研究與應(yīng)用,2014,35(2):60-62.
作者簡介:
鄭智江(1984-),男,碩士生,工程師.研究領(lǐng)域:大地測量,地震信息技術(shù).
王杰民(1987-),男,碩士生,助理工程師.研究領(lǐng)域:固體地球物理.