C#+ArcEgine开发---理论学习(2)

ArcEgine中的类库
在ArcEgine开发中,为了更好管理这些COM对象,ESRI将这些COM对象放在不同的组件库中。物理上,它们被放在bin目录下的dll中,逻辑上被分散到不同的命名空间中。

1、System
System库是ArcGIS架构中最底层的库,库中定义了许多接口,它们可以由开发者来实现。AoInitializer对象在System中定义;所有开发者必须使用该对象在使用Egine功能的应用程序中初始化和uninitialize ArcGIS Egine。开发者不扩展该库,但可以通过实现其中的接口来扩展ArcGIS系统。

2、SystemUI
SystemUI库中包含了可在ArcGIS Egine中扩展的用户界面组件的接口定义,包括ICommand、ITool和IToolControl接口。开发者使用这些接口来扩展UI组件。该库所包含的对象是utility对象,开发者可用于简化某些用户界面的开发。

3、Geometry
Geometry库处理存储在特征类(feature classes)或其他图形要素(graphical elements)中的特征的geometry或shape。大多数用户交互的基本几何对象有Point、MultiPoint、Polyline和Polygon。除了这些顶层的实体,还有作为Polylines和Polygons构建模块的几何体(geometries)。这些是组成几何体的基元(primitives)。它们是Segments、Paths和Rings。Polylines和Polygons由形成一条Path的依次相连的Segments组成。

4、Display
Display库包含了用于GIS数据显示的对象,还包含了表示颜色和符号的对象,这些颜色和符号用于控制显示上所绘制实体的属性。

5、Output
Output库用于创建图像输出到设备

6、GeoDatabase
GeoDatabase库提供了用于geodatabase的编程API。GeoDatabase是一个构建在标准工业关系和对象数据库技术基础上的地理数据储存库。库中的对象为ArcGIS支持的所有数据源提供了统一的编程模型。

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

8、DataSourcesGDB
DataSourcesGDB 库包含了用于数据库数据源的GeoDatabase API 的实现。这些数据源包括Microsoft Access 和SDE®软件支持的RDBMSs。开发者不能扩展DataSourcesGDB库。

9、DataSourceRaster
DataSourcesRaster 库包含了用于Raster 数据源的GeoDatabase API 的实现。这些数据源包括SDE 软件支持的RDBMSs,和所有支持的RDO栅格文件格式。当需要支持新的栅格格式时,开发者不扩展该库,而是扩展RDO。
10、Carto
Carto 库支持地图的创建和显示;这些地图可以包含一幅地图或具有多幅地图和相关旁注的页中的数据。PageLayout 对象是宿主一幅或多幅地图和相关旁注(指北针、图例、比例尺条等)的容器。 Map 对象是图层的容器。 Map 对象有操作地图中所有图层的属性:空间参考、地图比例尺等,还有操作地图图层的方法。有多种不同类型的图层可以被加载到地图中。不同数据源通常有一个相关图层负责在地图上显示数据;矢量特征由FeatureLayer 对象处理,栅格数据由RasterLayer 对象处理, TIN 数据由TinLayer 对象处理等。若需要,图层可以为它们的相关数据处理所有的绘制操作。但更常见的是图层拥有一个相关的Renderer 对象。 Renderer 对象的属性控制数据在地图中怎样显示。 Renderers 一般使用Display 库中的symbols 进行实际绘图; renderer 只是匹配指定的符号与要绘制的实体的属性。一个Map 和一个PageLayout 可以包含要素(elements)。要素利用几何体来定义它在地图或页面上的位置,以及控制要素显示的行为。有用于基本形状、文本标注、复杂旁注等的要素。 Carto 库也包含对地图注记和动态标注的支持。
11、Location
Location 库包含支持地理编码和与route 事件一起工作的对象。可通过full 控件的finegrained对象访问地理编码功能,或GeocodeServer 对象提供了一个简化的API。开发者可以创建他们自己的地理编码对象。线性参考功能提供了添加事件到线性特征的对象,并使用多种绘制方法渲染这些事件。开发者可以扩展线性参考功能。
12、NetworkAnalysis
NetworkAnalysis 库提供的对象在网络加载到geodatabase 中时,使用网络数据和对象populating ageodatabase 来分析网络。开发者可以扩展该库来支持定制的网络跟踪。该库是用于utility 网络的——gas lines、 electricity supply lines 等。

13、Controls
开发者使用Controls 库来构建或扩展具有ArcGIS 功能的应用程序。 ArcGIS Controls 通过封装ArcObjects 和提供一个coarser-grained API,简化了开发过程。 MapControl 和PageLayoutControl分别封装了Carto 库中的Map 和PageLayout 对象。 ReaderControl 封装了Map 和PageLayout对象,并在使用该控件时提供了简化的API。
14、GeoAnalyst
GeoAnalyst 库包含支持核心空间分析功能的对象。这些功能在ArcGIS Spatial Analyst和ArcGIS 3DAnalyst™库中使用。开发者可以通过创建一个新的栅格操作类型来扩展该库。要求有ArcGIS Spatial Analyst 或3D Analyst 许可才能使用该库中的对象

15、3DAnalyst
3DAnalyst 库包含在三维场景中使用的对象,它们的工作方式类似于Carto 库中包含的对象在二维地图中工作。 Scene 对象是库中的主要对象之一,因为它与Map 对象类似,是数据的容器。 Camera 和Target 对象根据特征相对于观察者的位置,指定场景的视图。一个场景(scene)包含一个或多个图层;这些图层指定了场景中的数据和数据怎样绘制。
16、GlobeCore
GlobeCore 库包含与globe 数据一起工作的对象,工作方式类似于Carto 库中包含的对象在二维地图中工作。 Globe 对象是库中的主要对象之一,因为它与Map 对象类似,是数据的容器。 GlobeCamera 对象根据globe 相对于观察者的位置,指定了Globe 视图。 Globe 可以有一个或多个图层;这些图层指定了Globe 上的数据和数据怎样绘制。







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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值