![](https://csdnimg.cn/release/download_crawler_static/86601047/bg1.jpg)
前言
本文对 ArcObjects 开发进行一个初级介绍,主要面向开发人员。
第一章 了解 ArcObjects
欢迎加入 AO(ArcObjects 的缩写)的世界! 本节将把您引进 AO 的天地,并回答一些相关的问题,如:AO
是什么,为什么 AO 使得开发功能更加强大,如何学习和获取相关的资源信息。
1.1 AO 是什么?
AO 是 ESRI 公司 ArcGIS™ 家族中应用程序 ArcMap™, ArcCatalog™ 和 ArcScene™的开发平台,它是基于
Microsoft® COM 技术所构建的一系列 COM 组件集。应该澄清的是到目前为止,AO 还不是一个独立的应用产
品, 是依附在你的 ArcGIS DeskTop 产品中的软件开发包。也就是说,你购买了 ArcGIS Desktop 的任何一个
产品,不管是 ArcView 还是 ArcInfo,你都有了这套强大的 AO 组件集,利用 AO 提供的组件对象来进行应
用开发。
1.2 AO 的功能
通过 AO 你可完成以下甚至更多的 GIS 功能:
Ÿ 空间数据的显示、查询检索、编辑和分析;
Ÿ 创建各种专题图和统计报表;
Ÿ 高级的制图和输出功能;
Ÿ 空间数据管理和维护;
…………………………
等等。其实是 ArcMap、ArcCatalog 和 ArcScene 这三个应用程序都是由 AO 搭建起来的,因此从理论上讲这
些应用程序能完成的任务,通过 AO 同样可以完成(但重新搭建一个 ArcMap 式的应用程序先不考虑其代价,
就可靠性和稳定性而言就值得怀疑,在以后的内容里我会谈到这个问题)。我们现在绝大部分时候要做的
---就是要利用 ESRI 提供的这些 AO 组件来进行积木式的组装任务。 AO 已经提供了许多底层的基本功能,
而你的任务是按照应用需求将这些底层功能组装集合成一个更强大的 COM 对象。我们现在知道 AO 是基于微
软的 COM 技术来构建的,因此它的开放性和扩展性很强大。这儿的开放性是指在开发环境的选择上可以有
VBA、VB、VC++、DEPHI 等多种支持 COM 标准的开发工具,而扩展性是指 AO 组件没有提供的功能,如需要
定义一种新的数据格式,你就可以利用 COM 技术来写自己的 COM 组件,对 AO 组件库进行扩展补充。在 ESRI
的文挡中曾经看过类似‘用 AO 开发功能是没有限制的,这取决于你的想象力’这样的话,是不是觉得有些
很狂妄。喔,不要理解错啊,AO 的确非常强大 ,看看 ArcMap 给我们展现出来的功能就知道了。由于采用
了 COM 技术,因此你不但可以在 AO 的基础上构造自己的 COM 组件,而且可以自己来完成一个 COM 组件来对
AO 进行补充。至于为什么 AO 会基于 COM 技术,就我个人而言,目前和以后 GIS 的发展会和主流 IT 技术融
合的越来越紧密,毕竟任何一个软件产品最终是要拿来用的,所以除了提供专业的 GIS 功能外,从易用性
和扩展性来说也是极其重要的,而 COM 技术提供了一个解决之道。是不是有些罗嗦,强调其重要性的理由
无非是在开始我们对 AO 的开发前先需要您打针兴奋剂,虽然功能强大、使用方便的应用程序从来不是简单
的几行代码和控件的拖来拖去就可以搞定的,还需要您不断地学习和掌握更多的新的东西,但对于一个开
发人员而言这些投入是值得的,对于尝试利用 AO 做开发的人员也是如此。那我们还不开始吗?
1.3 需要的技术基础
如何进入 AO 软件的领域开发?对于高级的 AO 程序设计人员我想必须跨越四大技术障碍:
1. 面向对象技术思想;
2. COM 技术;
3. AO 各组件对象的层次组织和相互关系;
4. 支持 COM 的各种开发工具及其环境(如 VB、VC、DEPHI 等)
真正属于 ESRI 自己的东西无非就是这套 AO 组件库。对于初次进入 AO 开发领域的人员来说,我个人觉得
(至于 COM 还有其它暂时可以先放一边,照猫画虎完成许多任务还是没有问题的了)可以先从 ArcGIS