环境系统研究所公司(美国)
380 New York Street
Redlands, CA 92373-8100, USA
美国政府的受限 / 有限权利
以下所列的任何软件、文档和 / 或数据均受“许可
协议”的制约。美国政府在任何条件下都不能获得大
于受限 / 有限权利中所规定的权利。最基本的原则
是,美国政府使用、复制或公开数据要受到以下条例
相关内容的制约: FAR §52.227-14 Alternates I,II和
III (1987年6月);FAR §52.227-19 (1987年6月) 和
/ 或FAR §12.211/12.212 (商业技术数据 / 计算机软
件); 以及DFARS §252.227-7015 (1995年11月)(技
术数据)和 / 或DFARS §227.7202 (计算机软件)。合
约方 / 制造商是环境系统研究所公司(美国), 380
New York Street, Redlands, California 92373-8100,
USA。
ESRI、ArcView、ArcIMS、SDE、ESRI地球标志、
ArcObjects、ArcGIS、ArcMap、ArcCatalog、ArcScene、
ArcInfo、 ArcEditor、ArcGlobe、StreetMap、ArcReader、
ArcToolbox、3D Analyst、ArcSDE、GIS by ESRI、
ArcGIS标志、www.esri.com以及@esri.com均是环境系
统研究所公司(美国)在美国、欧盟和某些其他司法
登辖区的商标,注册商标或服务标志。
本书涉及到的其他公司和产品是属于其各自商标拥
有人的商标或注册商标。
Copyright © 2004 环境系统研究所公司(美国)
版权所有,翻录必究
环境系统研究所公司(美国)保留本书全部内容的所
有版权。本书受美国版权法及其他国际版权条约和公
约的保护。未经环境系统研究所公司(美国)的书面
许可,不得以任何形式或手段复制、传播,或以任何
电子或文本方式翻印、转载本书的任何部分。如有疑
问,请与环境系统研究所公司(美国)联系:380 New
York Street, Redlands, CA 92373-8100, USA。
本书内容的更改将不另行通知。
本书由 ESRI 公司授权,ESRI 中国(北京)有限公司
组织翻译、出版。
著 作 者
Euan Cameron, Chris Davies, Rob Elkins, Kylie Evans,
Anne Frankland, Shelly Gill, Sean Jones, Allan
Laframboise, Glenn Meister, Dan O’Neill, Rohit Singh,
Steve Van Esch, Zhiqian Yu.
目 录
第一章 ArcGIS 引擎简介 1
ArcGIS 9 概览 2
ArcGIS 引擎概览 6
ArcGIS 引擎用户 10
ArcGIS 引擎功能 12
如何开始 16
使用本书 18
开发资源 19
第二章 ArcGIS 软件体系结构 21
ArcGIS 软件体系结构 22
ArcGIS 应用程序接口 27
ArcGIS 引擎类库 30
第三章 使用 ArcGIS 控件进行开发 39
什么是 ArcGIS 控件? 40
使用 ArcGIS 控件 41
MapControl 和 PageLayoutControl 44
GlobalControl 和 SceneControl 45
ReaderControl 46
TOCControl 和 ToolbarControl 47
用 ToolbarControl 建立应用程序 48
建立不带 ToolbarControl 应用程序 53
第四章 开发环境 55
微软组件对象模型 56
使用 ArcObjects 进行开发 68
Visual Basic 环境 77
Visual Basic 开发环境 90
Visual C++ 97
.NET 应用程序接口 139
Java 应用程序接口 175
C++应用程序接口 189
第五章 许可与部署 213
ArcGIS 许可选项 214
iii
独立可执行许可的初始化 215
部署 ArcGIS 引擎运行时 225
为 ArcGIS 引擎应用程序授权 236
第六章 开发情景 239
240
用 ActiveX 建立应用程序
用 Visual JavaBeans 建立应用程序 262
用 Windows 控件建立应用程序 288
建立命令行 Java 应用程序 314
建立命令行 C++应用程序 331
附录 A:理解对象模型图 345
解释对象模型图 346
附录 B:ArcGIS 开发资源 349
ArcGIS 软件开发工具包 350
ArcGIS 开发在线 353
术语表 355
iv
·ArcGIS Engine 开发指南
1
ArcGIS Engine 简介
ArcGIS Engine 简介
ESRI®的ArcGIS® Engine是一个用于建立自定义独立地理信息
系统(GIS)应用程序的平台,支持多种应用程序接口(APIs),
拥有许多高级GIS功能,而且构建在工业标准基础之上。
本章将向开发人员介绍 ArcGIS Engine 开发工具包和 ArcGIS
Engine运行时软件,讨论如何使用ArcGIS Engine及其不同组
件等问题。
本章涵盖以下主题:
● ArcGIS 9概览 ● ArcGIS Engine概览 ● ArcGIS Engine
用户 ● ArcGIS Engine功能 ● 本书的描述
ArcGIS 9 概览
需要定制ArcGIS桌面应用程序或
操作ArcGIS服务器的开发人员应
参考《ArcGIS Desktop开发指南》
和《ArcGIS Server管理员和开发
指南》。
ArcGIS 9 概览
ArcGIS 为实现单用户或多用户桌面和服务器 GIS 系统提供了一个可伸
缩的框架。本书集中阐述使用 ArcGIS Engine 建立和配置自定义应用
程序的方法。本书对那些需要将制图和 GIS 功能嵌入到自定义应用程
序的开发人员而言非常有用。本书概览了 ArcGIS Engine 及其组件,
以及 ArcGIS Engine 为开发人员建立和配置自定义 GIS 应用程序所能
提供的解决方案。此外,本书还提供了几个情景描述,通过代码示例
展示了 ArcGIS Engine 可以开发的应用程序类型。
ArcGIS 9 概览
ArcGIS 9 是建立完整 GIS 的一个 GIS 软件产品集成体系。该体系建立
在 ArcObjects 这个共享的 GIS 软件组件公用库基础之上。ArcGIS 9
由四个关键部分组成:
ArcGIS Desktop—高级 GIS 应用程序的一个集成套件。
ArcGIS Engine—通过多种应用程序接口建立自定义应用程序的
嵌入式 GIS 组件库。
ArcGIS Server—为企业和 Web 计算框架建立服务器端 GIS 应用程
序的一个平台,可用于建立 Web 服务和 Web 应用程序。
ArcIMS—通过开放 Internet 协议发布地图、数据和元数据的 GIS
Web 服务器。
2·ArcGIS Engine 开发指南
ArcGIS 9 概览
GIS 框架中的每个部分都包括 ArcSDE 网关—管理存储在关系数据库管
理系统(RDBMS)中的地理数据库的一个接口。
ArcGIS 是一个建立地理信息系统的平台。ArcGIS 9 在原有版本的基础
上扩展了一些新功能,主要包括地理处理、三维可视化和开发工具等
几个方面。在这个版本中新增了两个产品,即 ArcGIS Engine 和 ArcGIS
Server,使 ArcGIS 成为了应用程序和服务器开发的完整体系。
ArcGIS 的开发途径多种多样,开发人员可以通过以下几种方法进行开
发:
配置/定制诸如 ArcMap 和 ArcCatalog 等 ArcGIS 应用程序。
扩展 ArcGIS 的结构和数据模型。
用 ArcGIS Engine 将地图和 GIS 功能嵌入到其他应用程序中。
用 ArcGIS Engine 建立和部署自定义桌面应用程序。
用 ArcGIS Server 建立 Web 服务和 Web 应用程序。
用 ArcObjects 这个软件组件可以建立和扩展 ArcGIS 系统。ArcObjects
包括各种各样的可编程组件,从细粒度对象,如几何对象,到粗粒度
对象,如可用于与现有 ArcMap 文档进行交互的地图对象。这些组件集
成了开发人员所需的全部 GIS 功能。
ArcGIS 9 的 开 发 可 以 跨 所 有 产 品
( Engine、Server 和 Desktop)。开
发 人 员 可 以 用 标 准 编 程 框 架 操 作
ArcObjects 来扩展 ArcGIS Desktop,
用 ArcGIS Engine 建立自定义应用程
序,也可以用 ArcGIS Server 实现企
业级 GIS 应用程序。
如前所述,本书集中阐述使用 ArcGIS
Engine 建立和部署自定义应用程序的
方法。如果要定制 ArcGIS Desktop 应
用程序或使用 ArcGIS Server,请参阅
《 ArcGIS Desktop 开 发 指 南 》 和
《 ArcGIS Server 管 理 员 和 开 发 指
南》。
第一章·ArcGIS Engine 简介·3
ArcGIS 9 概览
ArcGIS 系统可以通过多种编程框架进行开发,包括:C++、COM、.NET
和 Java。
用 ArcObjects 建立的 ArcGIS 产品体系结构的每个部分代表了不同的
应用程序开发容器,包括桌面、嵌入式 Engine 和服务器。
ArcGIS Desktop 包括一系列具有用户界面组件的 Windows 桌面应用程
序框架(如地图、目录、工具箱和 Globe 等)。ArcGIS Desktop 有三个
功能层次(ArcView、ArcEditor 和 ArcInfo),而且可以使用 ArcGIS
Desktop 开发工具包进行定制和扩展。
ArcGIS Desktop 的软件开发工具包(SDK)包含在 ArcView、ArcEditor
和 ArcInfo 中,而且支持 COM 和.NET 编程框架。许多开发人员应用
ArcGIS Desktop 的软件开发工具包来增加扩展功能、添加新的 GIS 工
具、自定义用户接口,甚至对 ArcGIS Desktop 应用程序进行完全扩展
以提高专业 GIS 的生产能力。
ArcGIS Server 定义和实现了一系列标准的 GIS Web 服务(如地图、数
据访问、地理编码等服务),并支持基于服务器 ArcObejcts 的企业级
应用程序开发。
4·ArcGIS Engine 开发指南