- 1 -
Part 5: ArcGIS Engine 二次开发入门
遥感信息工程学院地理信息工程方向实习材料
指导老师:秦昆
武汉大学遥感信息工程学院
ArcGIS Engine 二次开发入门
- 1 -
目录
1 ArcGIS、ArcObjects 和 ArcGIS Engine 简介 ........................................................ - 2 -
1.1 ArcGIS 简介 ................................................................................................ - 2 -
1.2 ArcObjects 简介 ........................................................................................... - 4 -
1.3 ArcGIS Engine 简介...................................................................................... - 4 -
2 ArcGIS 控件介绍 .................................................................................................. - 6 -
2.1 ArcGIS 控件简介 ......................................................................................... - 6 -
2.2 重要控件简介 .............................................................................................. - 8 -
3 ArcGIS Engine 二次开发入门.............................................................................. - 15 -
3.1 ArcGIS Engine 开发起步——第一个简单的地图显示程序............................ - 15 -
3.2 属性查询 ................................................................................................... - 25 -
3.3 空间查询 ................................................................................................... - 31 -
3.4 BaseCommand 开发实例 ............................................................................. - 41 -
3.5 BaseTool 开发实例 ..................................................................................... - 44 -
3.6 通过代码添加图层 ..................................................................................... - 49 -
3.7 构建一个简单的 GIS 应用........................................................................... - 54 -
4 问题解决方法及帮助文档的使用.......................................................................... - 76 -
4.1 使用 ArcObjects 开发帮助系统 .................................................................. - 77 -
4.2 阅读对象模型图(Object Model Diagram)............................................... - 80 -
ArcGIS Engine 二次开发入门
- 2 -
1 ArcGIS、ArcObjects 和 ArcGIS Engine 简介
1.1 ArcGIS 简介
ArcGIS 提供了一个可伸缩的框架,可以为独立用户或者多用户,既可以在桌面端也可
以在服务器端提供 GIS。ArcGIS 9 是用来构建一个完整 GIS 应用的 GIS 软件产品集成。它
是基于共享的 GIS 软件组件——ArcObjects。ArcGIS 9 由以下四部分组成:
ArcGIS Desktop——高级 GIS 应用的集成
ArcGIS Engine——根据应用程序接口来构建基本应用的嵌入式 GIS 组件库
ArcGIS Server——在企业级或者网络框架下构建服务器端 GIS 应用的平台,用来
构建 Web 服务和 Web 应用
ArcIMS——通过公开的因特网协议来发布地图、数据和元数据的 GIS Web 服务器
图 1 ArcGIS 产品结构图
每一个 GIS 框架同样包含 ArcSDE 网关,这是在关系数据库(RDBMS)上组织地理数
据的接口。
ArcGIS 是构建地理信息系统的平台。ArcGIS 9 在地理数据处理、3D 可视化表达和开
发工具方面做了新的扩展。两个新的产品——ArcGIS Engine 和 ArcGIS Server 在这个版本
中发布,是 ArcGIS 成为一个应用程序及服务端开发的完整产品。
使用 ArcGIS 能够开发出一系列的产品,开发者可以:
配置/定制 ArcGIS 的应用,例如 ArcMap 和 ArcCatalog
扩展 ArcGIS 的结构和数据模型
ArcGIS Engine 二次开发入门
- 3 -
利用 ArcGIS Engine 在其他应用程序中嵌入地图和 GIS 功能
使用 ArcGIS Engine 构建并部署桌面版应用程序
使用 ArcGIS Server 构建 Web 服务和应用
ArcGIS 系列产品是通过称之为 ArcObjects 的软件组件加以构建和扩展的。ArcObjects
包括一系列不同的程序组件,从高度封装的组件(例如独立的 geometry objects)到低级组
件( 例如能够同已有的 ArcMap 文档集成的地图组件)。这些组件为开发者集成了大量的 GIS
功能。
ArcGIS 9 的全线产品都具备开发功能(Engine,Server 和 Desktop)。作为一个开发
者,您能够使用标准程序框架结合 ArcObjects 来扩张 ArcGIS Desktop;能够用 ArcGIS
Engine 定制应用;能够使用 ArcGIS Server 构建企业级的 GIS 应用。
图 2 ArcGIS 开发结构图
ArcGIS Desktop 包含了一些列的 Windows 桌面应用程序(例如,地图、目录、工具箱、
地球方面的应用)。ArcGIS Desktop 包含了三种功能级别(ArcView,ArcEditor 和 ArcInfo),
使用 ArcGIS Desktop 开发包能够进行客户化和扩展。
ArcGIS Desktop 的软件开发包(software developer kit,SDK)包含在 ArcView,
ArcEditor 和 ArcInfo 内,支持 COM(Component Objects Model,组件对象模型)和.NET
程序框架。许多开发者利用 Desktop SDK 扩展功能,创建新的 GIS 工具,定制用户界面,
完善 ArcGIS Desktop 应用中专业 GIS 产品的扩展功能。
ArcGIS Server 不仅定义和实现了一系列标准的 GIS Web 服务(例如,地图、数据访
问、地理编码等),同时还支持利用 ArcObjects 进行企业级的服务端应用开发。
ArcGIS Server 开发包让开发者能构建 GIS 服务器用来向多用户提供可供访问的 GIS
功能,能通过客户端对大型 GIS 中央服务器进行处理,能构建和分发 GIS Web 应用,能进
行分布式 GIS 运算。
ArcGIS Engine 二次开发入门
- 4 -
1.2 ArcObjects 简介
ArcObjects 是 ArcGIS Desktop 的开发平台。
ArcGIS Desktop 是一系列 GIS 软件系统:ArcInfo,ArcEditor 和 ArcView。这些系统
服务于 GIS,例如地理数据组织、控件编辑、分级可视化等功能。
ArcGIS Desktop 系统包含一系列的应用,例如 ArcCatalog、ArcMap、ArcToolBox 和
ArcScene,并且能够集成大量不同的扩展产品,例如 ArcGIS Spatial Analyst(空间分析模
块),ArcGIS Geostatistical Analyst(地理统计分析模块),ArcGIS 3D Analyst(三维分析
模块)等。
ArcObjects 是使用微软的组件对象模型(Component Objects Model,COM)书写。
因此,凡是支持 COM 标准的开发语言都能使用 ArcObjects。您能向 ESRI(Environment
System Research Institute,环境系统研究所)的开发者一样,使用同样的方式来扩展
ArcObjects 中的任何一部分。
1.3 ArcGIS Engine 简介
ArcGIS Engine 是开发者用来构建应用程序的一整套嵌入式 GIS 组件。使用 ArcGIS
Engine,您可以将一些 GIS 功能嵌入到已有的应用程序中,这包括 Microsoft Office 产品,
例如 Word 和 Excel,建造有针对性的客户应用程序用来将高级 GIS系统与他人分享。ArcGIS
Engine 由一个软件开发包(software development kit,SDK)和一个给所有 ArcGIS 应用
提供平台的运行许可(runtime)构成。
构成 ArcGIS Engine 的五部分分别如下:
1)基 本服务 ——几 乎任 何 GIS 应用都 需要的 核心 GIS ArcObjects,例 如几何
(geometry),显示(display)等。
2)数据访 问——ArcGIS Engine 提供许 多栅格 和矢量数 据的访 问方式, 包括与
geodatabase 相当的能力和灵活性。
3)地图表达——ArcObjects 使用符号、注记和专题地图来生成和表达地图。
4)开发组件——用来快速定制应用开发程序的高度封装用户接口以及开发过程中全面
的帮助系统。
5)运行许可——ArcGIS Engine 运行许可可以部署标准功能或者加入一些附加的高级
功能。
这中间除了运行许可之外的任何一部分,都打包集成到 ArcGIS Engine 开发包(SDK)
中。ArcGIS Engine 运行许可及其选项,尽管是开发完整的 GIS 应用程序中的一部分,但
包含了应用部署,所以被单独打包。
1.3.1 ArcGIS Engine Software Developer Kit
ArcGIS Engine SDK 是用来开发和部署 GIS 及地图方面应用程序的组件化软件开发产
品。ArcGIS Engine SDK 不是终端产品而是共应用开发者使用的软件包。它能构建基本的
地图浏览或者全面的、动态的 GIS 编辑工具。使用 ArcGIS Engine SDK,作为开发者,您
在定制地图功能接口方面有空前的自由。您可以使用许多 API 中的一些来构建独一无二的
应用程序或者将 ArcGIS Engine 组建与其他软件组建整合,来实现地图和用户需要的其他
信息之间的完美结合。
使用 ArcGIS Engine,地图既能够作为应用程序的核心,也可以作为一个可选项。例如,
如果您的应用主要是数据库中的商务信息,当您查询数据库的时候,ArcGIS Engine 能够将
您感兴趣的商业信息在地图上高亮显示定位出来。
ArcGIS Engine SDK 提供了大量的 GIS 组件,或者称为 ArcObjects,按照之前的介绍,
- 1
- 2
- 3
- 4
前往页