ArcGIS Engine中的重点类库介绍

2024-05-31 20:58

本文主要是介绍ArcGIS Engine中的重点类库介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

System类库

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

SystemUI类库

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

Geometry类库

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

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

Display类库

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

Server类库

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

Output类库

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

GeoDatabase类库

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

GISClient类库

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

DataSourcesFile类库

DataSourcesFile类库包含用于基于文件数据源的GeoDatabase API实现。这些基于文件的数据源包括shapefilecoverageTINCADSDCStreetMapVPF。开发者不能扩展DtaSourcesFile类库。

DataSourcesGDB类库

DataSourcesGDB类库包含用于数据库数据源的GeoDatabase API实现。这些数据源包括MicrosoftAccessArcSDE支持的关系型数据库管理系统—IBMDB2InformixMicrosoftSQL ServerOracle。开发者不能扩展DataSourcesGDB类库。

DataSourcesOleDB类库

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

DataSourcesRaster类库

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

GeoDatabaseDistributed类库

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

Carto类库

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

不同的数据源通常有相应的图层负责数据在地图上的显示,矢量要素由FeatureLayer对象处理,栅格数据由RasterLayer对象处理,TIN数据由TinLayer对象处理,等等。必要的话,图层可以处理与之相关数据的所有绘图操作,但通常图层都是一个相关的Renderer对象。Renderer对象的属性控制着数据在地图中的显示方式。Renderers通常用Display类库中的符号来进行实际绘制,而Renderer只是将特定符号与待绘实体的属性相匹配。Map对象和PageLayout对象可以包含元素。元素用其几何图形定义其在地图或页面上的位置,用行为控制元素的显示。包括用于基本形状、文字标注和复杂标注等的元素。Carto类库还支持地图注释和动态标注。尽管开发者可以在其应用程序中直接使用MapPageLayout对象,但通常来说开发者更经常使用更高级的对象,如MapControlPageLayoutControlArcGIS应用程序。这些高级对象简化了一些任务,尽管它们也提供对更低级别的MapPageLayout对象的访问,允许开发者更好的控制对象。MapPagelayout对象并不是Carto类库中提供地图和页面绘制的仅有对象。MxdServerMapServer对象都支持地图和页面的绘制,但不是绘制到窗口中,而是直接绘制到文件中。开发者可以用MapDocument对象保存地图和地图文档(.mxd)中页面布局的状态,以便在ArcMapArcGIS控件中使用。Carto类库通常可以在许多方面进行扩展。自定义RendererLayer等都很普遍。自定义图层通常是向地图应用程序中加载自定义数据最简单的方法。

Location类库

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

NetworkAnalysis类库

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

Controls类库

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

GeoAnalyst类库

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

3DAnalyst类库

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

GlobeCore类库

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

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

SpatialAnalyst类库

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

这篇关于ArcGIS Engine中的重点类库介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1019032

相关文章

揭秘未来艺术:AI绘画工具全面介绍

📑前言 随着科技的飞速发展,人工智能(AI)已经逐渐渗透到我们生活的方方面面。在艺术创作领域,AI技术同样展现出了其独特的魅力。今天,我们就来一起探索这个神秘而引人入胜的领域,深入了解AI绘画工具的奥秘及其为艺术创作带来的革命性变革。 一、AI绘画工具的崛起 1.1 颠覆传统绘画模式 在过去,绘画是艺术家们通过手中的画笔,蘸取颜料,在画布上自由挥洒的创造性过程。然而,随着AI绘画工

20.Spring5注解介绍

1.配置组件 Configure Components 注解名称说明@Configuration把一个类作为一个loC容 器 ,它的某个方法头上如果注册7@Bean , 就会作为这个Spring容器中的Bean@ComponentScan在配置类上添加@ComponentScan注解。该注解默认会扫描该类所在的包下所有的配置类,相当于之前的 <context:component-scan>@Sc

C++标准模板库STL介绍

STL的六大组成部分 STL(Standard Template Library)是 C++ 标准库中的一个重要组成部分,提供了丰富的通用数据结构和算法,使得 C++ 编程变得更加高效和方便。STL 包括了 6 大类组件,分别是算法(Algorithm)、容器(Container)、空间分配器(Allocator)、迭代器(Iterator)、函数对象(Functor)、适配器(Adapter)

一二三应用开发平台应用开发示例(4)——视图类型介绍以及新增、修改、查看视图配置

调整上级属性类型 前面为了快速展示平台的低代码配置功能,将实体文件夹的数据模型上级属性的数据类型暂时配置为文本类型,现在我们调整下,将其数据类型调整为实体,如下图所示: 数据类型需要选择实体,并在实体选择框中选择自身“文件夹” 这时候,再点击生成代码,平台会报错,提示“实体【文件夹】未设置主参照视图”。这是因为文件夹选择的功能页面,同样是基于配置产生的,因为视图我们还没有配置,所以会报错。

49-1 内网渗透 - Bypass UAC介绍

一、Bypass UAC         用户账户控制(UAC)是Windows操作系统的一种安全机制,旨在防止未经授权的应用程序自动安装并防止非授权修改系统设置。它确保应用程序和任务通常在非管理员账户的安全上下文中运行,除非明确需要管理员权限,用户才会被提示确认。         对于非RID 500的管理员用户(除了内置的Administrator账户),当他们登录时,系统会为其分配两个访

okhttp3的详细介绍

这篇文章说下OkHttp的基本用法,是最新的3哦,如果你曾经在网上搜索OkHttp怎么使用发现有些类没有了可能是因为人家说的是2。首先说下OkHttp3是Java和Android都能用,Android还有一个著名网络库叫Volley,那个只有Android能用。导入自己到入jar包,别漏了okio:okhttp-3.3.0.jarokio-1.8.0.jarmaven方式:<dependen

Retrofit详细介绍

转载请标明出处:http://blog.csdn.net/xx326664162/article/details/51910837 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的收货! 一、Retrofit 是什么? Retrofit is a type-safe HTTP client for Android and java. Retrofit 是与 Web 服务器提

Retrofit介绍案例

Retrofit这东西我就不多做解释了,反正最近应用很广,基本都快和OkHttp一起成为安卓的事实网络访问标准框架了。   这么好的一个东西,官网文档实在是不算太好,说的不太清晰。按官网的经常会有“Could not locate ResponseBody converter for”问题。 反正折腾了一番,终于跑出来了一个例子。这里把正确的例子写出来,方便大家参考。 首先要注意

okclient2详细介绍

在 Java 程序中经常需要用到 HTTP 客户端来发送 HTTP 请求并对所得到的响应进行处理。比如屏幕抓取(screen scraping)程序通过 HTTP 客户端来访问网站并解析所得到的 HTTP 文档。在 Java 服务端程序中也可能需要使用 HTTP 客户端来与第三方 REST 服务进行集成。随着微服务(microservices)的流行,HTTP 成为不同服务之间的标准集成方式。H

Hbase特性介绍

1、什么是Hbase。 是一个高可靠性、高性能、列存储、可伸缩、实时读写的分布式数据库系统。 适合于存储非结构化数据,基于列的而不是基于行的模式 如图:Hadoop生态中HBase与其他部分的关系。 2、关系数据库已经流行很多年,并且Hadoop已经有了HDFS和MapReduce,为什么需要HBase? Hadoop可以很好地解决大规模数据的离线批量处理问题,但是,受限于Hadoo