ArcGISServer92开发随笔1

最近一直忙于ArcGISServer92项目研发,博客很久没有更新了。下面就我个人的一些编程体会做个简短的小结。

从开发人员的角度来说,Server功能之所以强大,是因为他能够调用AO组件。除了AO组件库以外,Server还专门为WEB应用开发定制了一个开发框架,也就是ADF。ADF为开发人员构架一个功能强大的WebGIS应用提供了捷径。同时也为实现更深层次的GIS功能提供了可能,通过ADF我们能够很容易的操作AO组件库,哪怕是在分布式部署Server服务的情况下。从编程的角度来说,WebGIS已经能够实现几乎所有的桌面GIS功能。随着ArcGISServer92的正装登场,未来企业级的GIS应用重心会转移到WEB上。以上是我对Server的即兴所想,下面就开始代码部分:

说说图形,也就是Geometry,在ADF里定义了多种图形库,分布在不同的命名空间下,最为常见的当属 :ESRI.ArcGIS.ADF.Web.Geometry ,在Web上显示图形类都被放置在此命名空间下。比如在GraphicLayer下显示的图形。这些图形对象都是NET的值对象,他们只记录构成图形所需的坐标信息和组成结构,并不具备高级的图形操作功能,例如,缓冲区、合并等,通过查看帮助的对象模型图会发现他们实现的接口很简单,并不像AO的图形对象,实现了诸多有用的图形处理功能。要进行高级的图形处理,这就需要AO来解决问题了,这就会涉及到将ADF图形库转换到AO的COM组件上,ADF自身提供了转换的静态方法:
ESRI.ArcGIS.ADF.Web.Geometry.Geometry retval = ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer.Converter.ComObjectToValueObject(uniG, sc, typeof(ESRI.ArcGIS.ADF.Web.Geometry.Geometry)) as ESRI.ArcGIS.ADF.Web.Geometry.Geometry;

但是不要高兴的太找,据我本人的实际应用,这个方法不是万能的,简单的 Point 和 Polygon 可以转换成功,Polyline却不能,总是提示错误,我也对此很疑惑,如果有哪位成功转换的可以告知我一声,于是自己写了一段很长的代码来处理Polyline的图形转换。代码略。通过转换获得AO COM图形对象,进而可以转换的到相应的接口,就能够实现图形高级处理,这就完全的进入AO的范畴,相信大家再熟悉不过了。

小结:ADF 图形 <= ADF提供的静态方法 或者 自行编码转换 = > AO图形 -> AO图形接口
ArcGISServer优点多多,面向服务编程,功能强大,可调用AO组件库实现GIS高级功能,分布式部署 等
但开发和运行效率会是一个考验,对开发人员要求有较高的AO编程和WEB开发背景,同时Server对部署SOC的服务器性能要求较高,同时对于应用服务配置也要进行浏览和查询方面的优化。

以上个人观点,关于Server的开发我会在以后陆续小结,希望大家多多交流指教。
原文地址:https://www.cnblogs.com/gis9/p/793643.html