AO中的组件库(1)

在ArcObjects中数目巨大的COM对象,很多的功能都是相似或者接近的,为了更好地管理这些COM对象,ESRI将它们放置在不同的组件库中,从.NET的角度看,它们是被组织到同一个命名空间中。

使用VB.NET或者C#的读者都会很清楚“命名空间”(NameSpace)的概念,命名空间以一种分层的方式来组织元素的方法。我们知道,对于AO中众多的COM对象,当我们需要使用它们的时候,必须记住每个的名字,这是非常困难的。某些高级程序语言提供了一种逻辑上的聚合方式,以实现更高层次的组件管理。

再用我们在第二节中讨论接口时使用的“公司例子”,如果一个城市拥有上千家公司,这些公司有的业务是相同的,有些则有很大的差别,一家合法的公司都必须在工商局进行备案,那么工商局该如何管理这些数目众多的公司呢?是无区分地任意保存它们的资料,还是分门别类地按照业务范围进行划分?答案显然是后者,工商局可以依据这些公司的业务类别,如IT企业、医药企业、酒店业等进行分别的登记造册。

命名空间也是这样,它将功能相同或者相似的COM对象松散组织起来,在AO Desktop版本中,我们将众多的组件放在不同命名空间。如果我们要进行地理数据操作,需要引入Geodatabase等相关的命名空间,如果涉及到几何形体对象的处理,就需要引入Geometry等命名空间。这种方法让我们在寻找具体的COM对象时更有目标性,它是一种比Class更高层次上的抽象概念。

ArcGIS Desktop版本的AO核心对象被放在53个组件库中,不同的组件库的聚合的功能是不一样的。作为一个程序员。其实没有必要去看每一个组件库,阅读所有的AO组件库是一件不可能的事情。我们应该首先了解一些最基本的组件库后,在将来的实际开发中继续学习自己需要掌握的组件库。

在这些命名空间中,有一些是我们经常使用到的,如Carto、Geometry、system、systemUI、FrameWork等等,需要我们熟练掌握。当我们不记得某个接口或对象属于哪个命名空间的时候,我们可以通过开发帮助很容易地查找到。

学习AO的过程,也就是不断了解这些组件库本身以及库与库之间关系的过程,本节我们将介绍一些最核心的组件库,以给读者了解AO的大概提供帮助。

 System库

System库是ArcGIS框架中最底层的一个库,它提供了一些可以为其它库使用的组件,这些组件都是非常基本的。如数组(Array)、集合(Sets)、Xml对象、Stream对象、分级(Classify)对象和数字格式(NumberFormat)对象等。

数组和集合都是基本的数据单元,而XML对象则给AO提供了操作XML类型文件的能力;Stream对象可以将数据以流的形式保存为如何格式的文件。

分级对象和数字格式对象都和数值数据有关,前者是使用统计函数将数值数据进行不同类型的分级,这个对象大多使用在分级作色中。后者可以让输出的数值的格式互相转变,如角度转弧度,设置小数点等等。

 SystemUI库

SystemUI库定义了一些被ArcGIS用户界面组件所使用的对象,如ICommand、ITool等。在第二章中我们将专门介绍这些程序界面定制的内容。

 Geometry库

Geometry库包含了核心的几何形体对象,如点、线、面等,即在AO中的要素和图形元素的几何形体都可以在这个组件库中寻找到。除此以外,这个库还包含了空间参考对象,包括GeographicCoordinateSystem(几何坐标系统)、ProjectedCoordinateSystem(投影坐标系统)和GeoTransformations(地理变换)对象等。

几何形体对象和空间参考内容,都是AO中比较重要的部分,本书将有专门的章节讲述。

 Display库

Display库包含在输出设备上显示图形所需要的组件对象,它包括Display对象、Color对象、ColorRamp对象、Display Feedbacks对象、Rubber Bands对象、Trackers对象和Symbol对象。

这个库中的对象主要负责GIS数据的显示,如Color和ColorRamp对象可以产生颜色对象,它配合Symbol对象,可以对地理数据进行符号化操作,以产生丰富多彩的地图图形。

Display对象是地图显示的“幕后推手”,它直接管理了地理数据的绘制和显示,DisplayFeedback则是AO中可以使用鼠标与地理视图进行交互的对象,它的内容非常丰富,可以用于绘制图形或移动图形等高级任务。RubberBands对象则相当于一个“橡皮筋对象”,它可以用于在Display上绘制丰富的几何形体对象,如Circle、Rectangle、Polyline和Polygon等。

 DisplayUI库

DisplayUI库提供了具有可视化界面的对象用于辅助图形显示,它包括Property Pages(属性页)对象和StyleGalleryClass对象,前者可以用于设置Symbol对象,而后者则可以用于管理和获取Style(样式)和Symbol(符号)对象。

关于这两个对象,我们将在后面的章节中详细讨论。

 Controls库

Controls库包含了在程序开发中可以使用的可视化组件对象,如MapControl、PageLayoutControl等,这两个对象是本书的研究重点。在本书将辟出专门的章节来讨论这两个对象。

 ArcMapUI库

ArcMapUI库中的对象为ArcMap程序提供了某些可视化的用户界面,这些对象不能在ArcMap结构之外使用,它必须在ArcMap的框架内。IMxApplication和IMxDocument接口都被定义在这个库中,但是它们的实现都在ArcMap库中。

ArcMap的TOC对象也是在这个库中被实现的,TOC即是Table Of Contents,即内容表对象。程序员可以扩展这个库的内容,为ArcMap程序产生自定义的命令或工具。

 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值