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對象的轉換。