ArcGIS Engine类库介绍
牟乃夏ArcEngine教程:第1章 ArcGIS Engine编程基

1.1 ArcGIS Engine概述
ArcGIS Engine开发工具包的组成
1.1 ArcGIS Engine概述
• ArcGIS Engine运行时
➢ArcGIS Engine运行时是能够保证基于ArcGIS Engine开发的软件正常运行的 ArcObjects组件产品,是运行由ArcGIS Engine开发的应用程序的基础软件 环境。
• 2.CoClass类 • CoClass类,即可创建类。该类可以通过new关键字直接实例化对
象,它的实例对象不依赖其他对象的存在而存在,其生存周期也 不由其它的对象管理。如QueryFilter是一个组件类,可以用new关 键字来创建一个对象。
1.4 对象模型图(OMD图)
• 3. Class类 • Class类,即可实例化类。该类不能直接使用new关键字创建对
1.2 ArcGIS Engine开发资源
• 1.帮助文档
• 【开始】→【所有程序】→【ArcGIS】 →【Developer Help】→【ArcObjects Help for .NET】,即可启动ArcObjects 的帮助系统。
• 2.自带示例
• 在安装完ArcObjects SDK后,在 “..\Program Files\ArcGIS\DeveloperKit10.0\Samples” 文件夹下,包含有许多自带的代码示 例工程,这些都是开发人员学习 ArcGIS Engine开发很好的资源。
1.4 对象模型图(OMD图)
• 2)组合关系 • 组合关系指其中一个类对象是另外一个类对象的组成部分,由组
成对象控制被组成对象的整个生命周期,在OMD图中用实心菱形 表示。
Layer是Map的一部分,当Map消失的时候,Layer也 将不复存在。在ArcGIS Engine中,地图文档由多个地 图组成,工具条控制对象由多个工具项组成,这些
Arc Engine开发个人手册

第一章Arc Engine 介绍第二章Arc Engine结构一、Arc Engine包含的主要库文件1、System库ArcGIS结构中最底层的库,包含为其它库提供服务的组件。
2、SystemUI包含为用户界面组件(在ArcEngine中可以进行扩展)定义的接口,包括:ICommand, ITool, 和ItoolControl接口。
3、Geometry处理存储在要素类或其它图形元素中的几何图形要素。
我们经常遇到的基本几何目标有Point, MultiPoint, Polyline 和Polygon4、Display包含显示地理数据的像,如:symbols,colors 等。
我们通常通过类似Map或PageLayout 对像提供的视图(view)来访问Display5、Server包含用来连接到ArcGIS Servers的对像。
我们可以通过GISServerConnection对象访问ArcGIS Server。
6、Output用来将图形输出到设备上,如printers、plotters和hardcopy formats(如:EMF,JPG,BMP等)。
可扩展7、GeoDatabase为geodatabase提供API函数。
可以扩展以支持特定数据格式(Features, Classes, etcetera),可通过PlugInDataSource对象加入自定义的矢量数据源。
Geodatabase支持的本地数据类型无法扩展8、GISClient用来接受ArcIMS和ArcGIS Server.提供的网络服务。
9、DataSourcesFile包含以文件为数据源的(shapefile,coverage, TIN, CAD, SDC, StreetMap, and VPF)部分GeoDatabase API函数的实现。
10、DataSourcesGDB包含以数据库为数据源(Microsoft Access、ArcSDE—IBM DB2, Informix, Microsoft SQL Server, and Oracle)部分GeoDatabase API函数的实现。
第十三章 ArcGIS Engine类库与控件简介

ArcGIS Engine控件
ArcGIS Engine控件
ArcGIS Engine控件
•封装ArcObjects
• 每个ArcGIS控件都封装了粗颗粒度的 ArcObjects,同时又提供对细颗粒度的 ArcObjects的访问,简化了开发过程。 • 如PageLayoutControl封装了 PageLayout对象,PageLayout对象至少 包含一个Map对象,而Map对象又可以包含 一个或者多个图层对象。 • ArcGIS控件是开发程序的起点,通过他们 可以直接快速进入开发的对象模型。
11、DataSourcesOleDB类库
• 包含用于Microsoft OLE DB数据源的
Geodatabase API实现。
• 只能用在Microsoft Windows上。 • 这些数据源包括支持数据提供者和文本文件工 作空间。
* OLE DB (Object Linking and Embedding Database,对象链接嵌入
• 包含用于显示GIS数据的对象。
• 包含符号、颜色等用来控制显示的对象 。 • 包含交互操作时提供给用户显示回馈的 对象,如MoveEnvelopeFeedback。
5、Server类库
• 用来连接并操作ArcGIS Server。 • 访问ArcGIS Server的
ServerObjectsManager对象。
ArcGIS Engine开发控件
9、DataSourcesFile类库
• 包含用于基于文件数据源的 GeoDatabase API实现。 • 基于文件的数据源包括:Shapefile、 coverage、TIN、CAD等。 • 开发者不能扩展DataSourcesFile。
ArcGIS Engine轻松入门

ArcGIS Engine 轻松入门
Desktop 的功能, 例如添加一些新的工具, 定制用户界面, 增加新的扩展模块等。 ArcGIS Server 实现了一套标准的 Web GIS 服务(例如:制图,访问数据, 地理编码等) ,支持企业级应用。ArcGIS Server SDK 使得开发人员可以建立集 中式的 GIS 服务器来实现 GIS 功能,发布基于 Web 的 GIS 应用,执行分布式 GIS 运算等。 2004 年,美国 ESRI 发布 ArcGIS Engine,ArcGIS Engine 开发包提供了一 系列可以在 ArcGIS Desktop 框架之外使用的 GIS 组件,ArcGIS Engine 的出现 对于需要使用 ArcObjects 的开发人员来说是个福音,因为 ArcGIS Engine 发布 之前,基于 ArcObjects 的开发只能在庞大的 ArcGIS Desktop 框架下进行。
1.3 ArcGIS Engine 的 功 能
开发人员可以使用 ArcGIS Engine 的开发包实现如下功能: 分图层显示专题图,例如:道路,河流,行政边界等。 浏览、缩放地图 查看地图上特征要素的信息 在地图上检索、查找特征要素 在地图上显示文本注记 在地图上叠加卫星影像或航摄影像 在地图上绘制点、线、面几何体 通过矩形、圆形或多边形来选中地图上的要素 通过 SQL 语句来查找要素 使用各种渲染方式来绘制地图图层,例如:分级渲染,柱状图渲染,点 密度渲染,依比例尺渲染等。 动态绘制实时的数据,例如实时的 GPS 坐标点。 转换空间数据的坐标系。 ArcGIS Engine 的授权文件 (*.ecp) 控制用户可以使用哪些功能。 ArcGIS Engine 的功能是否可以使用需要根据用户自己的授权文件而定。 编辑空间数据。ArcGIS Engine 开发包使得用户可以创建、修改或者删除在 Geodatabase 或者 shapefile 中的矢量要素。 标准的 ArcGIS Engine Runtime 可 以 编 辑 Shapefile 和 简单 的 Personal Geodatabase 要 素, 如果 需要 编 辑 Enterprise Geodatabase 数据,需要使用 Geodatabase Update 扩展。 空间建模和分析。ArcGIS Engine Spatial 扩展模型提供了强大的空间建模 和空间分析功能。用户可以创建、查询、分析栅格数据,执行整合的栅格和矢量 分析,从栅格数据中提取各种信息。
ArcEngine类库介绍

1ArcEngine类库ESRI.ArcGIS.esriSystem; //包括IArray,ISet,IFile,等一些基础底层接口和类ESRI.ArcGIS.SystemUI; //包括ICommand,ITool,等一些用户界面的接口和类ESRI.ArcGIS.Geometry; //包括点,线,面,路径,环,等核心几何对象3D,地理坐标,投影坐标等ESRI.ArcGIS.Display; //包括ISymbol,IColor,IDraw,等一些用来在地图上显示或绘制的接口和类ESRI.ArcGIS.DisplayUI; //提供一些可视化的界面去设置display里的东西ESRI.ArcGIS.Controls; //MapControl,TOC,Toolbar,Licence,PageLa yout等核心可视化组件ESRI.ArcGIS.ArcMapUI; //提供一些ArcMap自带的可视化界面的接口,实现在ArcmapESRI.ArcGIS.Framework; //提供一些程序核心对象,如IApplication,IDocument,等ESRI.ArcGIS.Carto; //包括一些数据显示的接口和类,如ILegend,IMap,ILayer,等ESRI.ArcGIS.Geodatabase;//提供操作地理数据库的接口,如IWorkspace,IDataset,IFeature,IFileds,ITin等ESRI.ArcGIS.DataSourcesFile;//提供打开矢量数据的接口,如ICoverage,ICadTransformation等ESRI.ArcGIS.DataSourcesGDB;//提供打开Access及一些SDE支持的RDBMS接口ESRI.ArcGIS.DataSourcesOleDB;//提供打开一些支持oledb的数据库的接口ESRI.ArcGIS.DataSourcesRaster;//提供打开一些栅格数据及转换数据的接口ESRI.ArcGIS.OutPut //提供一些打印、转换输出接口,如IBmpExporter================以上为一些常用到的接口除了ESRI.ArcGIS.SystemUI外其余以UI结尾的namespace均属AO的范畴1.1System类库System类库是ArcGIS体系结构中最底层的类库。
第三章 ArcGIS Engine基础

3.1.4 使用 ESRI Object 浏览器
列表类、接口、属性和方法
• 位置:<ArcGIS installation folder>\ArcGIS\Developer Kit\tools\EOBrowser.exe
3.2 理解对象模型图(OMD)
3.2.1 ArcObject 的对象模型图
不能用于创建一个新的对象,即不能用new关键字来产生对象 OMD中:用没有阴影的3D矩形表示普通类 可以从其他对象中获取对象实例 IRow pNewRow; pNewRow = pTable.CreateRow();
生
成
组件类 (CoClass)
可以直接创建,用new关键字
IMap pMap; pMap = new Map();
COM的优越性
使得编程技术难度和工作量降低,降低开发周期和 成本
使得软件的复用性得到提高
语言独立,可以使用任何一种语言编写COM组件
• 语句——面向过程——面向对象
学习ArcGIS Engine需要了解的COM内容
COM不是接口,也不是类,它是一种二进制级别的组件通信 标准 符合COM标准的对象称为COM对象,COM对象是实现了很多接 口的对象,它可以以DLL或者EXE文件形式存在
COM是创建类的一个标准 COM类可以在不同的工程中重用
不依赖于具体的开发语言
所有的 ArcObjects 都是 COM 类 ArcObjects基于COM技术构建
对象连接与嵌入技术 (OLE) OLE DB技术 ActiveX 技术是 COM 技术的一种封装 DCOM 和 COM+
ArcGIS Engine10.0轻松入门级教程(1)——必备基础知识
ArcGIS Engine10.0轻松入门级教程(1)——必备基础知识分类:ArcEngine开发2012-06-13 22:56 2173人阅读评论(3) 收藏举报目录(?)[-]1. ArcGIS、ArcObjects和ArcGIS Engine简介1. ArcGIS简介2. ArcObject简介3. ArcSIS Engine简介1. ArcGIS Engine Software Developer Kit2. ArcGIS Engine Runtime3. ArcGIS Engine的功能4. net平台5. 接口编程思想6. QI六月的某一天,骄阳似火,夜幕已悄悄降临,坐在电脑前回想自己的大学四年时光,或痛心疾首,或微微憨笑,感概万千,在GIS专业学习了4年,有很多收获,也有很多遗憾,幸而考上了研究生可以继续深造。
于是乎心里的雄心一下被激发了,总结自己的所学知识,打算重新开始,把ArcGIS Engine写一本入门级的教程,为初学者少做弯路,也为自己总结下知识,更为打发着无聊时光。
以上为序,语无伦次自娱自乐!PS:本教程虽为入门及教程,但也要求你有入门级的知识,如果你是哲学专业的,那我也无力回天啊!还有本教程素材全部来源于互联网,版权未知,要我说感谢的话:感谢CCTV,感谢MTV……就此打住。
1 ArcGIS、ArcObjects和ArcGIS Engine简介1.1ArcGIS简介ArcGIS提供了一个可伸缩的框架,可以为独立用户或者多用户,既可以在桌面端也可以在服务器端提供GIS。
ArcGIS 9是用来构建一个完整GIS应用的GIS软件产品集成。
它是基于共享的GIS软件组件——ArcObjects。
ArcGIS 9由以下四部分组成:1)ArcGIS Desktop——高级GIS应用的集成2)ArcGIS Engine——根据应用程序接口来构建基本应用的嵌入式GIS组件库3)ArcGIS Server——在企业级或者网络框架下构建服务器端GIS应用的平台,用来构建Web服务和Web应用4)ArcIMS——通过公开的因特网协议来发布地图、数据和元数据的GIS Web服务器每一个GIS框架同样包含ArcSDE网关,这是在关系数据库(RDBMS)上组织地理数据的接口。
ArcGIS Engine基础实战
Engine 库 – 制图、绘制、选择、编辑等 Control 库 – 地图控件、布局控件、工具条等
APIs
COM、.NET、Java、C++
工具
文档、开发工具
ArcGIS Engine功能框架
基本服务 数据访问 地图分析
应用层需要用到的 ArcObjects 核心对象 几何图形的操作与显示 地理数据集,矢量,栅格数据
IQueryFilter、 IRaster、IRasterCursor、IRasterDataset、IRelationship、
IReplica、 ISelectionSet、ISurface、ITin、ITopology、 IVersion、
主要类库介绍—GeodataBase
DataSourcesFile
包含了为支持的矢量数据格式提供的工作空间工厂和工作空间。
ICoverageFeatureClass、ICadDrawingLayers、 IGPLayer、 ArcInfoWorkspaceFactory、CadWorkspaceFactory、SDCWorkspaceFactory、 ShapefileWorkspaceFactory、TinWorkspaceFactory、VpfWorkspaceFactory
PageLayoutControl、SceneControl、Snapping、Symbology、
TOCControl、ToolbarControl、ToolbarItem、、、
主要类库介绍—Display
Display
显示库包含了支持在输出设备上显示图形的组件,屏幕显示, 符号,颜色等都在这个库中定义。 BalloonCallout、ScreenDisplay 绘图跟踪器:EngineRotateTracker、EnvelopeTracker、 字体、颜色: RgbColor、CmykColor 点、线、面符号样式:简单符号、图片符号、专题符号 制图表达:RepresentationRule、 符号库:ServerStyleGallery、ServerStyleGalleryItem
ArcGIS_Engine课件讲述
3、ArcGIS 与 ArcObjects
ArcGIS是构建在ArcObjects组 件库之上。
ESRI 使用 ArcObjects来开发软
件和应用程序。 开发者使用ArcObjects去客户化
软件与创建自己的应用程序。 ArcObjects 是 ArcGIS 的核心。
目录
1 ArcGIS体系结构 2 ArcGIS Engine是什么 3 ArcGIS Engine的主要功能 4 ArcGIS Engine类库 5 ArcGIS Engine控件 6 接口的概念 7 对象模型图的阅读 8 什么是地理数据库 9 ArcGIS Engine开发环境与流程
ArcGIS Engine类库:4、Display
❖ 用于控制地图显示。 ❖ 包含用于显示GIS数据的对象。 ❖ 包含符号、颜色等用来控制显示的对象。 ❖ 包含交互操作时提供给用户显示回馈的对象,如
MoveEnvelopeFeedback。
ArcGIS Engine类库:5、Server
❖ 用来连接并操作ArcGIS Server。 ❖ 访问ArcGIS Server的ServerObjectsManager对
Engine Developer Kit
.NET C++ VB Java
ArcObjects
Server Developer Kit
Java ADF
.NET ADF
C++
Customization
JavaScript
XML
HTML/DHTML .NET
Services
JSP ActiveX (ASP) Java ColdFusion
目录
1 ArcGIS体系结构 2 ArcGIS Engine是什么 3 ArcGIS Engine的主要功能 4 ArcGIS Engine类库 5 ArcGIS Engine控件 6 接口的概念 7 对象模型图的阅读 8 什么是地理数据库 9 ArcGIS Engine开发环境与流程
ArcGIS_Engine类库介绍
下面将概述ArcGISEngine中的各个类库。
本节中的各个模型图展示了ArcGISEngine的类库架构。
理解类库结构、它们的依赖关系和基本功能将有助于开发人员了解ArcGISEngine的组件。
下面根据依赖关系的顺序对类库进行讨论。
模型图中在每个类库框的右上角显示了其序列号。
例如,作为ArcGIS体系结构基础的System类库,其编号为1,而编号为7的GeoDatabase类库依赖于模型图中其前面的6个类库—SyStem、SystemUI、Geometry、Display、Server和Output。
System类库System类库是ArcGIS体系结构中最底层的类库。
System类库包含给构成ArcGIS的其他类库提供服务的组件。
System类库中定义了大量开发者可以实现的接口。
AoInitializer对象就是在System类库中定义的,所有的开发者必须使用这个对象来初始化ArcGISEngine和解除ArcGISEngine的初始化。
开发者不能扩展这个类库,但可以通过实现这个类库中包含的接口来扩展ArcGIS系统。
SystemUI类库SystemUI类库包含用户界面组件接口定义,这些用户界面组件可以在ArcGIS Engine中进行扩展。
包含ICommand、ITool和IToolControl接口。
开发者用这些接口来扩展UI组件,ArcGIS Engine开发人员自己的组件将使用这些UI组件。
这个类库中包含的对象是一些实用工具对象,开发人员可以通过使用这些对象简化用户界面的开发。
开发者不能扩展这个类库,但可以通过实现这个类库中包含的接口来扩展ArcGIS系统。
Geometry类库Geometry类库处理存储在要素类中的要素几何图形或形状或其他图形元素。
大多数用户会遇到的基本几何图形对象为Point、MultiPoint、Polyline和Polygon。
除了这些顶级实体外,就是作为多义线和多边形的组成部分的几何图形,是组成几何图形的子要素。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
下面将概述ArcGISEngine中的各个类库。
本节中的各个模型图展示了ArcGISEngine的类库架构。
理解类库结构、它们的依赖关系和基本功能将有助于开发人员了解ArcGISEngine的组件。
下面根据依赖关系的顺序对类库进行讨论。
模型图中在每个类库框的右上角显示了其序列号。
例如,作为ArcGIS体系结构基础的System类库,其编号为1,而编号为7的GeoDatabase类库依赖于模型图中其前面的6个类库—SyStem、SystemUI、Geometry、Display、Server和Output。
System类库System类库是ArcGIS体系结构中最底层的类库。
System类库包含给构成ArcGIS的其他类库提供服务的组件。
System类库中定义了大量开发者可以实现的接口。
AoInitializer对象就是在System类库中定义的,所有的开发者必须使用这个对象来初始化ArcGISEngine和解除ArcGISEngine的初始化。
开发者不能扩展这个类库,但可以通过实现这个类库中包含的接口来扩展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的片段组成。
一个片段由两个不同的点,即起始点和结束点,以及一个定义这两点之间弯曲度的元素类型组成。
片段的类型有Circular Arc、Line、Elliptic Arc和Bezier Curve。
所有几何图形对象都可以有与其顶点相关联的Z、M和IDs。
所有的基本几何图形对象都支持诸如Buffer,Clip等几何操作。
几何子要素不可以由开发者扩展。
GIS中的实体指的是现实世界中的要素;现实世界中要素的位置由一个带有空间参考的几何图形来定义。
空间参考对象,包括投影坐标和地理坐标系统,都包括在Geometry类库中。
开发者可以通过添加新的空间参考和投影来扩展空间参考系统。
Display类库Display类库包含用于显示GIS数据的对象。
除了负责实际输出图像的主要显示对象外,这个类库还包含表示符号和颜色的对象,它们用来控制在显示上绘制时实体的属性。
Display类库还包含在与显示交互时提供给用户可视化反馈的对象。
开发者与Display最常用的交互方式就是类似于Map对象或PageLayout对象提供的视图。
Display类库的所有部分都能进行扩展;通常扩展的对象包括符号、颜色和显示反馈。
Server类库Server类库包含允许用户连接并操作ArcGIS Server的对象。
开发人员用GIS Server Connection 对象来访问ArcGIS Server。
通过GIS Server Connection可以访问Server Objects Mananger对象。
用这个对象,开发人员可以操作Server Context对象,以处理运行于服务器上的ArcObjects。
开发人员还可以用GIS Client类库与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服务目录操作ArcGISServer对象的通用编程模型。
在ArcGISServer上运行的ArcObjects组件不能通过GISClient接口来访问。
要直接获得访问在服务器上运行的ArcObjects,开发人员应使用Server类库中的功能。
DataSourcesFile类库DataSourcesFile类库包含用于基于文件数据源的GeoDatabaseAPI实现。
这些基于文件的数据源包括shapefile、coverage、TIN、CAD、SDC、StreetMap和VPF。
开发者不能扩展DtaSourcesFile 类库。
DataSourcesGDB类库DataSourcesGDB类库包含用于数据库数据源的GeoDatabaseAPI实现。
这些数据源包括MicrosoftAccess和ArcSDE支持的关系型数据库管理系统—IBM、DB2、Informix、MicrosoftSQLServer和Oracle。
开发者不能扩展DataSourcesGDB类库。
DataSourcesOleDB类库DataSourcesOleDB类库包含用于MicrosoftOLEDB数据源的GeoDatabaseAPI实现。
此类库只能用在MicrosoftWindows操作系统上。
这些数据源包括支持数据提供者和文本文件工作空间的所有OLEDB。
开发者不能扩展DataSourcesOleDB类库。
DataSourcesRaster类库DataSourcesRaste类库包含用于栅格数据源的GeoDatabaseAPI实现。
这些数据源包括ArcSDE 支持的关系型数据库管理系统—IBM、DB2、Informix、MicrosoftSQLServer和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功能的应用程序。
ArcGISControls通过封装ArcObjects并提供粗粒度的API简化了开发过程。