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

?

基于ArcGISServer的實時水情發(fā)布系統(tǒng)開發(fā)

2011-09-27 10:43:16左進府洪金益黃丙湖
地理空間信息 2011年1期
關鍵詞:水情測站實例

左進府,洪金益,黃丙湖

(1.中南大學地學與環(huán)境工程學院,湖南 長沙 410083;2.中國石油大學 (華東)地球資源與信息學院,山東青島 266555)

基于ArcGISServer的實時水情發(fā)布系統(tǒng)開發(fā)

左進府1,洪金益1,黃丙湖2

(1.中南大學地學與環(huán)境工程學院,湖南 長沙 410083;2.中國石油大學 (華東)地球資源與信息學院,山東青島 266555)

ArcGISServer是一個為構建空間相關的企業(yè)級應用的平臺,基于ArcGISServer開發(fā)Web應用和服務有著廣闊的應用前景。主要介紹了ArcGISServer的體系結構及其配置和管理,并以實時水情發(fā)布子系統(tǒng)為應用實例,介紹了如何將AO API的編程任務轉化到ADF層從而提升系統(tǒng)性能的設計和實現(xiàn)方法。

ArcGISServer;Web應用;ADF;AO

ArcGIS Server是一個用于構建集中管理、支持多用戶的企業(yè)級 GIS應用平臺[1]。相較于其他服務器技術,它不僅實現(xiàn)了GIS資源共享,而且提供資源內含的GIS功能的訪問。開發(fā)者基于ArcGISServer可以構建Web應用、Web服務以及其他運行在標準的.NET和J2EEWeb服務器上的企業(yè)級應用。基于ArcGISServer開發(fā)的系統(tǒng)和應用程序具有開發(fā)周期短,開發(fā)難度小,穩(wěn)定可靠等優(yōu)點,并與傳統(tǒng)桌面系統(tǒng)和Web應用無縫集成,使得其于ArcGIS9.0系列產品中一經發(fā)布就成為人們研究的對象。針對基于ArcGISServer開發(fā)的Web應用相關問題,結合濟南市防汛預警決策支持系統(tǒng)開發(fā)實踐,關于如何通過互聯(lián)網絡發(fā)布實時水情信息提出了一種快速可行的解決方案。

1 ArcGISServer體系架構分析

1.1 ArcGISServer概述

ArcGISServer與ArcGIS系列其他軟件一樣后臺基于 ArcObjects(以下簡稱AO)搭建而成,能在企業(yè)和Web計算框架中建立以服務器為中心、集中式管理并以網絡為核心支持多用戶的GIS應用,擁有制圖、查詢分析和地理編碼的全部功能。ArcGIS最大的貢獻在于將高級GIS功能引入到網絡環(huán)境,在此之前高級的GIS功能僅能在桌面端提供。ArcGIS Server包含一個GIS服務器實例和一個Web應用開發(fā)框架(ADF)。

1.1.1 GISServer

GIS服務器由服務器對象管理器(SOM:Server ObjectManager)以及一個或多個服務器對象容器(SOC:ServerObjectContainer)組成,其中核心的AO組件位于對象容器中,具體的GIS功能實現(xiàn)均由遠程調用這些核心組件完成。GIS服務器是一個分布式系統(tǒng),SOM作為 Windows服務運行在某一臺機器上,它管理了一組分布在一臺或多臺作為SOC計算機中的服務器對象的啟動和關閉,同時對SOC計算機進行負載平衡的動態(tài)調節(jié)[2]。

1.1.2 Web應用開發(fā)框架

ArcGIS Server為.NET和JAVA開發(fā)人員提供了Web應用開發(fā)框架,用于開發(fā)ArcGISWeb應用和Web Services。ADF包含一個完善的軟件開發(fā)包,其中有Web控件、工程模板、例子源碼和類庫,可與IDE(如M icrosoftVisualStudio)無縫集成。同時它也包含一個部署Web應用的運行時,可使沒有安裝AO的Web服務器也可運行內嵌了GIS功能的Web應用。Web ADF封裝了不同數(shù)據源實現(xiàn)特定GIS功能的復雜性,對外提供統(tǒng)一的編程接口,在Web應用與多源數(shù)據間起到了中間層的作用,簡化了編程模型。

1.2 ArcGISServer的配置及管理

ArcGISServer系統(tǒng)配置及管理任務包括管理SOC,配置服務器目錄,指定log文件地址,安全配置等,其中主要任務是服務器對象的配置。

1.2.1 服務器對象概述

服務器對象是一種粗粒度(course-grained)的AO對象。它簡化了為完成某項任務而需要的一系列操作的編程模型,使得客戶端僅需要通過一個方法的調用完成某項大塊工作的集合,如地圖的顯示 [3]。通過服務器對象可以調用安裝在GISServer上的細粒度的AO組件。ArcGIS Server內建了一些服務器對象類型,如MapServer和GeocodeServer。在此用一個命名為JNFX的MapServer對象來支持濟南市的地圖文檔數(shù)據。服務器對象在GIS服務器中管理和運行,可被不同的應用程序共享。

1.2.2 服務器對象的生命周期

為了避免服務器對象中資源利用的沖突和充分利用硬件資源,可將服務器對象配置為池式或非池式模式[4]。非池式模式下,服務器對象為每一位用戶創(chuàng)建一個實例,在被釋放回服務器后,服務器對象實例隨即被銷毀。用戶可以對實例對象中的資源進行各種編輯操作,而不必擔心影響其他用戶的使用,因為每當有新的用戶請求時,服務器都會創(chuàng)建新的服務器對象實例和裝載初始化數(shù)據返還給用戶使用。另一種服務器對象模式為池式模式,它并不銷毀釋放回的服務器對象實例,而是將之放進對象池中緩存,當新的用戶請求出現(xiàn)時,服務器從對象池中取出實例供用戶使用。池式對象可以被多個應用進程共享,故能支持更多的并發(fā)用戶。非池式對象可讀可寫,池式對象可讀不可寫,對池式對象進行編輯操作將帶來不可預知的后果。

1.2.3 服務器對象的應用狀態(tài)

服務器對象分為有狀態(tài)和無狀態(tài)。有狀態(tài)是一種可讀寫模式,意味著應用可以對服務器及其相關對象作改動;無狀態(tài)是一種只讀模式,意味著應用不能對服務器對象及其相關對象作改動。一般來說,池式的服務器對象只能被無狀態(tài)使用,非池式的服務器對象為有狀態(tài)使用[5]。服務器對象接口(如IMapServer和IG-eocodeServer)和服務器對象擴展接口 (如 INAServer)等粗粒度的 AO組件公開的屬性和方法本向是無狀態(tài)的,被調用時不會改變服務器對象的屬性,因此不論是在池式還是非池式服務器對象上調用都是安全的。調用與服務器對象相關的細粒度 AO對象則有可能改變服務器對象的狀態(tài)[6]。

2 實時水情發(fā)布系統(tǒng)實現(xiàn)

本文作者以上述開發(fā)環(huán)境設計并實現(xiàn)了濟南市防訊預警決策支持系統(tǒng)實時水情發(fā)布子模塊??臻g數(shù)據存儲在Geodatabase中,實時水情信息數(shù)據經由全市各水情測站采集統(tǒng)一存儲在M icrosoftSQLServer中,Web服務器上通過安裝ArcGISServerADF運行時來部署網絡應用程序 (見圖 1)。通過以上方法,初步實現(xiàn)了集中管理型的網絡GIS應用系統(tǒng),為濟南市公眾獲取實時水情信息和市政相關部門分析決策提供了極大便利(見圖2)。下面介紹系統(tǒng)與GIS服務器端空間數(shù)據交互的關鍵技術實現(xiàn)方法。

2.1 專題圖的實現(xiàn)

根據各水情測站當前水位與自身警戒水位的對比,將所有測站分為兩大類:超出警戒水位和低于警戒水位??紤]到可能地圖上有站點在數(shù)據庫中并沒有相應的條目,增加“No data”類以示數(shù)據缺失。直接對水情測站圖層進行分類渲染將改變服務器對象實例的內在狀態(tài),要求服務器對象配置為非池式模式。參看前面對非池式與池式兩種模式的對比,非池式對象將較多地占用服務器資源,性能卻較低下。如果實時水情信息散布在數(shù)據庫中的多個數(shù)據表,數(shù)據庫管理員可能編寫存儲過程將其公開給開發(fā)人員。這將迫使開發(fā)人員在Web服務器磁盤上創(chuàng)建臨時DBF表格文件作為建立連接的外部數(shù)據源并清理過期的臨時文件,增加了編碼復雜度,降低了程序性能。解決方案是根據水情測站圖層創(chuàng)建 FeatureGrahpicsLayer,覆蓋在原圖層上,然后將之與查詢數(shù)據庫得到的實時水情信息表通過測站編號字段連接合并,最后依據當前水位和警戒水位列值的大小對比做專題渲染。FeatureGraphicsLayer是Web ADF中的核心對象之一,它駐留在Web服務器的內存中,沒有實體文件與之對應,與來自 ArcGIS Server/ArcIMS的地圖資源疊加后發(fā)送到瀏覽器。關鍵代碼如下:

圖1 實時水情發(fā)布系統(tǒng)數(shù)據流程圖

圖2 基于ArcGISServer的實時水情發(fā)布系統(tǒng)

2.2 標注的實現(xiàn)

專題渲染雖然形象直觀,但只是定性的表示,瀏覽者無法藉此獲取精準的水情信息。如果可以把水情信息標注在地圖上,則可以彌補這一缺撼,獲得定量的對比。直接在原水情測站圖層上進行標注涉及圖層屬性表和數(shù)據庫表的連接,甚至有可能需要在硬盤上生成中間臨時表,同樣會改變服務器對象實例的AO組成,要求服務器對象配置為非池式模式。ElementGraphics-Layer可以解決這一問題,它與FeatureGraphicsLayer都繼承自GraphicsLayer類,所不同的是其中的元素只具有幾何形體沒有對應的屬性信息,但幾何形體可以是不同的類型。實現(xiàn)標注功能的關鍵代碼如下:

2.3 測站總覽

將實時水情信息制成表格可以集中呈現(xiàn),方便瀏覽者查閱,缺點是缺乏與地圖的互動。為此編寫的Grid-Results自定義控件擴展了表格功能,除為數(shù)據列提供了排序功能外,還為其增添了縮放,漫游和選擇等常規(guī)GIS功能。瀏覽者可以縮放或漫游地圖至特定或全體測站,還可以選擇它(們)以在地圖上高亮顯示。GridResults控件將地圖與列表數(shù)據聯(lián)系起來,使傳統(tǒng)的表格不再顯得單調呆板,改善了用戶體驗。將水情信息綁定到GridResults控件的代碼如下:

3 結 語

AO應用編程接口雖然功能強大,然而調用細粒度的AO組件有可能導致粗粒度的服務器對象狀態(tài)改變,而一些編程任務又非服務器對象這樣的粗粒度 AO組件所能勝任。本文提出了一種如何將 AO下的編程任務巧妙轉化到ADF層的技術方法,并將其用在實時水情發(fā)布子系統(tǒng)中,實現(xiàn)了預期的功能,提升了系統(tǒng)性能,很好地體現(xiàn)了ArcGISServer在開發(fā)Web應用的一些特點。

[1] 郭婧,張立朝,王科偉.基于ArcGIS Server構建地理信息服務[J].測繪科學,2007,32(3):91-93

[2] 汪旻琦,吳健平,范力銘.基于ArcGIS Server的企業(yè)級GIS系統(tǒng)研究[J].甘肅聯(lián)合大學學報:自然科學版,2006,20(6):83-87

[3] 吳功和,叢明日.基于ArcGISServer的分布式GIS應用[J].測繪科學技術學報,2006,23(1):52-55

[4] 趙自力,王東華,周曉光.基于ArcGISServer的網絡GIS應用系統(tǒng)開發(fā)[J].遙感信息,2007,(1):76-80

[5] ESRICorp.The Developer Help System for ArcGISServer for. NET(VS2005)[CP/DK].ArcGISServer 9.2 for.NET,2005

Research on Developm ent of Web GISU sing A rcGISS erver

by Zuo Jinfu

ArcGIS Server provides a platform to deve lop space related enterprise applications,on which web applications and services based have broad application prospects.It mainly introduced the architecture of ArcGIS Server and its configuration and management and took example for real time riverine in formation publication sub-system to show the way how to transfer the task of AO APIto the ADF-tier to promote the performance of system.

Arc GIS server,web applicaton,ADF,AO (Page:121)

P208

B

1672-4623(2011)01-0121-03

2009-09-22

左進府,碩士,主要從事網絡地理信息方面研究。

猜你喜歡
水情測站實例
GNSS鐘差估計中的兩種測站選取策略分析
全球GPS測站垂向周年變化統(tǒng)計改正模型的建立
測繪學報(2018年10期)2018-10-26 06:12:16
測站分布對GPS解算ERP的影響分析
城市勘測(2018年1期)2018-03-15 03:37:02
甜水情
2011年遼寧省汛期水情分析
完形填空Ⅱ
完形填空Ⅰ
基于GPS坐標殘差序列的全球測站非線性變化規(guī)律統(tǒng)計
千載空靈岸 悠悠湘水情
對聯(lián)(2011年20期)2011-09-19 06:24:46
南汇区| 屏东县| 洞头县| 贵溪市| 桐乡市| 桐梓县| 连云港市| 泽库县| 安义县| 民勤县| 张家界市| 巴林左旗| 平邑县| 沅陵县| 温宿县| 台南县| 化德县| 沿河| 玉龙| 罗城| 张掖市| 东方市| 紫金县| 柘城县| 张家港市| 霍林郭勒市| 唐山市| 雷山县| 宁安市| 札达县| 固镇县| 丹凤县| 嫩江县| 鄯善县| 高青县| 延长县| 上栗县| 通许县| 宁陵县| 肥城市| 临朐县|