ArcGIS Server .Net Web ADF体系结构

ArcGIS Server .net来创建应用有三个层次,
1 使用manager来创建一个web应用
2 使用 .net模板来创建应用
3 使用adf来创建应用
对于一个项目开发来说,需要采用第三中方式来进行开发的,第一,第二中方式一般用于刚刚基础arcgis server的同志学习使用或者是非常简单的应用来使用的,使用adf来进行开发,弄清楚adf的体系结构就显的非常重要,否则就会象掉进arcobjects的巨多的组件堆里的感觉是一样的。在这个讲座中会讲到.Net ADF为我们提供了什么,我们该在ArcGIS Server.Net开发过程中怎么样有序的去使用它们。
以前我们的adf称为 Server adf,那是因为只有单一的数据源,即ArcGIS Server。而现在的是Web Adf,是针对多数据源的,可以是ArcGIS Server, ArcGIS IMs等。
Adf为我们提供的是控件和api。控件是提供用户界面,而common api和specific api的类来具体完成GIS的功能。
首先我们来看看控件,9.2 ADF的控件明显比以前版本复杂一些,除了我们常见的map,pagelayout,toc等控件之外,还出现了一系列的resoucemanager控件。这些控件的出现都是为支持多数据源的这个目标服务的,在解释控件的同时还会涉及到adf中的其他一些概念,这些概念都是贯穿adf的始终的。

1 Resouces,ResouceManager,webcontrols, functionality的关系。
首先我们来解释一下Resouces,ResouceManager,webcontrols, functionality的关系。
控件和数据源之间的关系是通过一系列的ResouceManager控件来维护的。ResouceManager决定哪些数据源是可以使用的Resouces,以及这些Resouces怎么样被控件所使用。一旦一个数据源被ResouceManager管理之后,就被展现为Resouces。控件通过Resouces到达数据源。Resouces可以把数据源以多种形式展现出来,比如可以提供一幅地图展现在map控件种,它也可以把数据源以图层列表的方式展现在toc控件中,也就是说Resource拥有不能的能力,这些不同的能力我们成为不同的functionaligy。
从控件角度来讲,不同的控件可以通过不同的方式来使用相同的数据源,比如一个Resouce可以为map控件提供一幅地图,也可以为toc控件提供一套图层的列表,这就Resouces的不同的functionality。
从数据源角度来讲,不同的Resouces会通用的展现一些能力,也就是提供不同的functionality,比如展现地图,查询地图等。
上面这些文字可能刚开始看起来比较费劲,但是对于使用.net开发的人来说一定要弄清楚这些关系。

2 Common APIs和specific APIs的关系
上面讲了Resouces可以展现为不同的能力,但是具体能够展现为哪些能力还是要看数据源本身能够提供什么样的功能。但是有一些能力是所有数据源都能办到的,也就是说Resouces可以展现出一些所有的数据源都可以提供的能力,比如提供地图,比如查询地图,无论是arcgis server作为数据源,还是arcims作为数据源,这些都是基本的能力。因此adf就把实现这些基本的普通的功能所需要的类归为Common APIs。而有些功能是有些数据源特有的,比如提供编辑功能,那是arcgis server特有的,arcims是无法提供的。这些就被称为specific APIs。
Specific APIs包括arcims api, arcweb api, ogc\wms api, arcgis server soap api, arcgis server arcobjects api,注意其中的arcobjects api也被列为了specific api了,它是arcgis server数据源的specific APIs。

3 Common APIs的基本结构,adf中如何来使用这些common APIs
我们在开发过程中首先接触到的就是ADF中提供的这些Common APIs,而且它的结构比较明朗,不像Specific APIs那样多样。首先我们来看几个基本接口,
IGISDataSouce――定义了数据源的连接
IGISResouce――定义了datasouce提供的信息类型等
IGISFunctionality――定义了resouce怎么被使用
这三个接口是不同的数据源可以展现一些基本功能的基本接口,也就是说不同的数据源要实现基本的功能必须实现这三个基本的类,才能在控件上展现出那些基本的能力。各种数据源都用相应的类实现了这三个接口。
那首先来看一下这三个接口之间的关系,
一个GISDataSouce会包含一系列的GISResouces。GISDatasouce是一个比较大的概念,主要就包含了ArcGIS Server Local, ArcGIS Server internet ,ArcIms, WMS, ArcWeb这几种。那就拿ArcGIS Server Local来说吧,它包含了MapResouce, GeocodeResouce, GeoprocessingResouce几种。
一个GISResouce会包含一系列的GISFunctionality。Functionality定义了resouces怎么被使用。Functionality主要有两种mapfunctionality,queryfunctionality。Mapfunctionality主要展现resouce的地图能力,比如输出地图图片,改变地图范围,设置地图中图层的可见性等。而queryfunctionality主要展现resouce的数据的空间和属性查询能力。
刚才说了不同的数据源都有相应的类来实现上面的基本接口,那我们来看看arcgis server local这种数据源的相应的实现类:
IGISDataSouce ――GISDataSouceLocal
IGISResouce ――MapResouceLocal, GeocodeResouceLocal
IGISFunctionality ――MapFunctionality QueryFunctionality

这就是web adf的优势所在,它可以使得各种不同的数据源都展现为resouce, 使得它们可以以相同的方式得到使用。对于控件而言,每个resouce就象一个图层,而不管数据源是什么。

就举一个地图放大的功能,一个mapcontrol中有两个datasouce,一个是arcgis server local,一个是arcims, 地图的范围重新设定了之后,控件都通过每个resouces提供的mapfunctionality给每个resouces重新设定范围,每个resouces输出这个新的地图。而mapcontrol呢就负责把这些输出图片显示在同一个界面上。对于控件而言,每个resouce就象一个图层。从resouce可以到达datasouce本身。

转载于:https://www.cnblogs.com/zhmore/articles/1084439.html

ArcGIS Server .Net Web ADF体系结构相关推荐

  1. ArcGis Server开发Web GIS新手体验(二)

    ArcGis Server开发Web GIS新手体验(二) 接(一) 我们知道,.net adf提供的map组件.toc组件等都是标准的asp.net组件.这些组件在运行时,会生成相应的html代码, ...

  2. 管理员需要对此项目进行安全扫描_当ArcGIS Server与Web安全擦出火花??

    在WebGIS的项目开发过程中,前端项目的安全隐患也经常出现在GIS系统中,如常见的WEB安全问题,如XSS.XSRF.SQL注入等时刻都影响GIS系统安全,要保证GIS系统的安全,从某种程度上就必须 ...

  3. 总结基于ArcGIS Server 9.2 Dot Net ADF的WebGIS项目部署问题

    过去的几个月内对基于ArcGIS Server9.2的开发有所接触,这也是第一次真正自己动手作WebGIS的开发,期间遇到诸多问题.最突出的就是二次开发WebGIS的部署问题,以及字符集冲突的问题.问 ...

  4. ArcGIS Server 中AJAX应用系列(3)

    本文部分取自ESRI翻译部分及网络,其他文字版权归小能所有,转载麻烦标明出处,谢谢! 写作过程中也参阅了大量其他网络文档,如果您觉得侵犯版权,请和我联系:chinazhousheng@gmail.co ...

  5. ??ArcGIS server公交线路动态分段问题

    问题描述: 1.如果一条公交线路有40个站,我现在只想显示3-9站之间的线路,怎么实现.把公交线路每两站截成一是很低级的做法,一工作量大,二不好更新,如果我的站点有变动,或者增加删除站点需要更新几何数 ...

  6. 【转】使用ArcGIS Engine开发ArcGIS Server的胖客户端浏览程序

    摘要:在ArcGIS 9的家族中,增加了两个新产品:ArcGIS Engine和ArcGIS Server.由于它们各自分别在C/S领域和B/S领域的强大开发能力,一经推出就备受瞩目.其中ArcGIS ...

  7. ArcGIS Server 问题

    摘自ESRI公司网站. ------------------------------------------- 内容摘要 本指导描述了如何配置Windows XP SP2防火墙,使得ArcGIS Se ...

  8. 何修改基于ArcGIS Server .NET ADF确良9.3的WEB SERVER端口使ArcGIS Server Manager来创建WEB应用的注意事项...

    1在IIS中修改TCP的端口号,比如:8080 2在安装的目录下donet的目录下的AddInstance程序,点"修改",删除原来的SERVER Instance 3把新的Ins ...

  9. (译)Web地图设计模式——ArcGIS Server

    原文地址 Web地图通常包含底图(提供影像和位置信息)和功能性的专题图层(包含业务信息).例如提供实时交通信息的在线地图服务,其中街道图是底图,一般情况下不会变化,可以作为其他Web地图应用的底图.交 ...

最新文章

  1. python 正则表达式贪婪模式与非贪婪模式
  2. 知乎13万赞!为何很多名校毕业生,都输在了人生后半程
  3. 十二年来最强购房潮:报价 6 次,疯狂加价,华人程序员在硅谷买房太难了!...
  4. JsBridge Uncaught TypeError: Cannot call method 'callHandler' of undefined, source
  5. 怎样开启mysql慢检查_如何开启mysql的慢查询
  6. .NET大型Web站点StackOverflow架构分析
  7. linux之find命令,Linux基础知识之find命令详解
  8. mysql 备份脚本
  9. 进程间通信之管道通信
  10. 文本编辑器查看 cprintf颜色_实战PyQt5: 028-纯文本编辑控件QPlainTextEdit
  11. PHP文字转语音合成网源码 百度API开发
  12. Python的for循环显示每个元素的下标
  13. 蓝桥杯 ALGO-126 算法训练 水仙花
  14. java反射集合类_java反射 - lara - OSCHINA - 中文开源技术交流社区
  15. 24. jQuery 细节
  16. 文成小盆友python-num6 -反射 ,常用模块
  17. 全国省市区信息,mysql数据库记录
  18. win10版本的共享网络,以及HP LaserJet 1020的共享打印机总结
  19. 如何防止工具(八门神器)进行内存修改(转)
  20. 安装torch_points3d时提示 No such file or directory: nvcc

热门文章

  1. QT之Quick学习笔记之一(Hello Qquick)
  2. CentOS 安装Zabbix 手记
  3. 银行加速“去房地产化”
  4. jQuery Mobile 图标无法显示
  5. android 资源引用 自定义标题栏
  6. 推送通知服务【WP7学习札记之十三】
  7. Javascript实现的类似Google的Div拖动代码
  8. [转载]实际举例C#引用类型和值类型的区别
  9. python库_计算机二级教程 Python语言程序设计,第10章python第三方库概览
  10. 4.5 人脸验证与二分类-深度学习第四课《卷积神经网络》-Stanford吴恩达教授