2024年6月1日发(作者:)

前奏

ArcGis

首先,很多一开始接触ArcGis的人总以为它是一个应用程序。很遗憾这种理解是片面,甚

至说是不对的。

ArcGis is a Family. 它是一个家族,是N多个应用程序的集合――-包括客户端软件、服务

器端软件等等

ArcView

然后,很多一开始接触ArcView的人又以为它应该是一个应用程序。很遗憾这种理解又是

片面的,甚至说又是不对的。

ArcView is a Aggregation. 它是一个应用程序的集合体―――包括Arcmap、ArcCatalog、

Arctoolbox三个应用程序。

主旋律

进入正题前,我们还是有必要看一下已经泛滥的一张图片:

(Pic From )

ArcMap (core and layer objects)

鉴于大家在这次开发中可能很少涉及关于Page、Element、Mapsurround等Object,所以这

里只是稍微就自己的一字半解来讨论一下Core And Layer Objects。

Core object

Core object并不是一个Object,它是指在Arcmap中核心的几个Objects。从中我又挑出了最

重要也是最常用的三个Object:Application、MxDocument、Map。需要指出的是Application

(要是大家以前碰过VBA,一定不会对Application这个对象陌生的)、以及MxDocument

(Mx前缀表示Arcmap的对象;Gx前缀表示ArcCatalog对象)这两个对象在VB里将不会

碰到,它们只用于VBA定制。

下面的图片将会使这几个对象直观化:

(by kisssy)

小插曲1(COM)

COM不是一种语言,是一种类编程的标准。

l 为什么使用COM?

原因很简单:面向对象;重用,重用再重用;无语言限制(它是一个二进制规范,跟使用什

么语言无关)

Sample1:比如我们用VB编好了一个类,如果把它做成COM类,并编译成DLL,那么我

们就可以在VC、C++、Delphi等任何语言中使用。

l 为什么使用接口?

问题源于:当我们需要改变类的方法中实现过程,或者说其中的一些代码和一些参数设置的

时候,如果不使用接口,你就只能像一个推销员一样,天天上门跟你的用户说:这里方法不

是这么调用的。Maybe it’s cool,but everybody think it’s boring!

那么使用接口又会怎样呢?接口自从你在类设计的时候就规定死了,除非你把它删掉。用户

不需要知道你这个类内部如何变化,他需要做的就是:拿起这把钥匙对准这个钥匙孔!

Sample2:假如我们现在有一个收音的接口:用来播放一些相声和笑话;现在用户提出笑话

很无聊,想听音乐Mp3。那我们要做的就是改变其中的一些代码,而用户仍旧使用这个接

(by kisssy)