缓冲区分析和对象间转换
来源:互联网 发布: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对象的转换。
- 缓冲区分析和对象间转换
- OpenGL离线渲染和缓冲区对象
- OpenGL离线渲染和缓冲区对象
- 缓冲区对象
- 存储器越界引用和缓冲区溢出分析
- 黑马程序员--字符流缓冲区对象,装饰设计模式,字节流,字节流的缓冲区对象,转换流对象
- json和对象间的转换
- IO流缓冲区对象的使用和理解。
- jQuery对象和DOM对象间的相互转换
- TLB 转换检测缓冲区
- 缓冲区和缓冲区溢出[整理]
- 磁盘缓冲区和内存缓冲区
- 进程缓冲区和内核缓冲区
- 数据缓冲区对象管理器
- OpenGL 缓冲区对象
- OPenGL中的缓冲区对象
- OpenGL像素缓冲区对象
- OPenGL中的缓冲区对象
- USB驱动程序的编写
- HibernateSystemException: The database returned no natively generated identity value异常
- -人人相册下载器-
- 软件设计之“开-闭”原则
- 126邮箱TAB选项卡效果(同一页面可多次使用)
- 缓冲区分析和对象间转换
- 一个很漂亮并且很实用的日历
- Lightmap
- 网站时间显示(日历)
- 使用C#编写SQL Server的扩展存储过程
- oracle小技巧之无中生有多行,使用ntile(n)取当前日期所属的季度
- 面向对象分析与设计(UML 2.0)读书笔记(一)
- 如何避免Android内存泄漏之Context
- Android 初学---Android架构