• ArcEngine的类库 [ArcEnine接口]


    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://mxf-gis.blogbus.com/logs/29640186.html

    理解ArcGIS Engine类库结构、它们的依赖关系和基本功能将有助于初学者了解ArcGIS Engine的组件,建立一个对ArcGIS Engine总体结构的认识,这也是学习AE的入口,在使用帮助时,建立的类库框架结构能方便我们快速查找感兴趣的目标。

     

      下面根据依赖关系的顺序对一些常用类库进行讨论。模型图中在每个类库框的右上角显示了其序列号。例如,作为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。除了这些顶级实体外,就是作为多义线和多边形的组成部分的几何图形,是组成几何图形的子要素。它们是Segment、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可以访问ServerObjectManager对象。用这个对象,开发人员可以操作ServerContext对象,以处理运行于服务器上的ArcObjects。开发人员还可以用GISClient类库与ArcGIS Server进行交互。

      Output类库

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

      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。开发者不能扩展DataSourcesFile类库。

      DataSourcesGDB类库

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

      DataSourcesOleDB类库

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

      DataSourcesRaster类库

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

      GeoDatabaseDistributed类库

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

      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扩展模块许可,或者ArcGIS Engine运行时空间分析或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位置与观察者关系时globe如何浏览。一个globe有一个和多个图层,这些图层规定了globe中包含的数据及这些数据如何显示。

      GlobeCore类库中有一个开发控件及与其一起使用的命令和工具。该开发控件可以与Controls类库中的对象协同使用。开发者很少扩展GlobeCore类库。为使用这个类库中的对象,需要ArcGIS 3D Analyst扩展模块许可或ArcGIS Engine运行时3D分析选项许可。

      SpatialAnalyst类库

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

      此外还有ADF、Utility、ArcWeb、DataSourcesNetCDF、GeoDatabaseExtentions、Animation、Maplex、Geoprocessing、NetworkAnalyst(不同于NetworkAnalysis)、Schematic、TrackingAnalyst类库等。

      抄了一天才写这么多,不检查了,有什么不对的地方,欢迎高手点评,要是有错别字等输入错误,大家帮忙指正,以便更多人正确参考。

      以下是英文的帮助,供参考。

     

    ArcObjects library reference

    The libraries of ArcObjects available to ArcGIS Engine developers are shared with ArcGIS Desktop and ArcGIS Server.
    Each ArcObjects library is provided as a .NET assembly. As such, the rest of this document will refer to them as assemblies to match .NET conventions.
    The assemblies are listed in the table below in dependency order. Use the links to navigate to a more detailed overview of each assembly.
    Knowing the dependencies of each assembly on other assemblies is important, since it affects the way in which developers interact with the assemblies as they develop software. Understanding the dependencies also helps when deploying your developments.
    Shared assemblies
    Deployment notes
    The System assembly is the lowest level library in the ArcGIS architecture. The assembly contains components that expose services used by the other libraries composing ArcGIS.  
    The SystemUI assembly mainly defined types used by user interface components in the ArcGIS system. Interfaces such as ICommand and ITool are defined in this assembly. Implementation of these types is normally done in one or more libraries, higher in the architecture.  
    The ADF assembly provides the .NET base classes, component category unique IDs (CATIDs), and utility classes that were previously delivered in the Utility assembly that has been deprecated for the 9.2 release.
     
    The Utility assembly has been deprecated from 9.2 forward. Most of the functionality that previously existed here has been moved into the new ADF assembly. 
    You can still deploy applications that use the Utility classes and any projects referencing them will continue to operate as normal; however, be aware that the Utility classes are now deprecated and may be removed entirely in a future release.
    The Geometry assembly contains the core geometry objects, such as Point, Polygon, Polyline, etc. along with Geometry types and definitions. The Geometry assembly also defines and implements the spatial reference objects for both projected and geographic coordinate systems.  
    The Display assembly contains the components that support drawing symbology to an output device. Screen displays, symbols, colors and feedback objects, along with their supporting objects are all defined in the assembly.  
    The Server assembly contains the objects used to obtain a connection to the ArcGIS Server. The connection is managed via the objects in this library, but objects from other libraries can be created by using functions on the server object.  
    The Output assembly contains the objects required generate output, most commonly from Maps or PageLayouts, to both printers and plotters or exporting to files.  
    The GeoDatabase assembly contains types for all the definitions relating to data access. Features, tables, networks, TINs are all defined in the GeoDatabase assembly. The implementation of many of the types is contained in the respective DataSource assembly. The usage of some objects in this library requires the Geodatabase Update extension for ArcGIS Engine Runtime.
    The GISClient assembly contains objects for working with remote GIS Services. These services can be provided by either ArcIMS or the ArcGIS Server.  
    The ArcWeb assembly enables connections to ArcWeb services.  
    The DataSourcesFile assembly contains the workspace factories and workspaces for vector data formats supported by the GeoDatabase API.  
    The DataSourcesGDB assembly contains the workspace factories and workspaces for vector and raster data formats supported by the GeoDatabase that are stored within an RDBMS.  
    The DataSourcesOleDB assembly provides workspaces for working with OleDB based data sources.  
    The DataSourcesRaster assembly contains the workspace factories and workspaces for file based raster data formats.  
    The DataSourcesNetCDF assembly contains objects used for accessing netCDF files and for creating rasters, features, or tables from netCDF variables in ArcGIS.  
    The GeoDatabaseDistributed assembly contains the objects required to perform, checkout / checkin to support distributed GeoDatabase.  
    The GeoDatabaseExtensions assembly contains objects to aid in the creation, management, and use of terrain datasets and cadastral fabrics.
    Note: At the 9.2 release, the cadastral fabrics related objects are not yet fully implemented and we recommend that developers do not utilize them until the Cadastral Analyst extension is released.
     
    The Carto assembly contains the objects for displaying data. The PageLayout and Map objects are in this library along map layers, renders for all the supported data types. This assembly also contains the MxdServer and MapServer objects used by servers to display map data in a client server environment.  
    The NetworkAnalysis assembly supports the creation and analysis of utility networks.  
    The Location assembly contains objects related to working with location data. This can either be route events or geocoding locations.  
    The GeoAnalyst assembly contains core spatial analysis operations that are used by both the SpatialAnalyst and 3DAnalyst extensions. Requires a 3D or Spatial extension for ArcGIS Engine Runtime.
    The Animation assembly contains objects to work with animations in Map, Scene and Globe. In ArcGIS 9.2, with ArcGIS Desktop, the animation functionality is available in the ArcMap, ArcScene, and ArcGlobe applications. However, when working with ArcGIS Engine, animation functionality is not available for the Map control. It is only available for the Scene and Globe controls, which are supported with the 3D Analyst extension.  
    The Maplex assembly contains the objects for labeling features using the Maplex Extension. Other Maplex objects can be found in the Carto assembly. Requires a Maplex extension for ArcGIS Engine Runtime.
    The Geoprocessing assembly implements the Geoprocessing framework in addition to the base set of Geoprocessing tools. The tools available depend on the licenses available to you. See the individual tools for specific license information. Some geoprocessing tools and functionality require an extension license. See the documentation for each tool for specifics.
    The NetworkAnalyst assembly provides objects for working with network datasets. These objects allow you to perform network analysis in your applications. Requires a Network Analyst extension for ArcGIS Engine Runtime.
    The Schematic assembly implements the non user-interface functionality of the Schematics extension. It handles the core objects of the ArcGIS Schematics extension, used to manage schematic data and processes. The Schematics extension supports the analysis, display, and manipulation of schematic data within ArcGIS. Requires a Schematic extension for ArcGIS Engine Runtime.
    The SpatialAnalyst assembly contains objects for performing spatial analyst on raster and vector data. Requires a Spatial extension for ArcGIS Engine Runtime.
    The 3DAnalyst assembly contains objects for performing 3D analysis of data, along with the support for displaying 3D data. Requires a 3D extension for ArcGIS Engine Runtime.
    The GlobeCore assembly contains objects for performing analysis of globe data, along with the support for displaying globe data. A control is available in this assembly for developers to use. Requires a 3D extension for ArcGIS Engine Runtime.
    The Controls assembly contains controls for application development including commands and tools for use with the controls. Applications that utilize the GlobeControl or SceneControl require a 3D extension for ArcGIS Engine Runtime.
    The TrackingAnalyst assembly implements the non-user interface functionality of the Tracking Analyst extension to ArcMap. The Tracking Analyst extension supports the display, analysis, and manipulation of temporal data within ArcGIS.
  • 相关阅读:
    tomcat安装配置
    Java的jdk环境变量配置
    我为什么在这里写博客
    函数
    java的内部类解析
    常用集合
    java数据类型总结
    Java总结基础知识
    线程的状态和方法
    java对象序列化的理解
  • 原文地址:https://www.cnblogs.com/wangzihao/p/1832420.html
Copyright © 2020-2023  润新知