使用ArcGIS Server开发WebGIS一般可以有以下几种途径
1、使用ESRI ADF for java或for .Net
ADF是ESRI开发的一套用于WebGIS开发的框架,功能非常强大。偶使用过for Java的版本。他使用JSF构建,提供了很多控件,开发简单的WebGIS系统可以直接使用甚至不需要编码。支持瓦片式地图,支持BS系统下的GIS空间数据编辑,内建了测距、测面积、查询、定位、实体高亮显示等等功能。可以同时访问多个GIS服务并叠加结果。
ADF框架可以使用SOAP或者COM+的方式访问ArcGIS Server,特别是后者,可以在ArcGIS Server中创建几乎所有ArcEngine对象,可以实现比较高层次的功能。但是COM+的形式也使服务器部署遇到一定困难。
ADF使用JSF1.1构建,目前的ArcGIS Server 9.3版本带的ADF框架还不能运行在其他版本的JSF实现中。给开发带来了一些不良影响。ADF包办了几乎所有的WebGIS操作,而很多操作又包的比较严实,使得某些细粒度的操作使用起来比较麻烦。
浏览器的调用先是由ADF处理,然后在转交ArcGIS Server,结果一本也要经ADF转一次手,因此有时候性能是个问题。
2、使用ArcGIS Engine
最笨,但也是100%可以被我们掌控的方式。不会受制于WebGIS框架,但是需要自己实现的功能太多,比如客户端脚本,地图状态保持,图片输出,分析运算等等,而且要求在Web服务器上要安装ArcGIS Engine。
但当团队对Web和ArcEngine有较多积累的时候,确实是实现WebGIS最方便的一种方式。
3、使用ArcGIS Server Rest Service
Rest服务调用简便,相应速度快,网络压力小,对网络环境要求低等等,并且所有处理都在服务器端客户端甚至仅仅是JS就可以实现高水平的WebGIS系统。但是对于有较多分析功能要实现的系统来讲似乎不太适用。可以通过GP服务实现分析操作,但是和ArcEngine和ADF比起来要难一些,至少入门不容易。
4、使用JavaScript API
Esri 的 ArcGIS Server JavaScriptAPI无疑是开发轻量级WebGIS系统最佳的方式,目前也非常流行。但是ESRI没有提供离线包,要使用必须在线访问ESRI的网站来获取JS脚本,网上有网友自己制作10.3版本的离线包,但是不知道是不是全面。
其实很难理解ESRI不提供离线包的初衷是什么,ESRI很多政策都是这么让人匪夷所思。
5、使用Flex或者silverlight API
暂时没用过,但是应该是非常炫的一种方式,已经落伍不推荐,但是是Flex还是Silverlight似乎还是需要选择一下。