緩衝區分析和對象間轉換

ArcGIS Server Web ADF的開發沒有提供緩衝區的算法,不過對於熟悉ArcObjects(AO)開發人員都知道,在ArcObjects中實現緩衝區非常簡單,只需要調用:ITopologicalOperator接口即可。

 這裏有必要對ArcGIS Server的幾何對象進行解釋。在ArcObjects中,幾何對象都是COM對象,而在ADF Web Controls中的幾何對象都是ValueObject,這些幾何對象使用不同的開發方式時必須進行轉換。如在ArcGIS Server中調用ArcObjects接口,就必須把ADF Web Controls的valueObject轉換爲COM的ComObject使用,ArcGIS Server提供Converter來處理這些不同類型幾何對象的轉換。

 

談到ArcGIS Server中的AO編程,有必要對ArcGIS server的兩種通用連接方式進行解釋:ArcGIS Server Internet和ArcGIS Server Local。ARCGIS  Server Internet方式連接GIS Server時,就相當於連接標準的Web Service,而對於Web Service的用戶而言,只有其暴露的方法才能使用,沒有暴露的方法則不能使用。因而通過ArcGIS Server Internet方式連接得到某個服務的時候,所獲得的功能是有限的。ARCGIS Server Local通過局域網連接GIS Server,這時可以使用後臺功能強大的AO組件,可以實現強大GIS功能的開發。

在ArcGIS Server進行遠程調用AO時候,必須創建一個服務器上下文(ServerContext),只有擁有服務器上下文,服務器對象和所有相關的其他對象纔是活動的,可以調用,一旦釋放了服務器上下文,就不能再使用服務器對象。服務器上下文可以看做一個進程(ArcSOC.exe),作爲訪問Server Object和ArcObjects的入口。在ArcGIS Server中使用Server Context的一般步驟如下:

(1)建立於服務器的連接。

(2)獲得服務器對象。

(3)使用服務器對象。

(4)釋放服務器對象。

ADF中的Graphics數據源可以支持兩種圖層,分別爲ElementGraphicsLayer和FeatureGraphicsLayer,兩者都是System.Data.DataTable類型。ElementGraphicsLayer圖層用用來模擬要素圖層並且存儲要素的屬性信息。因而客戶端可以根據要素的屬性來渲染不同的要素。一個FeatureGraphicsLayer圖層只能存放一種幾何類型的元素,因而FeatureGraphicsLayer圖層還支持查詢。

 

實現不同數據源幾何對象之間的轉換,核心程序如下:

ESRI.ArcGIS.Geometry.IGeometry compnt=(ESRI.ArcGIS.Geometry.IGeometry)ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer.Converter.ToIGeometry(pnt,pSC);//實現ADF到COM對象的轉換

 

ESRI.ArcGIS.ADF.ArcGISServer.PolygonN valuePoly=(ESRI.ArcGIS.ADF.ArcGISServer.PolygonN)ESRI.ADF.Web.DataSources.ArcGISServer.Converter.ComObjectToValueObject(bufPoly,pSC,typeof(ESRI.ArcGIS.ADF.ArcGISServer.PolygonN);//實現COM到Server對象的轉換

 

ESRI.ArcGIS.ADF.Web.Geometry.Polygon adfpoly=(ESRI.ArcGIS.ADF.Web.Geometry.Polygon)ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer.Converter.ToADFPolygon(valuePoly);//實現Server到ADF對象的轉換。

發佈了25 篇原創文章 · 獲贊 2 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章