缓冲区分析和对象间转换

来源:互联网 发布:tcp端口阻塞 编辑:程序博客网 时间:2024/05/20 16:45

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对象的转换。