
ArcGIS Server 是功能强大的基于服务器的地理信息系统产品,本书以循序渐进的方式,通过大量的实例
介绍如何在Visual Studio 中,使用C#语言开发基于ArcGIS Server 的Web GIS。全书内容涉及使用ArcGIS Server
开发Web GIS 的各个层面,包括ArcGIS Server 9.2 的功能、架构及安装介绍,ArcGIS Server 的管理、服务的
发布以及配置文件的使用,自定义工具与命令的创建,数据源、图形对象类、任务的自定义及操作,ArcGIS
服务器功能的扩展,以及如何直接使用ArcGIS Server 提供的Web 服务开发程序并对其进行再封装。最后介
绍了Web GIS 中的安全、部署以及性能调优应考虑的关键问题。
本书适用于政府、企业相关部门的GIS 研究与开发人员,也适用于高等院校地理学、地理信息系统、房
地产、环境科学、资源与城乡规划管理、区域经济学等专业学生参考与学习。本书还适合作为各种GIS 培训
学员的学习教材与参考书。
前 言
人类正面临一个海量信息的时代,社会的发展、国家与企业的竞争能力越来越依赖于对信息
的占有量与处理和利用能力。而占人类活动全部信息80%的空间信息如何更快、更好、更充分地
发挥作用已成为全球关注的热点。空间信息科学与技术正是在这样一个强烈的需求呼唤与应用积累
下产生的一个新兴高技术交叉学科,它结合空间技术、信息技术和各类应用技术,主要研究空间信
息的获取、存储、管理、查询、分析、应用、共享、可视表达等理论、方法与技术。“21 世纪是
全球数字化的时代”(比尔·盖茨),“十五”期间我国就已将“数字城市”、“数字国土”等列
入国民经济和科技发展重点计划,“数字北京”、“数字福建”、“数字黄河”等等一些重大工程
即将大展宏图,地理信息系统的研发任重道远。
自 20 世纪60 年代诞生以来,GIS 发展迅速,应用也日趋深化和广泛,逐步融入信息技术(IT)
的主流,正在成为信息产业新的增长点,是发展潜力巨大的地理信息产业的主要组成部分之一。如
今GIS 的应用已经成为我国国民经济和社会信息化建设的亮点,日益深入到各个专业领域和百姓
日常生活中。
GIS 经历了单机环境应用向网络环境应用发展的过程,网络环境GIS 应用从局域网内客户/服
务器(Client/Server,C/S)结构的应用向Internet 环境下浏览器/服务器(Browser/Server,B/S)结
构的Web GIS 应用发展。随着Internet 的发展,Web GIS 开始逐步成为GIS 应用的主流,Web GIS
相对于C/S 结构而言,具有部署方便、使用简单、对网络带宽要求低的特点,为地理信息服务的发
展奠定了基础。
然而,早期的Web GIS 功能较弱,主要用于电子地图的发布和简单的空间分析与数据编辑,
难以实现较为复杂的图形交互应用(如GIS 数据的修改和编辑、制图)和复杂的空间分析,还无
法取代传统的C/S 结构的GIS 应用,出现了B/S 结构与C/S 结构并存的局面,而C/S 结构涉及客
户端与服务器端之间大量数据转输,无法在互联网平台实现复杂的、大规模的地理信息服务。
B/S 结构应用已经由浏览器/网络服务器/数据服务器(Browser/Web Server/Data Server)三层架
构阶段进入到浏览器/网络服务器/应用服务器/数据服务器(Browser/Web Server/Application
Server/Data Server)四层架构阶段。在新的四层架构中,网络服务器和应用服务器分离,并且其间
还可以插入二次开发和扩展功能,其中的应用服务器一般为支持远程调用的组件式GIS 平台,或
由组件式GIS 平台封装而成。将GIS 复杂数据分析与处理功能(编辑、拓扑关系的构建、对象关
系的自动维护、制图)移到GIS 应用服务器上,使客户端与服务端的数据传输减少到最少的程度,
为在Internet 上实现复杂、大规模的地理信息服务提供了可能。这一架构带来的巨大优势是使服务
器端具有极强的扩展性,因此作为应用服务器的组件式GIS 所具备的功能,都可以通过B/S 结构
实现,Web GIS 不再是只能满足地图浏览和查询的简单软件了,而是一个体系先进,功能强大的服
务器端GIS(Server GIS)。新的服务器端GIS 将是未来应用发展的主流。
ArcGIS Server 是一个基于Web 的企业级GIS 解决方案,它为创建和管理基于服务器的GIS
IV Web GIS开发—ArcGIS Server与.NET
Web GIS
应用提供了一个高效的框架平台。它充分利用了ArcGIS 的核心组件库ArcObjects,并且基于工业
标准提供Web GIS 服务。ArcGIS Server 将GIS 和网络技术(Web)两个先进的技术结合在一起:
GIS 擅长与空间相关的分析和处理,网络技术则提供全球互联,促进信息共享。这两项技术协同工
作,相得益彰。
本书通过大量的实例,详细介绍了如何利用ArcGIS Server 开发Web GIS。
在第 1 章中,介绍了GIS 及其发展和与Web 服务的联合,并介绍了基于Web 服务的GIS 的
相关规范。
第 2 章中详细介绍了ArcGIS Server 9.2 的主要功能以及产品的分类分级,并介绍了ArcGIS
Server 系统的整体架构及其相关技术,最后介绍了该产品的安装过程。
第 3 章介绍了ArcGIS Server 的管理、服务的发布以及配置文件的使用。
第 4 章首先介绍了使用ArcGIS Server 创建Web GIS 的不同方法,并介绍了开发Web GIS 的
基础,即Web 应用程序框架,及该框架中Ajax 的使用,最后通过几个实例介绍了如何创建自定义
的工具与命令,实现图形与属性的双向查询与展示。
第 5 章介绍了ArcGIS Server 中支持的数据源类型及其原理,并着重介绍了ArcGIS Server 数
据源的不同层次的使用与管理。本章还介绍了与数据源对应的资源与功能的操作。
第 6 章通过两个大的实例介绍了如何在ArcGIS Server 的Web 应用程序框架(Web ADF)中,
无缝使用自定义格式以及存储的数据源。
第 7 章首先介绍了图形对象类及其操作的不同层次,然后分别通过实例介绍如何在Web 端以
及GIS 服务器端操作图形对象,最后介绍了图形对象在不同层次之间转换的方法。
第 8 章介绍了任务框架的概念、组成,并介绍如何自定义任务框架。
第 9 章介绍如何通过使用COM 功能对象以及服务器对象扩展两种方式来扩展ArcGIS 服务器
的功能。
第 10 章则介绍了如何不在ArcGIS Server 的Web 应用程序框架中,直接使用ArcGIS Server
提供的Web 服务开发程序,以及如何对ArcGIS Server 提供的Web 服务进行再封装,为其他应用
系统提供粗粒度的具有针对性的Web 方法。
第 11 章介绍了Web GIS 中应考虑的安全问题及其措施,以及其部署和性能调优方面的问题。
关于本书的实例,读者可以到图格新知网站(www.booksaga.com)下载其对应的源代码和一
些相关文件。
参与本书编写的人员有刘光、唐大仕、刘增良、韩光瞬、刘小东、贺小飞、李珍贵、岳江、
潘杏花、丁修平、梁宁海、马学坤、胡汝章、潘子南与何军等人。
由于作者水平、经验有限,书中不可避免存在一些缺点与错误,希望能够得到广大专家与读
者的批评与指正。
作者
2009.3
目 录
第1 章地理信息系统的发展与Web 服务...................................................................................1
1.1 地理信息系统及其发展趋势.............................................................................................2
1.1.1 地理信息系统的发展..............................................................................................2
1.1.2 传统Web GIS 的不足.............................................................................................3
1.1.3 Web 服务成为解决方案.........................................................................................3
1.2 Web 服务及其特点............................................................................................................4
1.2.1 Web 服务概述.........................................................................................................4
1.2.2 Web 服务的特点.....................................................................................................5
1.3 空间信息Web 服务...........................................................................................................6
1.3.1 从数据共享的角度看空间信息Web 服务.............................................................6
1.3.2 从软件复用的角度看空间信息Web 服务.............................................................7
1.3.3 从系统集成的角度看空间信息Web 服务.............................................................8
1.3.4 空间信息Web 服务的优势....................................................................................9
1.4 GIS 的Web 服务规范......................................................................................................10
1.4.1 OWS 服务体系......................................................................................................11
1.4.2 空间信息Web 服务的角色与功能划分..............................................................11
1.4.3 空间信息Web 服务的系统框架..........................................................................14
1.4.4 空间信息Web 服务中的基础服务......................................................................15
1.5 GIS 的Web 服务实现方式..............................................................................................19
1.5.1 版本与流通............................................................................................................19
1.5.2 请求规则................................................................................................................20
1.5.3 响应举例................................................................................................................23
第 2 章 ArcGIS Server 9.2 简介与安装......................................................................................26
2.1 ArcGIS Server 9.2 主要功能............................................................................................27
2.2 ArcGIS Server 的产品级别分类......................................................................................30
2.2.1 按功能分级............................................................................................................31
2.2.2 按规模分级............................................................................................................31
2.2.3 可选扩展模块........................................................................................................32
2.3 ArcGIS Server 9.2 系统组成部分....................................................................................32
2.3.1 GIS 服务器............................................................................................................33
VI Web GIS开发—ArcGIS Server与.NET
Web GIS
2.3.2 Web 服务器...........................................................................................................33
2.3.3 客户端....................................................................................................................34
2.3.4 数据服务器............................................................................................................34
2.3.5 管理工具................................................................................................................34
2.3.6 地图内容制作工具................................................................................................34
2.4 ArcGIS Server 包含的主要技术......................................................................................34
2.4.1 ArcSDE..................................................................................................................34
2.4.2 Web 地图应用.......................................................................................................35
2.4.3 ArcGIS Mobile.......................................................................................................36
2.5 ArcGIS Server 9.2 安装....................................................................................................36
2.5.1 ArcGIS Server 安装概述.......................................................................................36
2.5.2 安装ArcGIS Server for .NET................................................................................37
第 3 章 ArcGIS Server 管理与服务发布.....................................................................................40
3.1 管理ArcGIS Server..........................................................................................................41
3.1.1 使用Manager 管理ArcGIS Server.......................................................................41
3.1.2 使用ArcCatalog 管理ArcGIS Server...................................................................43
3.2 发布服务...........................................................................................................................45
3.2.1 服务与功能............................................................................................................45
3.2.2 发布与管理服务....................................................................................................47
3.2.3 配置地图缓存........................................................................................................49
3.3 配置文件的使用...............................................................................................................52
3.3.1 服务器配置文件....................................................................................................52
3.3.2 服务配置文件........................................................................................................53
第 4 章简单 Web GIS 应用开发................................................................................................54
4.1 创建Web GIS 应用的几种方法......................................................................................55
4.1.1 使用Manager 工具创建........................................................................................55
4.1.2 使用Visual Studio 模板创建................................................................................57
4.1.3 使用Web 控件创建..............................................................................................61
4.2 关于Web GIS 应用程序框架..........................................................................................64
4.2.1 Web 应用程序框架体系结构...............................................................................64
4.2.2 与Web 应用程序框架相关的安装内容..............................................................67
4.3 部分页面刷新的实现——Ajax .......................................................................................68
4.3.1 Ajax 技术...............................................................................................................69
4.3.2 Ajax 及XMLHttpRequest 对象原理....................................................................69
4.3.3 用XMLHttpRequest 来实现Ajax ........................................................................70
4.3.4 .NET 中内置的Ajax .............................................................................................74
VII
Web GIS
4.3.5 ArcGIS Web 应用开发框架中的Ajax .................................................................78
4.4 自定义工具与命令...........................................................................................................79
4.4.1 在工具栏中增加按钮............................................................................................80
4.4.2 自定义点查询工具................................................................................................82
4.4.3 高亮显示要素........................................................................................................87
4.4.4 自定义矩形查询工具............................................................................................92
4.4.5 自定义多边形查询工具........................................................................................96
4.4.6 自定义圆查询工具................................................................................................98
4.4.7 自定义命令—清除高亮显示命令..................................................................100
4.5 用属性查询图形.............................................................................................................101
4.5.1 资源内容查询......................................................................................................101
4.5.2 图层字段信息查询..............................................................................................105
4.5.3 属性查询..............................................................................................................111
4.6 右键菜单与地图图片保存.............................................................................................116
4.6.1 添加右键菜单......................................................................................................116
4.6.2 处理右键菜单事件..............................................................................................118
4.6.3 保存地图图片......................................................................................................120
第 5 章数据源、资源与功能对象............................................................................................123
5.1 数据源.............................................................................................................................124
5.1.1 ArcGIS Server 本地数据源.................................................................................124
5.1.2 ArcGIS Server 远程数据源.................................................................................125
5.1.3 ArcIMS.................................................................................................................125
5.1.4 图形图层..............................................................................................................126
5.2 公有数据源API .............................................................................................................127
5.2.1 公有数据源API 的内容.....................................................................................127
5.2.2 公有数据源API 的实现.....................................................................................128
5.3 ArcGIS Server 数据源的使用........................................................................................130
5.3.1 ArcGIS Server API ..............................................................................................130
5.3.2 Web ADF 中的ArcGIS Server API ....................................................................131
5.3.3 管理服务器上下文..............................................................................................133
5.4 操作资源与功能对象.....................................................................................................139
5.4.1 增加与删除资源..................................................................................................139
5.4.2 管理地图资源......................................................................................................144
5.4.3 地图资源的功能..................................................................................................151
第 6 章自定义数据源..............................................................................................................173
6.1 自定义数据源相关概念.................................................................................................174
VIII Web GIS开发—ArcGIS Server与.NET
Web GIS
6.2 XML 数据源...................................................................................................................175
6.2.1 数据格式..............................................................................................................175
6.2.2 实现数据源接口..................................................................................................176
6.2.3 实现地图资源接口..............................................................................................181
6.2.4 实现绘图功能......................................................................................................189
6.2.5 实现Toc 功能.....................................................................................................194
6.2.6 实现地图信息接口..............................................................................................197
6.2.7 注册自定义数据源..............................................................................................199
6.2.8 测试自定义XML 数据源功能...........................................................................200
6.3 遥感影像数据源.............................................................................................................201
6.3.1 实现数据源接口..................................................................................................202
6.3.2 实现地图资源接口..............................................................................................206
6.3.3 实现地图信息接口..............................................................................................210
6.3.4 地图切片信息类..................................................................................................214
6.3.5 实现绘图功能......................................................................................................215
6.3.6 地图切片功能的实现..........................................................................................220
6.3.7 实现Toc 功能.....................................................................................................225
6.3.8 注册自定义数据源..............................................................................................228
6.3.9 测试自定义遥感影像数据源功能......................................................................229
第 7 章图形操作......................................................................................................................230
7.1 图形及相关类概述.........................................................................................................231
7.2 图形操作的不同层次.....................................................................................................231
7.3 在Web 端操作图形.......................................................................................................232
7.3.1 几何对象的创建..................................................................................................233
7.3.2 自定义着色器......................................................................................................238
7.4 在GIS 服务器端操作图形............................................................................................264
7.4.1 独立值专题图......................................................................................................266
7.4.2 范围专题图..........................................................................................................270
7.4.3 柱状专题图..........................................................................................................273
7.4.4 饼状专题图..........................................................................................................276
7.4.5 等级符号专题图..................................................................................................279
7.4.6 点密度专题图......................................................................................................281
7.5 图形对象的转换.............................................................................................................283
7.5.1 几何类型的转换..................................................................................................284
7.5.2 ArcGIS Server 中COM 对象与值对象的转换..................................................294
7.5.3 数据集转换..........................................................................................................295
7.5.4 缓冲区分析..........................................................................................................296
IX
Web GIS
第8 章任务框架......................................................................................................................308
8.1 任务控件.........................................................................................................................309
8.1.1 任务支持控件......................................................................................................309
8.1.2 Web ADF 提供的任务控件................................................................................309
8.1.3 任务框架的构成..................................................................................................310
8.2 自定义任务.....................................................................................................................311
8.2.1 自定义任务类库..................................................................................................312
8.2.2 应用自定义的任务..............................................................................................316
8.2.3 任务运行流程......................................................................................................317
8.2.4 自定义任务的改进..............................................................................................320
第 9 章扩展 ArcGIS 服务器.....................................................................................................322
9.1 几个概念.........................................................................................................................323
9.1.1 ArcGIS 服务器与细粒度的ArcObjects .............................................................323
9.1.2 GIS 服务器COM 对象与.NET...........................................................................324
9.2 使用COM 功能对象扩展GIS 服务器.........................................................................324
9.2.1 COM 组件的创建与实现....................................................................................325
9.2.2 注册COM 组件...................................................................................................331
9.2.3 使用COM 功能对象...........................................................................................331
9.3 服务器对象扩展.............................................................................................................337
9.3.1 创建服务器对象接口扩展..................................................................................337
9.3.2 实现服务器对象扩展..........................................................................................338
9.3.3 创建服务器对象扩展的属性页..........................................................................345
9.3.4 注册自定义服务器对象扩展..............................................................................353
9.3.5 在GIS 服务器上注册服务器对象扩展..............................................................354
9.3.6 在地图服务上应用服务器对象扩展..................................................................355
9.3.7 在Web 应用程序中访问服务器对象扩展.........................................................355
第 10 章 GIS Web 服务的应用与创建......................................................................................361
10.1 GIS Web 服务的应用...................................................................................................362
10.2 应用性Web 服务的创建与使用.................................................................................377
10.2.1 应用性Web 服务的创建..................................................................................377
10.2.2 应用性Web 服务的应用..................................................................................379
第 11 章安全、部署与性能调优..............................................................................................381
11.1 应用程序的安全...........................................................................................................382
11.1.1 使用成员资格管理用户....................................................................................382
X Web GIS开发—ArcGIS Server与.NET
Web GIS
11.1.2 使用角色管理授权............................................................................................383
11.1.3 使用受保护的配置加密配置信息....................................................................387
11.1.4 显示安全的错误信息........................................................................................387
11.1.5 防止拒绝服务威胁............................................................................................389
11.2 应用程序的部署...........................................................................................................389
11.3 性能调优.......................................................................................................................391
11.3.1 数据方面............................................................................................................391
11.3.2 服务方面............................................................................................................391
11.3.3 应用系统的配置与部署方面............................................................................392
11.3.4 .NET 程序代码调优..........................................................................................393
11.3.5 ArcGIS Server 的代码的调优...........................................................................393