ArcGIS Server .Net Web ADF的类库简介在做过Server .net 9.2之前版本开发的人都知道,arcgis server adf本身并没有什么类库,只有一些便利类供我们使用,比如webmap,比如webpagelayout,除此之外,我们都是使用的是arcobjects组件来进行开发的。 但是在Server .net 9.2中,随着arcgis server的应用的多数据源模式的推出,导致了arcgis server必须提供一些能够支持各种数据源的类库,这也就是现在的.net adf的类库。因为这些类库和adf中提供的控件联系非常紧密,因此会在我们arcgis server的开发过程中频繁的使用到。 附图中的所列出来的类是ArcGIS Server为我们提供的所有的类, Common APIs ESRI.ArcGIS.ADF.Web ESRI.ArcGIS.ADF.Web.DataSouces ESRI.ArcGIS.ADF.Web.Datasouces.ArcGISServer ESRI.ArcGIS.ADF.Web.DataSouces.ArcWebService ESRI.ArcGIS.ADF.Web. DataSouces.Graphics ESRI.ArcGIS.ADF.Web.. DataSouces.IMS ESRI.ArcGIS.ADF.Web.. DataSouces.OGCWMSService ESRI.ArcGIS.ADF.Web..UI.WebControls Specific APIs ESRI.ArcGIS.ADF ESRI.ArcGIS.ADF.ArcGISServer ESRI.ArcGIS.ADF.ArcGISServer.Editor ESRI.ArcGIS.ADF.ArcWebService ESRI.ArcGIS.ADF.IMS ESRI.ArcGIS.ADF.Connection ESRI.ArcGIS.ADF.Tasks 除了上面列出的这些之外的其他类库都是属于Specific APIs。 Web ADF通过Common APIs来到达相应的Specific APIs。 先来看Common APIs: ESRI.ArcGIS.ADF.Web.DataSouces:包含了为各种数据源用来实现的Common APIs的各种基本接口,比如IGISDataSouce,IGISResouce,IGISFunctionality等。 ESRI.ArcGIS.ADF.Web.Datasouces.ArcGISServer:里面包含的类基本上是ESRI.ArcGIS.ADF.Web.DataSouces中接口的一种实现,这些类就是web Adf中针对ArcGIS Server这种数据源的Common APIs. ESRI.ArcGIS.ADF.Web.DataSouces.ArcWebService:里面包含的类基本上是ESRI.ArcGIS.ADF.Web.DataSouces中接口的一种实现,包含了web Adf中针对ArcWebService 这种数据源的Common APIs. 其他几个依次类推。 各个库中的类的名称可能是相同的,比如MapFunctionality就在ESRI.ArcGIS.ADF.Web.Datasouces.ArcGISServer ESRI.ArcGIS.ADF.Web.DataSouces.ArcWebService ESRI.ArcGIS.ADF.Web. DataSouces.Graphics ESRI.ArcGIS.ADF.Web.. DataSouces.IMS ESRI.ArcGIS.ADF.Web.. DataSouces.OGCWMSService 各个库中都有,但是是针对不同的数据源的,这也就是支持多种数据源并且可以扩展自己的数据源的表现之一。 ESRI.ArcGIS.ADF.Web..UI.WebControls:包含了web adf为我们提供的各种控件类。 再来看看Specifics APIs: 各种Specifics APIs的库的内容比较明确,都是针对不同的数据源要使用到的特殊的类。从名称上大家都可以看出来. 比如ESRI.ArcGIS.ADF.ArcGISServer就是针对ArcGIS Server的Specific APIs, 其他以此类推 在从各种控件入手,进行任何的操作,首先都先接触到这些Common APIs,从Common APIs来判断是哪种数据源,然后着手进入Specific APIs。来看看下面一段代码: / / 从控件得到Functionality的集合 IEnumerable funcenum = Map1.GetFunctionalities(); foreach (IGISFunctionality gisfunc in funcenum) { //从functionality过得图层名称 IMapFunctionality mf = (IMapFunctionality)gisfunc; string[] layerids; string[] layernames; mf.GetLayers(out layerids, out layernames); //从functionality中获得resource资源 MapResourceLocal localRes = mf.Resource as MapResourceLocal; IMapServer pMapServer = localRes.MapServer; IMapServerObjects pMapServerObjects = pMapServer as IMapServerObjects; IFeatureLayer pFeatureLayer = pMapServerObjects.get_Layer(pMapServer.DefaultMapName, 0) as IFeatureLayer; } 首先从控件得到functionality,再从functionality得到resouce,根据resouce的类型我们就知道怎么去使用改resouce的specific APIs了,上面的例子得到Resouce的类型是MapResourceLocal,我们就可以进一步使用MapResourceLocal的Specific APIs――ArcObjects。 [ 本帖最后由 Jueery 于 2007-3-20 03:54 PM 编辑 ] 附件: 您所在的用户组无法下载或查看附件 | |
| TOP 论坛小技巧:输入用户名麻烦?没关系,论坛登陆方式有两种。只需要你记住你的UID号码,一样可以登陆。 |
yoyo ![]()
| 2# 大 中 小 发表于 2007-3-20 22:00 只看该作者 我不太理解用户大会上说的事件处理,至此也没搞清楚server到底从何入手 承接arcims html/adf各种工程及模块(DotNet) [email protected](兼职寻找中) 曾经拥有过 曾经失去过 曾经艰难地选择 多少甜蜜和苦涩 变成多少悲欢离合 曾经失眠过 曾经心酸过 曾经为了你魂不守舍 曾经年青过 曾经冲动过 曾经为了你喝醉过 魂断梦牵的岁月 留在回忆里永不褪色 |
<script type=text/javascript>document.write('
| TOP 免费ArcGIS软件申请,现在点击! |
linkang505
| 3# 大 中 小 发表于 2007-11-11 21:01 只看该作者 |
| TOP 小调查:看看大家都使用哪些工具做ArcGIS二次开发 |
jiyanliang
| 4# 大 中 小 发表于 2007-11-13 10:12 只看该作者 如果再详细一点就好了 我的博客:jnotnull.javaeye.com |
| TOP 小调查:看看大家都使用哪些工具做ArcGIS二次开发 |
sallychu71
| 5# 大 中 小 发表于 2008-5-30 08:51 只看该作者 如果那点隐藏符号 + 能点开就好了。 |
| TOP [社区精华]ArcGIS服务器版面精选文章荟萃 |
challysue
| 6# 大 中 小 发表于 2008-5-31 09:51 只看该作者 要是有类库的详细介绍就好了 |
| TOP 小调查:看看大家都使用哪些工具做ArcGIS二次开发 |
sagittys_xf
| 7# 大 中 小 发表于 2008-6-2 13:31 只看该作者 真的不懂。。。 |
| TOP 小贴士:不了解积分规则?点击查看《社区管理规则》! |
zryanan
| 8# 大 中 小 发表于 2008-6-11 10:47 只看该作者 我也没看懂啊! 例如 现在都说arcgis server提供了adf模板,能快速开发实现用户功能 但是,如何使用这些模板呢?这些模板与web application有啥不同的吗? 请高手出来指教啊 |
| TOP 免费ArcGIS软件申请,现在点击! |
hblky
| 9# 大 中 小 发表于 2008-6-21 18:22 只看该作者 如果能拿一个例子做个视频教程详细讲解会更好! |
| TOP 小调查:看看大家都使用哪些工具做ArcGIS二次开发 |
stronghrq
| 10# 大 中 小 发表于 2008-7-6 14:53 只看该作者 |