国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FlexViewer的WebGIS災(zāi)害檢索系統(tǒng)的研究

2012-04-29 15:46:55姚南生潘地林
電腦知識(shí)與技術(shù) 2012年9期

姚南生 潘地林

摘要:FlexViewer是為滿足希望開(kāi)發(fā)RIA的企業(yè)級(jí)程序員的需求而推出的應(yīng)用程序框架,它具有桌面應(yīng)用程序的響應(yīng)性與豐富性,又具有Web傳播范圍廣的特性。文章對(duì)FlexViewer設(shè)計(jì)結(jié)構(gòu)、實(shí)例的生存周期等進(jìn)行了闡述;提出了災(zāi)害檢索系統(tǒng)的設(shè)計(jì)技術(shù)策略,并就系統(tǒng)數(shù)據(jù)源的索取進(jìn)行了分析,最后給出了查詢GeoRSS數(shù)據(jù)的方法及地震災(zāi)害檢索實(shí)例。

關(guān)鍵詞: Flex Viewer;RIA;Widget;ArcGIS;災(zāi)害檢索

中圖分類號(hào):TP315文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)09-2133-03

Research in WebGIS Retrieval System: Based on the Flex Viewer

YAO Nan-sheng1,2, PAN Di-lin1

(1.Anhui University of Science and Technology, Huainan 232001, China; 2.Huainan Normal University, Huainan 232001,China)

Abstract: FlexViewer is a applied process framework to meet the need of business-level programmer who wish to explore RIA. It has advantage of responsiveness and rich like desktop applications as well as characteristics like wide spread like Web.This paper analyzes the design structure and the Instance of the life cycle. Besides, this paper solves the problem of how to design a disaster retrieval system and obtain the system data source. Finally, the method of querying GeoRSS data and the examples of seismic disaster retrieval are come up with.

Key words: FlexViewer; RIA; Widget; ArcGIS; disaster retrieval

Flex Viewer是ESRI公司推出的可以高效開(kāi)發(fā)基于WEB的地理信息應(yīng)用系統(tǒng)的一種完全免費(fèi)的應(yīng)用程序框架。它使用AreGISFlex API技術(shù),集成了一個(gè)完整的用戶界面和一些GIS常使用的功能,使用FlexViewer框架我們可以無(wú)需任何額外的編程就能夠通過(guò)簡(jiǎn)單配置的方法快速搭建起一個(gè)基于ArcGIS Server的以地圖為中心的富客戶端(RIA)應(yīng)用的原型。該框架中還自帶了大量的能夠滿足各種地圖應(yīng)用需要的Widget地圖交互和分析等工具。同時(shí),如果需要增加新的Widget,則開(kāi)發(fā)人員只需在自定義的Widget中實(shí)現(xiàn)框架要求的接口,然后再將該Widget配置到框架中的Config.xml文件中,就能在無(wú)需修改框架代碼的情況下輕松地完成獨(dú)立Widget與框架的無(wú)縫集成,使程序員更加專注于自己的業(yè)務(wù)邏輯而不是頁(yè)面的設(shè)計(jì)。

1 FlexViewer技術(shù)分析

1.1 Flex Viewer的設(shè)計(jì)結(jié)構(gòu)

一個(gè)地理信息服務(wù)項(xiàng)目可以由工作在軟件即服務(wù)方式的伺服機(jī)提供商獲得。在地理信息方面的實(shí)例諸如ArcGIS在線數(shù)據(jù)庫(kù)、ArcGIS服務(wù)器或者網(wǎng)絡(luò)ArcGIS數(shù)據(jù)來(lái)源(如GeoRSS輸入、KML文件、JSON或REST數(shù)據(jù)等)。ArcGIS數(shù)據(jù)來(lái)源即可來(lái)自于在服務(wù)器端的數(shù)據(jù)庫(kù)或高速緩沖存儲(chǔ)器存儲(chǔ)的緩存信息,如地圖、cached maps等;也可以是從移動(dòng)設(shè)備運(yùn)行動(dòng)態(tài)生成的數(shù)據(jù),如現(xiàn)場(chǎng)工程師的筆記本電腦或智能手機(jī)等。然后為Flex Viewer通過(guò)瀏覽器為客戶所用,如圖1所示。這樣的設(shè)計(jì)結(jié)構(gòu)特點(diǎn)使得地理信息的服務(wù)即簡(jiǎn)單又靈活。

圖1 Flex Viewer的設(shè)計(jì)結(jié)構(gòu)圖

1.2 Flex Viewer中實(shí)例的生存周期

Flex Viewer的使用者在應(yīng)用中創(chuàng)建了一個(gè)簡(jiǎn)單實(shí)例。這個(gè)實(shí)例在與服務(wù)器的交互過(guò)程中,它的生命周期經(jīng)歷以下五個(gè)主要事件:

1)通過(guò)瀏覽器讀取容器中(含flash文件)的文件, Flash播放器啟動(dòng)Flex Viewer應(yīng)用程序。

2)該容器從服務(wù)器中調(diào)出config.xml(配置XML文件)和有關(guān)skin(用于定義界面表達(dá)的)文件,并將其應(yīng)用到整個(gè)瀏覽程序的過(guò)程中。

3)基于config.xml,該容器從服務(wù)器中(如ArcGIS在線或ArcGIS服務(wù)器)調(diào)出有關(guān)的地圖服務(wù)項(xiàng)目。該容器同時(shí)也建構(gòu)顯示器上的菜單欄和其他有關(guān)控制工具等。

4)該容器的組件管理器(widget manager)通過(guò)由config.xml中的IP地址(URL)調(diào)出負(fù)載部件。5)用戶與組件進(jìn)行業(yè)務(wù)交流。

1.3 Flex Viewer的容器

Flex Viewer容器使我們能夠擺脫地圖管理、地圖導(dǎo)航、應(yīng)用配置、組件間的通信、數(shù)據(jù)管理等繁重復(fù)雜的編程工作,專注于核心業(yè)務(wù)功能開(kāi)發(fā),而且只需要在Flex Viewer應(yīng)用程序的配置文件中增加配置項(xiàng),就可以將功能以widget的形式快速部署到已有的Flex Viewer應(yīng)用中。

Flex Viewer框架的所有部件都包含在該容器之中。這些部件可按類型分為6類。

1)配置管理(Configuration Manager)-用來(lái)管理所創(chuàng)建的對(duì)象。Flex Viewer通過(guò)配置文件來(lái)組織數(shù)據(jù)、功能和UI。其責(zé)任是適時(shí)讀取配置文件,對(duì)配置文件進(jìn)行解析,然后將解析結(jié)果分發(fā)出去,由其他需要使用配置文件的數(shù)據(jù)的模塊接收。

2)用戶界面管理(UI Manager) -此類包括管理展示界面外觀的感覺(jué),如.css(cascading style sheet)和.skin文件,符標(biāo)與品牌等。Flex Viewer用戶體驗(yàn)之所以風(fēng)格統(tǒng)一,是因?yàn)樽隽舜罅康墓ぷ?,UI Manager會(huì)根據(jù)配置文件中的說(shuō)明腳本對(duì)UI的樣式進(jìn)行配置。

3)控制工具欄(Control Bar) -此類包括管理菜單欄,瀏覽器部分等。

4)地圖管理(Map Manager)–有關(guān)地圖層的管理。Map是GIS應(yīng)用的基礎(chǔ)。Map Manager解決了Map的問(wèn)題。Map Manager不是對(duì)Map的簡(jiǎn)單封裝,而是提供了所有與Map相關(guān)的操作,比如根據(jù)配置文件加載地圖,放大、縮小這些基本操作,畫圖,在地圖上顯示信息框,圖層控制等。

5)組件管理(Widget Manager)–是對(duì)有關(guān)組件的管理。包括根據(jù)配置文件創(chuàng)建Widget信息列表,加載Widget、布局Widget、關(guān)閉Widget等。

6)數(shù)據(jù)管理(Data Manager) -有關(guān)數(shù)據(jù)的管理。

Flex Viewer各個(gè)部分之間需要共享數(shù)據(jù),比如Widget與Widget之間數(shù)據(jù)共享。數(shù)據(jù)管理提供了一種數(shù)據(jù)共享方案,任何模塊都可以通過(guò)其把數(shù)據(jù)貢獻(xiàn)出來(lái),供其他模塊使用。

2系統(tǒng)的設(shè)計(jì)

2.1系統(tǒng)設(shè)計(jì)技術(shù)策略

選用Adobe的Flex Builder 3和美國(guó)ESRI的ArcGIS Server API for Flex 1.3作為開(kāi)發(fā)軟件。由于Adobe的嵌入性元件安裝在人們所用的電腦中遠(yuǎn)遠(yuǎn)高于其他類似的軟件,選用Flex Builder的通用性應(yīng)該更好,動(dòng)畫特征的效果也更佳。選用ESRI提供的Flex Viewer模板程序,并在此模板程序建立我們所需的元件與工具。

聯(lián)接ESRI的ArcGIS服務(wù)器,從該服務(wù)器中免費(fèi)獲取動(dòng)態(tài)的基本地圖資料,以作為程序所需要的基本底圖及災(zāi)害信息數(shù)據(jù)源。建立運(yùn)作圖層將相關(guān)的災(zāi)害信息呈現(xiàn)在底圖上。

2.2系統(tǒng)選用的底圖

通過(guò)網(wǎng)絡(luò)連接美國(guó)ESRI公司對(duì)外公開(kāi)并免費(fèi)提供地圖信息的服務(wù)器(ArcGIS Server),以獲取所需的地圖,并將其作為我們檢索系統(tǒng)的基本底圖。在這個(gè)底圖上呈有一般地圖所具有的基本信息。用這樣方法獲得基本底圖,使得免去建專門的地圖資料及專用的服務(wù)器,因而也就省去了大量的人力物力,也是本系統(tǒng)可以實(shí)現(xiàn)的基本條件。

Flex Viewer選用了三個(gè)地圖作為底圖,即道路圖、衛(wèi)星圖和拓?fù)鋱D,如果點(diǎn)擊某一底圖的鏈接,該底圖的數(shù)據(jù)與說(shuō)明就會(huì)在瀏覽器上以文字形式顯示出來(lái)。索取所需要的地圖,我們是在所建立的程序包中的config.xml文件中加入以下代碼,就可通過(guò)網(wǎng)絡(luò)得到所需要的道路基本地圖。

http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer

2.3索取GeoRSS數(shù)據(jù)

在本系統(tǒng)中,有關(guān)自然災(zāi)害方面的GeoRSS數(shù)據(jù)主要來(lái)源于:The Global Disaster Alert and Coordination System(GDACS)——全球性災(zāi)害警報(bào)和協(xié)調(diào)系統(tǒng)。該系統(tǒng)提供最新最近全球發(fā)生的災(zāi)害情況,諸如火山,水患,風(fēng)災(zāi)和地震。該系統(tǒng)還提供有關(guān)救災(zāi)的信息和動(dòng)態(tài)。另一個(gè)GeoRSS數(shù)據(jù)源是ESRI的一些災(zāi)況數(shù)據(jù)。所用數(shù)據(jù)的分部網(wǎng)址如表1所列。

表1選用的GeoRSS數(shù)據(jù)源部分網(wǎng)址

索取GeoRSS數(shù)據(jù)與索取底圖的方法相同,GeoRSS數(shù)據(jù)也是通過(guò)互聯(lián)網(wǎng)鏈接從有關(guān)網(wǎng)站獲得。GeoRSS數(shù)據(jù)的格式是.xml文件形式。

2.4建立運(yùn)作圖層

將所獲得的GeoRSS數(shù)據(jù)通過(guò)建立的運(yùn)作圖層(Operation Layers)呈現(xiàn),并坐落在底圖上。建立運(yùn)作地圖圖層使用ESRI的API進(jìn)行,步驟如下:首先,從網(wǎng)址讀取有關(guān)GeoRSS數(shù)據(jù);其次,將所得數(shù)據(jù)中的經(jīng)緯度轉(zhuǎn)換為點(diǎn)圖形,在此圖形中,帶有相關(guān)的其他數(shù)據(jù);再次,將點(diǎn)圖形制成一個(gè)運(yùn)作圖層;最后,將點(diǎn)運(yùn)作圖層加在底圖之上。

系統(tǒng)中我們可以用queryRSSData()方法,來(lái)查詢GeoRSS數(shù)據(jù)。

private function queryRSSData():void{

if (querySource){

rssService.url = querySource;

rssService.send();

showMessage(loadingLabel, true);

如圖2地震災(zāi)害檢索所示:在2012年1月1日早晨5:27:54,在日本發(fā)生了一次6.8級(jí)的地震,沒(méi)有造成傷亡。

圖2地震災(zāi)害檢索示例

3結(jié)束語(yǔ)

Flex Viewer框架的核心價(jià)值將程序員從復(fù)雜的編程細(xì)節(jié)中解放了出來(lái),如地圖的管理、地圖的瀏覽、內(nèi)部組件的通信、數(shù)據(jù)的管理等。它允許Web開(kāi)發(fā)人員,特別是那些使用ESRI的ArcGIS技術(shù)的開(kāi)發(fā)人員,能夠得以專注于他們自定義的應(yīng)用程序的核心業(yè)務(wù)功能的開(kāi)發(fā)上。由于目前國(guó)內(nèi)外尚無(wú)提供GeoRSS中文數(shù)據(jù)的服務(wù)設(shè)施,所以本系統(tǒng)對(duì)用GeoRSS檢索自然災(zāi)害,目前只能依賴國(guó)外的服務(wù)設(shè)施。當(dāng)然,該文闡述的基于Flex的WebGIS信息檢索方法適合于其他信息檢索。

參考文獻(xiàn):

[1]張智.基于RIA的WebGIS系統(tǒng)構(gòu)建技術(shù)研究[J].測(cè)繪技術(shù)裝備,2009(4).

[2]黃曦.Flex 4.0 RIA開(kāi)發(fā)詳解[M].北京:電子工業(yè)出版社,2010.

[3] Flex Viewer設(shè)計(jì)模式[EB/OL].http://iaudeu5477.blog.sohu.com/157935579.html.

[4]郭立.基于Flex的企業(yè)級(jí)WEB應(yīng)用開(kāi)發(fā)的研究與實(shí)踐[J].電信交換,2009(4).

赤水市| 海淀区| 和林格尔县| 沁源县| 青海省| 汕尾市| 临漳县| 正阳县| 白河县| 抚远县| 博白县| 嫩江县| 三门峡市| 伊宁县| 佳木斯市| 会泽县| 吐鲁番市| 沙坪坝区| 察雅县| 永平县| 榕江县| 滦平县| 三亚市| 永顺县| 沁阳市| 浦东新区| 女性| 道孚县| 罗源县| 永康市| 正宁县| 师宗县| 阿拉善右旗| 来安县| 渝北区| 长子县| 安义县| 桑植县| 正安县| 威远县| 八宿县|