Object Model Diagram

在ArcObject中存在三种类型的类:抽象类(Abstract Class),组件类(CoClass)和普通类(Class)。

 抽象类不能用于产生一个新的对象,但是可以用于定义一个子类。

组件类是一个可以直接创建对象实例的类,它的实例对象不依赖其它对象的存在而存在,其生存周期也不用其他的对象管理。在C#.Net环境中,可以使用这样的语句:

IMap pMap=new MapClass();

这里的MapClas就是一个组件类,它可以使用new关键字来产生一个对象pMap。

普通类不能直接产生一个对象,但是它可以用其他的普通类或组件类的方法产生,而不是使用new关键字来完成。

 笔者好奇CartojectModel 和CartoUIObject之间的区别。

Carto库

Carto库(即ESRI.ArcGis.Carto命名空间)包含了为数据显示服务的各种组件对象,如:MapElements(包含Map对象的框架容器);Map和PageLayout(地理数据和图形元素显示的两个主要对象);MapSurrouds(一个与Map对象相关联的用于修饰地图的对象集);Map Grids(地图网格对象,用于设置地图的经纬网格或数字网格,起到修饰地图的作用);Renderers(着色对象,用于制作专题地图),Labeling,Annotation,Dimensions(标注对象;用于修饰在地图上产生文字标记以显示信息),Layers(图层对象,用于传递地理数据到Map或PageLayout对象中去显示),MapServer,ArcIMS Layers、Sysmbols和Renderers、GPS Support等。

CartoUI库

CartUI库中的对象也是为了数据显示服务的,在ao中所有以UI结尾的库中的对象都具有可视化的界面。CartoUI库中包含诸如IdentifyDiaLog、SQLQueryDialog、QueryWizard等对象,这些对象都以一个对话框的形式出现。我们以后将讨论如何使用IdentifyDialog对象来获取地理对象的信息。

ArcMapUI库

ArcMapUI库中的对象为arcmap程序提供了某些可视化的用户界面,这些不能在arcmap程序之外使用。我们可以扩展这个库的内容,为arcMap程序产生自定义的命令或工具。

GeoDatabase库

GeoDatabase库中包含的COM对象是用于操作地理数据库的。地理数据库是一种在关系型数据库和面向对象型数据库基础上发展起来的全新地理数据库模型,它被称为“第三代地理数据库”

这个库中的对象包括核心地理数据对象,如Workspace(工作空间)、DataSet(数据集)等;它也包含了几何网路、拓扑、TIN数据、版本对象、数据转换等多方面的丰富内容。

DataSourcesFile库

地理数据保存在不同形式的文件中,DataSourceFile库中的对象正是起到打开文件格式地理数据的作用。

DataSourcesGDB库

DataSourcesGDB库中的COM对象用于打开数据源为Access数据或任何ArcSEDE支持的大型关系数据库的地理数据。这个库的对象不能被扩展。

DataSourceGDB库中的主要对象是工作空间工厂,一个工作空间工厂可以让用户在设置了正确的连接属性后打开一个工作空间,而工作空间就代表了一个数据库,其中保存着一个或多个数据集对象。这些数据集包括表、要素类、关系类等。AccessWorkspaceFactory用于打开一个基于Access数据库的Personal GeoDatabase......

DataSourcesOleDB库

DataSourcesOleDB库中的对象具有专门的API函数,用于操作任何一种支持OIE DB的数据库。

DataSourcesRaster库

DataSourcesRaster库中的COM对象用于获取保存在多种数据源中的栅格数据,这些数据源包括文件系统、个人数据库或者企业地理数据库(SDE数据库)。这个库还提供了用于栅格数据转换等功能的对象。

Output库

Output库包含了ao所有的输出对象,它包括两个大类,即打印输出对象Printer和转换对象Export。

Framework库

arcgis程序存在一个内在的框架,所有的ao组件对象都在这个框架中扮演了不同的角色,它的协作可以完成arcgis提供的gis功能。这个框架中的某些核心对象被放置在Framework 库中。

Framework库提供了arcgis程序的某些核心对象和可视化组件对象。这个库中的一些对象可以让arcgis程序扩展他们的定制环境,以改变arcgis程序的外观界面。同时,这个库也提供了诸如ComPropertySheet、ModelessFram和MouseCursor等对象,它们是一些对话框,用于在arcgis上实现用户的交互。

Application对象是arcgis程序的核心,它掌握着arcgis程序的生命周期和管理扩展对象;DockableWindows是arcgis中的可停靠窗体;CommandBars和Commands对象也在这个库中定义,它们可以用于用户定制某些命令。Framework库不能被扩展,但是程序员可以通过实现在库中定义的某些接口使用UI组件扩展arcgis程序。

总结:在ArcObject组件库中,除了SystemUI库外,其它以外的UI结尾的库都是属于Desktop版本专用的,它们负责实现ArcGIS Desktop程序的“用户界面”,只能用于基于Desktop版本的开发之中。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值