ArcEngine二次开发入门介绍.ppt_第1页
ArcEngine二次开发入门介绍.ppt_第2页
ArcEngine二次开发入门介绍.ppt_第3页
ArcEngine二次开发入门介绍.ppt_第4页
ArcEngine二次开发入门介绍.ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ArcEngine开发入门介绍 1 内容简介 ArcGIS产品体系ArcObject简介ArcEngine概况简单的ArcEngine开发实例开发资源 2 ArcGIS产品体系 3 ArcObject简介 AO是ESRI公司ArcGIS家族中应用程序的开发平台它是基于Microsoft COM技术所构建的一系列COM组件集 AO是随ArcGIS产品一同发布的 要使用AO必须购买ArcGISDesktop 才能利用AO提供的组件对象来进行应用开发 在ArcGIS9中发布了一个新的产品 ArcGISEngine ArcGISEngine基于AO 并且实现了更好的封装 是一个独立的产品 4 AO的功能 通过AO你可完成以下GIS功能 空间数据的显示 查询检索 编辑和分析 创建各种专题图和统计报表 高级的制图和输出功能 空间数据管理和维护 5 AO编程基础 COM COM是ComponentObjectModel的缩写它不仅定义了组件程序之间进行交互的标准 而且也提供了组件程序运行所需要的环境 COM本身要实现一个称为COM库 COMlibrary 的API 它提供诸如客户对组件的查询 以及组件的注册 反注册等一系列服务 一般来说 COM库由操作系统加以实现 我们不必关心其实现的细节 COM主要应用于MicrosoftWindows操作系统平台上 COM通常的发布形式是 以win32动态链接库 DLL 或可执行文件 EXE 的形式发布 6 COM的目标和特性 建立在二进制代码级上的可重用性 语言无关性 只要其能生成符合COM规范即可 对使用COM对象的客户程序而言的进程透明性 7 庞大的COM组件集合 ArcGIS9 2与9 3间的类型 接口 COM类 枚举 结构 变化列表 备注 不包括类型库中隐藏或受限制的类型 8 理解对象模型图 OMD OMD是基于OMT ObjectModelingTechnique 的表示方法 先来看看OMD能帮我们做些什么 1 该类支持哪些接口 2 完成任务需要哪些对象 3 如何使用该类的对象 4 是否可以直接实例化类 5 接口有哪些方法和属性 6 是否有其它类也支持该接口 7 对象间的关系 9 在哪里可以找到ArcGISOMD图表 Start Programs ArcGIS DeveloperHelp简单的 详细的类图PDFfiles软件安装的目录中一般在安装目录 DeveloperKit Diagrams下电子书籍光盘中 10 解析对象模型图 OMD中的类有 抽象类 AbstractClass 不能用于创建对象 但可以用来指定子类 通过类型继承 组件类 CoClass 可以直接创建对象 普通类 Class 不能直接创建对象 但可以作为另一个类的属性或者通过另一个类的实例化来创建对象 在OMD中的关系类型主要有 类型继承 Typeinheritance 创建 Instantiation 组成 Composition 对象间的主次关系关联 Associations A和B为普通类对象 C为组件类对象 D为一普通类 如下面代码 A B writeA A C writeA A NewD X普通类不能通过New方法产生A的生命周期是由产生它的对象B和C控制的 11 ArcObjectsUML关系符号 12 ArcObjectsUML关系符号例子 继承组成用来创建对应关系1 N联合 蛋 鸟 翅膀 羽毛 2 Abstract Class Class Class 小鸡 CoClass 巢 CoClass 13 类和他们相应的对象 ArcObjects对象例子 MxDocument Map Layer FeatureLayer Application 14 不能创建或实例化抽象类永远不能有实例为子类定义了泛化 general 子类集成了抽象类的接口抽象类的OMD符号 2维阴影矩形 抽象类 AbstractClass 15 可以创建 使用New关键字IMappMap newMapClass 实例化 从其它对象获得IMappMap pMxDocument FocusMap 可创建类的OMD符号 3维阴影矩形 组件类 CoClass 16 类 Class 不能直接创建的类不能使用New关键字来创建从其它对象处获得实例IRowpNewRow pTable CreateRow 实例化类的OMD符号 3维没有阴影的矩形 生成 17 属性和方法的符号 属性哑铃形状的图标方法 18 属性传值 大部分ArcObjects的属性属性保存了一个对象的值或者一个拷贝不需要使用Set关键字属性传引用 一些ArcObjects的属性属性保存了一个对象的引用必须使用Set关键字如果引用对象发生了变化 对象的属性将同步受到影响 设置属性 pLayer Name PortMoresby NoSetkeyword SetpLayer FeatureClass pMoresbyData MustuseSet 19 接口棒棒糖类型的图标 查找接口 这些接口也是有效的 但是详细的属性和方法必须在其它地方浏览 e g ObjectBrowser 该接口被本类使用 所有的属性和方法都列表在类图中 继承接口是有效的 20 FeatureLayeronMapLayerOMD 概念上 这是一个对象模型事实上 被分别在几张图表里存放虫洞表现了图表与图表间的连接关系 ArcObjectsOMD图表上的虫洞 ElementonArcMapOMD 虫洞 21 例子 MxDocument Map layer 从当前的文档中取得聚焦的Map activedataframe MxDocument可以包含一些Maps 从一个Map中取得图层对象图层对象有多种的类型 IMxDocumentpMxDoc LoadMxdDoc c Temp test mxd IMappMap pMxDoc FocusMap ILayerpLayer pMap get Layer 1 IspLayeraFeatureLayer if pLayerisIFeatureLayer MessageBox Show Yes it safeaturelayer MxDocument Map FeatureLayer Layer Others 22 ArcEngine概况 ArcGIS9新的开发产品从核心的ArcObjects组件构建创建独立应用或者集成到第三方系统 23 24 ArcEngine功能 读取所有支持的ESRI数据格式 包括geodatabase地图制作 创建和编辑MXD ArcGIS级别的绘图查询和分析地理编码简单编辑 25 AO与AE的联系与区别 联系 1 ArcEngine包括核心ArcObjects的功能 是对AO中的大部分接口 类等进行封装所构成的嵌入式组件 2 AE中的组件接口 方法 属性与AO是相同的 区别 1 开发环境 ArcObjects必须依赖ArcGISDesktop桌面平台 即购买安装了ArcGISDesktop的同时 安装ArcObjects 才能利用AO进行开发 ArcEngine是独立的嵌入式组件 不依赖ArcGISDesktop桌面平台 直接安装ArcEngineRuntime和DeveloperKit后 即可利用其在不同开发语言环境下开发 2 功能 AO的功能更强大 AE的功能相对弱些 AE不具备AO的少部分功能 ArcEngine具有简洁 灵活 易用 可移植性强等的特点 26 ArcGISEngine扩展模块 GeodatabaseUpdateSpatial3DWithGlobalVisualizationEngine开发包包括了高级的Engine扩展模块 27 ArcGISEngine组成 两个产品 Engine开发包是创建自定义的GIS和制图应用的工具包Engine运行时是为了运行自定义的Engine应用的可分发的ArcObjects 28 ArcGISEngine开发包 组件 APIs 工具的集合 开发人员可以用来创建高级的GIS应用组件 Engine库 制图 绘制 选择 编辑等 Control库 地图控件 布局空间 工具条等APIs COM NET JAVA C 工具 ArcGISDeveloperKit Documentation DeveloperUtilities 29 ArcGISEngine类库体系结构 30 System类库 System类库是ArcGIS体系结构中最底层的类库 System类库包含构成ArcGIS的其他类库提供服务的组件 System类库中定义了大量开发者可以实现的接口 开发者不能扩展这个类库 但可以通过实现这个类库中包含的接口来扩展ArcGIS系统 SystemUI类库 SystemUI类库包含用户界面组件接口定义 这些用户界面组件可以在ArcGISEngine中进行扩展 包含ICommand ITool和IToolControl接口 开发人员可以通过使用这些对象简化用户界面的开发 Geometry类库 Geometry类库包含了核心的几何形体对象 如点 线 面等 即在AO中的要素和图形元素的几何形体都可以在这个组件库中寻找到 除此之外 这个库还包含了空间参考对象 包括GeographicCoordinateSystem 地理坐标系统 ProjectedCoordinateSystem 投影坐标系统 GeoTransformations 地理变换 对象等 Display类库 Display类库包含用于显示GIS数据的对象 它包括Display对象 Color对象 ColorRamp对象 DisplayFeedback对象 RubberBand对象 Tracker对象 Symbol对象 31 Output类库 Output类库包含了AO中的所有输出对象 打印输出对象Printer和转换输出对象Export 前者可以将视图上的地图通过打印机进行输出 而后者包含的丰富对象 可以将地图转换为多种格式的矢量或者栅格形式的数据 如EMF PDF JPEG TIFF等 Framework类库 arcgis程序存在一个内在的框架 所有的ao组件对象都在这个框架中扮演了不同的角色 它的协作可以完成arcgis提供的gis功能 这个框架中的某些核心对象被放置在Framework库中 Framework库提供了arcgis程序的某些核心对象和可视化组件对象 这个库中的一些对象可以让arcgis程序扩展他们的定制环境 以改变arcgis程序的外观界面 同时 这个库也提供了诸如ComPropertySheet ModelessFram和MouseCursor等对象 它们是一些对话框 用于在arcgis上实现用户的交互 Carto类库 Carto库包含了为数据显示服务的各种组件对象 如 MapElements 包含Map对象的框架容器 Map和PageLayout 地理数据和图形元素显示的两个主要对象 MapSurrouds 一个与Map对象相关联的用于修饰地图的对象集 MapGrids 地图网格对象 用于设置地图的经纬网格或数字网格 起到修饰地图的作用 Renderers 着色对象 用于制作专题地图 Labeling Annotation Dimensions 标注对象 用于修饰在地图上产生文字标记以显示信息 Layers 图层对象 用于传递地理数据到Map或PageLayout对象中去显示 MapServer ArcIMSLayers GPSSupport等 32 CartoUI类库 CartUI库中的对象也是为了数据显示服务的 在ao中所有以UI结尾的库中的对象都具有可视化的界面 CartoUI库中包含诸如IdentifyDiaLog SQLQueryDialog QueryWizard等对象 这些对象都以一个对话框的形式出现 Controls类库 Controls库包含了在程序开发中可以使用的可视化组件对象 如MapControl PageLayoutControl等 Controls库分以下7个子库 MapControl PageLayoutControl TocControl ToolbarControl ControlCommands ReaderControl LicenseeControl DisplayUI类库 DisplayUI库提供了具有可视化界面的对象用于辅助图形显示 它包括propertypages 属性页 对象和StyleGalleryClass对象 前者可以用于设置Symbol对象 后者则可以用于管理和获取Style和Symbol 符号 对象 GeoDatabase类库 GeoDatabase库中包含的COM对象是用于操作地理数据库的 这个库中的对象包括核心地理数据对象 如Workspace 工作空间 DataSet 数据集 等 它也包含了几何网路 拓扑 TIN数据 版本对象 数据转换等多方面的丰富内容 33 DataSourcesFile类库 地理数据保存在不同形式的文件中 DataSourceFile库中的对象正是起到打开文件格式地理数据的作用 DataSourcesGDB类库 DataSourcesGDB库中的COM对象用于打开数据源为Access数据或任何ArcSEDE支持的大型关系数据库的地理数据 这个库的对象不能被扩展 DataSourceGDB库中的主要对象是工作空间工厂 一个工作空间工厂可以让用户在设置了正确的连接属性后打开一个工作空间 而工作空间就代表了一个数据库 其中保存着一个或多个数据集对象 这些数据集包括表 要素类 关系类等 库中主要的对象AccessWorkspaceFactory 用于打开一个基于Access数据库的PersonalGeoDatabase ScratchWorkspaceFactory 用于产生一个临时的工作空间存放选择集对象 SdeW

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论