1、粒度小,可以组合为复杂的功能
2、组件可以在运行时刻,在不被重新链接或编译应用程序的情况下被卸载或替换
二、ArcGIS Engine的体系结构
简单、独立于ArcObject编程环境,ARCObject需要桌面软件desktop的支持,理论上arcobject可以搭建成任何的arcgis产品,arcgis engine对arcobject的庞大架构进行了封装,使arcgis engine可以独立于desktop等桌面软件运行,只需要一个arcgis engine runtime即可。
功能层次:
基础服务:由核心arcobject构成,如要素几何体和显示
数据存取:栅格数据和矢量数据、包括强大的地理数据库
地图表达:包括创建和显示带有符号体系和标注功能的地图的arcobject;以及包括创建自定义应用程序的专题图功能的arcobject。
开发组件:用户接口控件和综合帮助系统
运行时选项:
ArcGIS Engine的类库:
System:最底层的类库。AoInitializer对象,提供给开发者初始化和注销ARCEngine。应用程序不能扩展此类,可以通过类库中包含的接口来扩展arcgis系统。
SystemUI:用户界面组件。可以在ae中进行扩展,可以利用接口来扩展UI组件。
Geometry:包括核心几何对象(点、线、多边形及其几何类型和定义)。
组成多边形、多义线的子要素:Segment、Path、Ring
Polyline、Polygon由一系列相连的片段组成,片段类型如CircularArc、Line、BezireCurve等,每个片段由起点、终点、以及定义两点之间弯曲度的元素组成。
所有的几何图形对象都支持Buffer、Clip等几何操作,几何子要素不能进行扩展。
Display:绘制符号体系,包括实际输出图像的主要显示对象、表示符号和颜色的对象
Server:包含用于获取到ArcGIS Server的连接的对象。
Output:包含了生成输出所必须的对象。
Geodatabase:包含所有与数据访问相关的定义的类型。Geodatabase类库提供了比ArcObject架构中更高级的数据源提供者实现的接口,可以通过扩展地理数据库以支持特定类型的数据对象。
GISClient:包含了操作远程GIS服务的对象,这些服务可以由ARCIMS或ArcGIS Server提供。
DataSourcesFile:包含了适用于地理数据库应用程序接口所支持的矢量数据格式的工作空间工厂和工作空间。开发者不能扩展DataSourceFile类库。
DataSourcesGDB:包含了适用于存储在RDBMS中的地理数据库所支持的矢量和栅格数据格式的工作空间工厂和工作空间。开发者不能扩展DataSourceFile类库。
DataSourcesOleDB:包含了Microsoft OLE DB数据源的GeoDatabase API实现。
DataSourcesRaster:包含了用于栅格数据源的GeoDatabaseAPI实现。
GeoDatabaseDistributed:包含了支持分布式地理数据库的访问。
Carto:支持地图的创建和显示,PageLayout对象是地图及其地图元素的容器。
地图元素:指北针、图例、比例尺等
Map对象包括地图上所有图层都有的属性,如空间坐标系、比例尺、图层操作,此对象可以加载各种类型的图层,不同类型的图层由相应的对象处理(FeatureLayer处理矢量数据,RasterLayer处理栅格数据,TinLayer处理TIN数据)
通常图层都有一个相关的Renderer对象,来控制数据在图层中的显示方式。Renderer通常用Display类库中的符号来进行绘制,Renderer只是将特定符号与待绘制实体属性相匹配。
Location:包含了与位置数据(路径事件、地理编码的位置)操作相关的对象,开发者可以创建自己的地理编码对象。
NetworkAnalysis:该库支持应用网络的创建和分析,提供了用于在地理数据库中加载网络数据的对象,并提供对象用于分析加载到地理数据库中的网络。
Controls:包含了用于应用软件开发的控制器,包括通过控制器来使用命令和工具。
GeoAnalyst:包含了核心空间分析的操作。
3Danalyst:包含了用于进行数据3D分析预计支持3D数据显示的对象。
Scene对象时3Danalyst类库中的主要对象之一,是数据的容器。
Camera和Target对象规定在考虑要素位置与观察者关系时场景如何浏览。
GlobeCore:包含了用于进行球体数据分析以及支持球体数据显示的对象。
SpatialAnalyst:包含了用于进行栅格与矢量空间分析的对象。需要ArcGIS空间分析扩展模块的许可,或者arcengine运行时空间分析选项的许可。