周艷柳 韋波
摘要:基于影像數(shù)據(jù)與基于矢量數(shù)據(jù)的WebGIS集成可提供更為豐富的空間信息Web發(fā)布。以Image Web Server和MapXtreme分別為影像和矢量數(shù)據(jù)的WebGIS發(fā)布平臺(tái),使用Image Web Server客戶端集成框架Image Integration Framework開發(fā)實(shí)現(xiàn)二者的WebGIS集成。給出系統(tǒng)集成開發(fā)的體系結(jié)構(gòu),敘述系統(tǒng)集成開發(fā)方法及功能實(shí)現(xiàn)的關(guān)鍵技術(shù),為系統(tǒng)集成應(yīng)用提供必要的基礎(chǔ)技術(shù)支持。
關(guān)鍵詞: 影像網(wǎng)絡(luò)服務(wù)器;矢量數(shù)據(jù);圖像集成框架;集成開發(fā);地理信息系統(tǒng)
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)09-0256-03
Abstract: The WebGIS integration of image-based and vector-based can provide more colorful spatial information in Web-based releasing. While Image Web Server is a WebGIS platform of releasing image, MapXtreme is a WebGIS platform of releasing vector data. By using Image Integration Framework, a client integration framework of Image Web Server, implemented the WebGIS integration of both. A system structure of the integrative development is given. Then, the method of integrative development and key technology of implemented function are narrated. The discussed result is a essential technology support for the application of integrative development.
Key words: image web server; vector data; image integration framework; integrated development; geographic information system
WebGIS作為空間信息共享的一種方式已得到廣泛的應(yīng)用,隨著影像數(shù)據(jù)應(yīng)用的越來(lái)越廣泛,空間數(shù)據(jù)的共享形式也逐漸從矢量數(shù)據(jù)形式向影像數(shù)據(jù)形式轉(zhuǎn)換,Google Earth即是其中的一個(gè)典型代表[1-6]。Image Web Server(IWS)作為影像數(shù)據(jù)網(wǎng)絡(luò)服務(wù)器,較Google Earth相比,能實(shí)現(xiàn)B/S模式下海量影像數(shù)據(jù)的發(fā)布與共享,開發(fā)出基于影像數(shù)據(jù)形式的WebGIS系統(tǒng)。但單一的影像數(shù)據(jù)形式在地圖信息表達(dá)、信息搜索與查詢等方面明顯表現(xiàn)不足[7-8],因此需要結(jié)合其它基于矢量數(shù)據(jù)的地圖服務(wù)器來(lái)完善WebGIS開發(fā)系統(tǒng)。文獻(xiàn)[9]討論了IWS與SuperMap IS.NET的集成,本文敘述IWS與MapXtreme的集成開發(fā)方法。
1 集成開發(fā)體系結(jié)構(gòu)
MapXtreme Java地圖服務(wù)器部署在Tomcat 5.5 Web服務(wù)器中,矢量數(shù)據(jù)以MapInfo的TAB文件形式進(jìn)行存儲(chǔ),為使IWS能訪問(wèn)MapXtreme矢量數(shù)據(jù),需要建立MapXtreme WMS Web地圖服務(wù)。
IWS部署在Microsoft IIS 6.0 Web服務(wù)器中,影像數(shù)據(jù)以ECW或JPEG 2000格式進(jìn)行壓縮存儲(chǔ),IWS可通過(guò)WMS、ArcXML、ECWP和ImageX其中的一種方式訪問(wèn)影像數(shù)據(jù),同時(shí)以WMS方式訪問(wèn)MapXtreme WMS Web地圖服務(wù),獲取矢量數(shù)據(jù),并將矢量數(shù)據(jù)與影像數(shù)據(jù)進(jìn)行圖層疊加后通過(guò)Internet或Intranet發(fā)布到客戶端瀏覽器中(圖1)。
IWS與MapXtreme的集成開發(fā)采用IWS的客戶端集成框架Image Integration Framework(IIF)。IIF包含一個(gè)應(yīng)用程序,一個(gè)應(yīng)用程序又包含一個(gè)或多個(gè)頻道,一個(gè)頻道通常又包括地圖、工具條、進(jìn)度條、狀態(tài)條等窗口。其網(wǎng)頁(yè)運(yùn)行界面類似于一般Windows應(yīng)用程序界面。地圖(影像)數(shù)據(jù)的顯示采用WebGIS的ActiveX控件實(shí)現(xiàn)技術(shù)[10],并可實(shí)現(xiàn)對(duì)數(shù)據(jù)的地圖操作、搜索與查詢等功能。
2 集成開發(fā)方法
IIF雖然簡(jiǎn)化了客戶端網(wǎng)頁(yè)界面的設(shè)計(jì)與開發(fā),但仍需在定義網(wǎng)頁(yè)界面窗口對(duì)象以及相關(guān)功能實(shí)現(xiàn)上做相應(yīng)的工作。
2.1 網(wǎng)頁(yè)界面窗口對(duì)象定義
IIF網(wǎng)頁(yè)界面窗口布局如圖2所示。
地圖(影像)窗口顯示地圖或影像。地圖(影像)操作工具欄包括放大、縮小、移動(dòng)、全幅顯示、查詢等工具按鈕。屬性窗口包括查詢、進(jìn)度條、狀態(tài)條三個(gè)窗口。查詢窗口顯示使用查詢工具點(diǎn)擊地圖的查詢結(jié)果,同時(shí)點(diǎn)擊查詢結(jié)果時(shí)又能查找到相應(yīng)地圖。進(jìn)度條顯示地圖或影像顯示的完成比例。
狀態(tài)條顯示當(dāng)前地圖或影像顯示的比例尺、中心經(jīng)緯度(坐標(biāo)),其右側(cè)為投影選擇,可以改變當(dāng)前地圖或影像的投影方式。專題圖層通常包括IWS分別以WMS、ArcXML、ECWP或ImageX協(xié)議加載的地圖或影像WMS專題圖層、ArcXML專題圖層和Image專題圖層。搜索窗口允許用戶輸入關(guān)鍵字進(jìn)行信息搜索,并點(diǎn)擊搜索結(jié)果能查找到相應(yīng)地圖。頻道標(biāo)識(shí)顯示頻道標(biāo)識(shí)圖片。所有以上窗口對(duì)象均包含在一個(gè)頻道定義中,可通過(guò)在一個(gè)IIF應(yīng)用程序中定義多個(gè)頻道實(shí)現(xiàn)多個(gè)集成應(yīng)用。
具體實(shí)現(xiàn)時(shí)先使用RApp類創(chuàng)建應(yīng)用程序?qū)ο?,然后向?yīng)用程序?qū)ο笾刑砑宇l道及頻道標(biāo)識(shí)圖片,再向頻道中添加各窗口對(duì)象及其相關(guān)部件。
2.2 MapXtreme集成開發(fā)
2.2.1 影像數(shù)據(jù)加載
IWS可通過(guò)WMS、ArcXML、ECWP和ImageX其中的一種方式訪問(wèn)影像數(shù)據(jù),IIF中對(duì)"ecwp"和"arcxml"兩種協(xié)議接口進(jìn)行了實(shí)現(xiàn),可直接使用。但"arcxml"接口是為使用ArcXML訪問(wèn)ArcIMS服務(wù)定義的,若要使用它來(lái)訪問(wèn)IWS影像數(shù)據(jù),需要注意兩個(gè)地方:一處為發(fā)送影像請(qǐng)求URL時(shí),URL字符串中不能使用單引號(hào),而應(yīng)使用雙引號(hào),否則IWS不能識(shí)別;另一處為XML中的"&"符號(hào),在IWS處理完影像請(qǐng)求后所返回的XML中不能包含"&"符號(hào),否則使用IIF定義的RXml類來(lái)解析XML時(shí)將導(dǎo)致失敗。
加載影像數(shù)據(jù)首先在IIF中添加IWS服務(wù),然后再向IWS服務(wù)中添加影像圖層,并在Image專題圖層窗口顯示圖層列表。
2.2.2 添加IIF服務(wù)定義
主要為MapXtreme地圖加載、搜索和查詢服務(wù)定義。
1)地圖加載服務(wù)。指定服務(wù)名稱、自定義接口名稱、提供MapXtreme WMS Web地圖服務(wù)的URL等。自定義的接口必須由開發(fā)人員自己實(shí)現(xiàn)。
2)搜索服務(wù)。指定服務(wù)名稱、自定義接口名稱、提供MapXtreme WMS Web地圖服務(wù)的URL等。自定義的接口必須由開發(fā)人員自己實(shí)現(xiàn)。搜索服務(wù)中還需添加搜索功能。在搜索窗口中創(chuàng)建搜索輸入文本框、提交按鈕、顯示搜索結(jié)果的窗口,定義提交按鈕響應(yīng)事件的類型及對(duì)應(yīng)執(zhí)行的方法名稱,定義鼠標(biāo)點(diǎn)擊搜索記錄執(zhí)行“屬性查圖”功能時(shí)響應(yīng)事件的類型及對(duì)應(yīng)執(zhí)行的方法名稱。
3)查詢服務(wù)。指定服務(wù)名稱、自定義接口名稱、提供MapXtreme WMS Web地圖服務(wù)的URL等。自定義的接口必須由開發(fā)人員自己實(shí)現(xiàn)。查詢服務(wù)中還需添加查詢功能。首先定義查詢集合,然后向查詢集合中添加單個(gè)查詢和查詢字段。
2.3 關(guān)鍵技術(shù)
MapXtreme服務(wù)定義中的自定義接口必須由開發(fā)人員自己實(shí)現(xiàn)。在IIF中,定義了一個(gè)JavaScript接口類RAccess,類中聲明了與IIF集成所需的接口方法,為實(shí)現(xiàn)這些接口方法,用戶需要自定義一個(gè)JavaScript接口類RInterfaceAccess。
1)IIF中使用自定義接口。RInterfaceAccess構(gòu)造函數(shù)后面加上一個(gè)語(yǔ)句:rAccess["mxtjwms"]= RInterfaceAccess;IIF使用這個(gè)語(yǔ)句實(shí)現(xiàn)IIF與用戶自定義接口類的集成,從而找到用戶實(shí)現(xiàn)的接口方法。"mxtjwms"自定義接口名稱在添加IIF服務(wù)定義時(shí)用到。"mxtjwms"和“RInterfaceAccess”名稱可自定義。
2)地圖圖層與地圖請(qǐng)求。分別由loadLayers和loadMap接口方法向MapXtreme WMS Web地圖服務(wù)發(fā)送WMS GetCapabilities請(qǐng)求和GetMap請(qǐng)求。發(fā)送請(qǐng)求的URL格式包括GET請(qǐng)求方式、請(qǐng)求地圖范圍、WMS GetCapabilities請(qǐng)求或GetMap請(qǐng)求格式。請(qǐng)求回應(yīng)后返回的XML文檔解析由responseMap接口方法負(fù)責(zé),解析成功后再分別調(diào)用loadLayers和loadMap接口方法在WMS專題圖層窗口中顯示圖層列表和在地圖窗口中顯示地圖。
3)搜索功能。需要searchMap、searchResponse、onSelectSearchResult三個(gè)接口方法配合完成。searchMap根據(jù)在搜索窗口中輸入的X、Y坐標(biāo),向MapXtreme WMS Web地圖服務(wù)發(fā)送WMS GetFeatureInfo請(qǐng)求進(jìn)行搜索。searchResponse接口方法負(fù)責(zé)解析請(qǐng)求回應(yīng)后的XML文檔,從中獲取搜索圖元的屬性信息,并顯示在搜索結(jié)果的窗口中。onSelectSearchResult接口方法則用于響應(yīng)當(dāng)鼠標(biāo)點(diǎn)擊搜索窗口中屬性值時(shí)實(shí)現(xiàn)“屬性查圖”功能。為實(shí)現(xiàn)將圖元按一定比例高亮顯示,需要從請(qǐng)求回應(yīng)后的XML中解析出圖元的坐標(biāo)(串),找出坐標(biāo)X、Y的最大和最小值,以構(gòu)成矩形邊界。
圖元的高亮顯示可以采用向地圖窗口中添加簡(jiǎn)單矢量圖層的方法來(lái)實(shí)現(xiàn)。實(shí)現(xiàn)關(guān)鍵代碼如下:
var ECWVectorLayer = new NCSVectorLayer(map, "VectorOverlay");
ECWVectorLayer.objectNumPoints = 0;
ECWVectorLayer.setMode("filledpolygon");
ECWVectorLayer.lineThickness = 1;
ECWVectorLayer.penColor = "#000000";
ECWVectorLayer.fillColor = "#FF0000";
for(var i=0;ivar nodeX = nodecoord[i].getElementsByTagName("X")[0];
var nodeY = nodecoord[i].getElementsByTagName("Y")[0];
var valueX = nodeX.childNodes[0];
var valueY = nodeY.childNodes[0];
if((valueX.nodeType == Node.TEXT_NODE) &&(valueY.nodeType != Node.TEXT_NODE)){
if(i==0){
ECWVectorLayer.mouseDown(valueX.nodeValue, valueY.nodeValue);
}else{
ECWVectorLayer.mouseUp(valueX.nodeValue, valueY.nodeValue);
}}}
ECWVectorLayer.setTransparency(0.3);
ECWVectorLayer.redraw();
需要指出的是,若需同時(shí)創(chuàng)建多個(gè)簡(jiǎn)單矢量圖層,則需要更改NCSVectorLayer類的源代碼。首先將代碼中的"VectorOverlay"字符串全部替換成“this.layerName”,然后再利用構(gòu)造函數(shù)的第二個(gè)參數(shù)layerName將新建的圖層名傳遞給this.layerName,從而避免了因出現(xiàn)相同圖層名"VectorOverlay"而導(dǎo)致的錯(cuò)誤。
4)查詢功能。需要queryLayers、queryResponse、onSelectQueryResult三個(gè)接口方法配合完成。實(shí)現(xiàn)過(guò)程與搜索功能類似,這里不再贅述。
3 結(jié)束語(yǔ)
Image Web Server與MapXtreme的集成,實(shí)現(xiàn)了基于影像數(shù)據(jù)和基于矢量數(shù)據(jù)的WebGIS系統(tǒng)的集成開發(fā),做到二者的優(yōu)勢(shì)互補(bǔ)。采用Image Integration Framework作為客戶端集成開發(fā)方案,能大大節(jié)省網(wǎng)頁(yè)界面的設(shè)計(jì)與開發(fā)時(shí)間,簡(jiǎn)化集成開發(fā)過(guò)程。由于Image Web Server與MapXtreme可部署在網(wǎng)絡(luò)不同服務(wù)器中,這種集成方式也適用于各級(jí)政府部門的基礎(chǔ)地理信息數(shù)據(jù)的集成共享。隨著高分辨率遙感影像的逐漸推廣應(yīng)用,這種集成的WebGIS系統(tǒng)將具有更為廣泛的應(yīng)用前景。
參考文獻(xiàn):
[1] 黃琪, 張宗毅. 基于Google軟件的農(nóng)地區(qū)高程獲取及精度評(píng)價(jià)[J]. 測(cè)繪通報(bào), 2015(2): 51-54.
[2] 劉祥磊, 馬靜, 江濤. 基于Google Earth管線巡檢系統(tǒng)地圖數(shù)據(jù)的制作方法研究[J]. 測(cè)繪科學(xué), 2008, 33(2): 141-142.
[3] 苗放, 葉成名, 劉瑞等. 新一代數(shù)字地球平臺(tái)與“數(shù)字中國(guó)”技術(shù)體系架構(gòu)探討[J]. 測(cè)繪科學(xué), 2007, 32(6): 157-158.
[4] 劉瑞敏, 李華, 王思鍇等. 基于Google Earth的地鐵亦莊線GPS控制網(wǎng)布設(shè)[J]. 測(cè)繪通報(bào), 2008(11): 47-49.
[5] 徐勝祥, 徐運(yùn)清. 孝感市遙感影像數(shù)據(jù)的Web發(fā)布與實(shí)現(xiàn)[J]. 測(cè)繪科學(xué), 2007, 32(5): 124-126.
[6] 楊翼飛, 唐詩(shī)華, 文鴻雁. 基于Google Earth的3S技術(shù)在桂林市土地更新中的應(yīng)用[J]. 測(cè)繪通報(bào), 2008, (11): 61-63.
[7] 劉志芳, 付華. 基于WebGIS的旅游信息系統(tǒng)建設(shè)[J]. 測(cè)繪科學(xué), 2009, 34(1): 162-164.
[8] 劉純波, 陳云浩, 李月臣. 面向數(shù)字城市的超媒體移動(dòng)地理信息服務(wù)引擎[J]. 測(cè)繪通報(bào), 2006(4): 21-25.
[9] 韋波. Image Web Server與SuperMap IS.NET的應(yīng)用集成[J]. 工程勘察, 2010, 38(1): 59-62.
[10] 吳成明. 淺析WebGIS應(yīng)用系統(tǒng)的開發(fā)技術(shù)[J]. 測(cè)繪通報(bào), 2003(10): 50-53.