ArcGIS Engine类库

摘自:ArcGIS Engine 中文开发指南

 

首先上类图

 

下面将概述ArcGIS Engine 中的各个类库。本节中的各个模型图展示了ArcGIS Engine 的类库架构。理解类库结构、它们的依赖关系和基本功能将有助于开发人员了解ArcGIS Engine 的组件。

下面根据依赖关系的顺序对类库进行讨论。模型图中在每个类库框的右上角显示了其序列号。例如,作为ArcGIS 体系结构基础的System 类库,其编号为 1 ,而编号为7 GeoDatabase 类库依赖于模型图中其前面的6 个类库—SyStem SystemUI Geometry Display Server Output


System 类库

 

System 类库是ArcGIS 体系结构中最底层的类库。System 类库包含给构成ArcGIS 的其他类库提供服务的组件。System 类库中定义了大 量开发者可以实现的接口。AoInitializer 对象就是在System 类库中定义的,所有的开发者必须使用这个对象来初始化ArcGIS Engine 和解除ArcGIS Engine 的初始化。开发者不能扩展这个类库,但可以通过实现这个类库中包含的接口来扩展ArcGIS 系统。


SystemUI 类库

 

SystemUI 类库包含用户界面组件接口定义,这些用户界面组件可以在ArcGIS Engine 中进行扩展。包含ICommand ITool IToolControl 接口。开发者用这些接口来扩展UI 组件,ArcGIS Engine 开发人员自己的组件将使用这些UI 组件。这个类库中包含的对象是一些实用工具对象,开发人员可以通过使用这些对象简化用户界面的开发。开发者 不能扩展这个类库,但可以通过实现这个类库中包含的接口来扩展ArcGIS 系统。


Geometry 类库

 

Geometry 类库处理存储在要素类中的要素几何图形或形状或其他图形元素。大多数用户会遇到的基本几何图形对象为Point MultiPoint Polyline Polygon 。除了这些顶级实体外,就是作为多义线和多边形的组成部分的几何图形,是组成几何图形的子要素。它们是Segement Path Ring Polyline Polygon 由一系相连接的、构成列Path 的片段组成. 一个片段由两个不同的点,即起始点和结束点,以及一个定义这两点之间弯曲度 的元素类型组成。片段的类型有CircularArc Line EllipticArc BezierCurve 。所有几何图形对象都可以有与其顶点相 关联的Z M IDs 。所有的基本几何图形对象都支持诸如Buffer Clip 等几何操作。几何子要素不可以由开发者扩展。

GIS 中的实体指的是现实世界中的要素;现实世界中要素的位置由一个带有空间参考的几何图形来定义。空间参考对象,包括投影坐标和地理坐标系统,都包括在Geometry 类库中。开发者可以通过添加新的空间参考和投影来扩展空间参考系统。


Display 类库

 

Display 类库包含用于显示GIS 数据的对象。除了负责实际输出图像的主要显示对象外,这个类库还包含表示符号和颜色的对象,它们用来控制在显示上绘 制时实体的属性。Display 类库还包含在与显示交互时提供给用户可视化反馈的对象。开发者与Display 最常用的交互方式就是类似于Map 对象或 PageLayout 对象提供的视图。Display 类库的所有部分都能进行扩展;通常扩展的对象包括符号、颜色和显示反馈。


Server 类库

 

Server 类库包含允许用户连接并操作ArcGIS Server 的对象。开发人员用GISServerConnection 对象来访问ArcGIS Server 。通过GISServerConnection 可以访问ServerObjectsMananger 对象。用这个对象,开发人员可以操作 ServerContext 对象,以处理运行于服务器上的ArcObjects 。开发人员还可以用GISClient 类库与ArcGIS Server 进行交互。


Output 类库

 

Output 类库用于创建图形输出到诸如打印机和绘图仪等设备及诸如增强型元文件和栅格图像格式(JPG BMP 等)等硬拷贝格式。开发人员用这个类库中 的对象及ArcGIS 系统的其他部分创建图形输出。通常是Display Carto 类库中的对象。开发者可以为自定义设备和输出格式扩展Output 类 库。


GeoDatabase 类库

 

Geodatabase 类库为地理数据库提供了编程API 。地理数据库是建立在标准工业关系型和对象关系数据库技术之上的地理数据仓库。 Geodatabase 类库中的对象为ArcGIS 支持的所有数据源提供了一个统一编程模型。GeoDatabase 类库定义了许多由 ArcObjects 架构中更高级的数据源提供者实现的接口。开发者可以扩展地理数据库,以支持特定类型的数据对象(要素、类等);此 外,Geodatabase 类库还有用PlugInDataSource 对象添加的自定义矢量数据源。地理数据库支持的本地数据类型不能扩展。


GISClient 类库

 

GISClient 类库允许开发者使用Web 服务;这些Web 服务可以由ArcIMS ArcGIS Server 提供。GISClient 类库中包含用于连接GIS 服务器以使用Web 服务的对象。该类库支持ArcIMS 的图像和要素服务。 GISClient 类库提供以无态方式直接或通过Web 服务目录操作ArcGIS Server 对象的通用编程模型。在ArcGIS Server 上运行的ArcObjects 组件不能通过GISClient 接口来访问。要直接获得访问在服务器上运行的ArcObjects ,开发人员应 使用Server 类库中的功能。


DataSourcesFile 类库

 

DataSourcesFile 类库包含用于基于文件数据源的GeoDatabase API 实现。这些基于文件的数据源包括shapefile coverage TIN CAD SDC StreetMap VPF 。开发者不能扩展DtaSourcesFile 类库。


DataSourcesGDB 类库

 

DataSourcesGDB 类库包含用于数据库数据源的GeoDatabase API 实现。这些数据源包括Microsoft Access ArcSDE 支持的关系型数据库管理系统—IBM DB2 Informix Microsoft SQL Server Oracle 。开发者不能扩展DataSourcesGDB 类库。


DataSourcesOleDB 类库

 

DataSourcesOleDB 类库包含用于Microsoft OLE DB 数据源的GeoDatabase API 实现。此类库只能用在Microsoft Windows 操作系统上。这些数据源包括支持数据提供者和文本文件工作空间的所有OLE DB 。开发者不能扩展DataSourcesOleDB 类库。


DataSourcesRaster 类库

 

DataSourcesRaste 类库包含用于栅格数据源的GeoDatabase API 实现。这些数据源包括ArcSDE 支持的关系型数据库管理系统—IBM DB2 Informix Microsoft SQL Server Oracle ,以及其支持的RDO 栅格文件格式。当需要支持新的栅格格式时,开发者不扩展这个类库,而是扩展RDO 。开发者不能扩展DataSourcesRaster 类库。


GeoDatabaseDistributed 类库

 

GeoDatabaseDistributed 类库通过提供地理数据库数据导入和导出工具,可以支持对企业级地理数据库的分布式访问。开发者不能扩展GeoDatabaseDistribute 类库。


Carto 类库

 

Carto 类库支持地图的创建和显示;这些地图可以在一幅地图或由许多地图及其地图元素组成的页面中包含数据。PageLayout 对象是驻留一幅或多幅 地图及其底土元素的容器。地图元素包括指北针、图例、比例尺等。Map 对象包括地图上所有图层都有的属性— 空间参考、地图比例尺等,以及操作地图图层的方 法。可以将许多不同类型的图层加载到地图中。

不同的数据源通常有相应的图层负责数据在地图上的显示,矢量要素由 FeatureLayer 对象处理,栅格数据由 RasterLayer 对象处理,TIN 数据由 TinLayer 对象处理,等等。必要的话,图层可以处理与之相关数据的所有绘图操作,但通常图层都是一个相关的 Renderer 对象。Renderer 对象的属性控制着数据在地图中的显示方式。Renderers 通常用 Display 类库中的符号来进行实际绘制,而 Renderer 只是将特定符号与待绘实体的属性相匹配。Map 对象和 PageLayout 对象可以包含元素。元素用其几何图形定义其在地图或页面上的位置,用行为控制元素的显示。包括用于基本形状、文字标注和复杂标注等的元素。Carto 类库还支持地图注释和动态标注。

尽管开发者可以在其应用程序中直接使用 Map PageLayout 对象, 但通 常 来 说 开 发 者 更 经 常 使 用 更 高 级 的 对 象 , 如 MapControl PageLayoutControl ArcGIS 应用程序。这些高级对象简化了一些任务,尽管它们也提供对更低级别的 Map PageLayout 对象的访问,允许开发者更好的控制对象。

Map Pagelayout 对象并不是 Carto 类库中提供地图和页面绘制的仅有对象。MxdServer MapServer 对象都支持地图和页面的绘制,但不是绘制到窗口中,而是直接绘制到文件中。

开发者可以用 MapDocument 对象保存地图和地图文档(.mxd )中页面布局的状态,以便在 ArcMap ArcGIS 控件中使用。

Carto 类库通常可以在许多方面进行扩展。自定义 Renderer Layer 等都很普遍。自定义图层通常是向地图应用程序中加载自定义数据最简单的方法。


Location 类库

 

Location 类库包含支持地理编码和操作路径事件的对象。地理编码功能可以通过细粒度对象来完全控制访问,或通过 GeocodeServer 对象提供的简化 API 来访问。开发者可以创建自己的地理编码对象。线性参考功能提供对象用于向线性要素添加事件,用各种绘制方法来绘制这些事件。开发者可以扩展线性参考功能。


NetworkAnalysis 类库

 

NetworkAnalysis 类库提供用于在地理数据库中加载网络数据的对象并提供对象用于分析加载到地理数据库中的网络。开发者开以扩展NetworkAnalysis 类库以便支持自定义网络追踪。这个类库目的在于操作公共网络:供气管线、电力供应线网等。

 

Controls 类库

 

开发者用 Controls 类库来构建或扩展具有 ArcGIS 功能的应用程序。ArcGIS Controls 通过封装 ArcObjects 并提供粗粒度的 API 简化了开发过程。尽管这些控件封装了细粒度的 ArcObjects ,但是并不限制对这些细粒度的 ArcObjects 的访问。MapControl PageLayoutControl 分别封装了 Carto 类库的的 Map PageLayout 对象。ReaderControl 同时封装了 Map PageLayout 对象,且在操作控件时提供了简化的API 。如果授权了地图发布程序,开发者可以以访问 Map PageLayout 控件类似的方式访问内部对象。Controls 类库还包含实现一个目录表的 TOCControl 及驻留操作合适控件的命令和工具的 ToolbarControl 。开发者通过创建自己的用于操作控件的命令和工具来扩展 Controls 类库。为此 Controls 类库提供 HookHelper 对象。这个对象使得创建一个操作任何控件及操作诸如 ArcMap 这样的 ArcGIS 应用程序的命令变得非常简单。


GeoAnalyst 类库

 

GeoAnalyst 类库包含支持核心空间分析功能的对象。这些功能用在SpatialAnalyst 3Danalyst 两个类库中。开发者可以通过创建新类型的栅格操作来扩展 GeoAnalyst 类库。为使用这个类库中的对象,需要 ArcGIS Spatial Analyst 3D Analyst 扩展模块许可,或者 ArcGISEngine 运行时空间分析或 3D 分析选项许可。


3DAnalyst 类库

 

3Danalyst 类库包含操作 3D 场景的对象,其方式与 Carto 类库包含操作2D 地图的对象类似。Scene 对象是 3Danalyst 类库中主要对象之一,因为该对象与Map 对象一样,是数据的容器。Camera Target 对象规定在考虑要素位置与观察者关系时场景如何浏览。一个场景由一个和多个图层组成;这些图层规定了场景中包含的数据及这些数据如何显示。开发者很少扩展 3Danalyst 类库。为使用这个类库中的对象,需要ArcGIS 3D Analyst 扩展模块许可或 ArcGIS Engine 运行时 3D 分析选项许可。


GlobeCore 类库

 

GlobeCore 类库包含操作 globe 数据的对象,其方式与 Carto 类库包含操作2D 地图的对象类似。Globe 对象是GlobeCore 类库中主要对象之一,因为该对象与Map 对象一样,是数据的容器。 GlobeCamera 对象规定在考虑globe 位置与观察者关系时golbe 如何浏览。一个golbe 有一个和多个图层;这些图层规定了golbe 中包 含的数据及这些数据如何显示。

GlobeCore 类库中有一个开发控件及与其一起使用的命令和工具。该开发控件可以与Controls 类库中的对象协同使用。

开发者很少扩展 GlobeCore 类库。为使用这个类库中的对象,需要 ArcGIS 3D Analyst 扩展模块许可或 ArcGIS Engine 运行时 3D 分析选 项许可。

 

SpatialAnalyst 类库

 

SpatialAnalyst 类库包含在栅格数据和矢量数据上执行空间分析的对 象。开发者通常使用这个类库中的对象,而不扩展这个类库。为使用 这个类库中的对象,需要ArcGIS 空间分析扩展模块许可或ArcGIS Engine 运行时空间分析选项许可。

 

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值