ArcEngine二次开发入门介绍课件

上传人:风*** 文档编号:240744126 上传时间:2024-05-04 格式:PPT 页数:45 大小:5.82MB
返回 下载 相关 举报
ArcEngine二次开发入门介绍课件_第1页
第1页 / 共45页
ArcEngine二次开发入门介绍课件_第2页
第2页 / 共45页
ArcEngine二次开发入门介绍课件_第3页
第3页 / 共45页
点击查看更多>>
资源描述
ArcEngine开发入门介绍内容简介vArcGIS产品体系vArcObject简介vArcEngine概况v简单的ArcEngine开发实例v开发资源ArcGIS产品体系ArcObject简介vAO是ESRI公司ArcGIS家族中应用程序的开发平台v它是基于Microsoft COM技术所构建的一系列COM组件集。vAO是随ArcGIS产品一同发布的,要使用AO必须购买ArcGIS Desktop,才能利用AO提供的组件对象来进行应用开发。v在ArcGIS9 中发布了一个新的产品:ArcGIS Engine,ArcGIS Engine 基于AO,并且实现了更好的封装,是一个独立的产品。AO的功能通过AO你可完成以下GIS功能:v空间数据的显示、查询检索、编辑和分析;v创建各种专题图和统计报表;v高级的制图和输出功能;v空间数据管理和维护;vAO编程基础-COMvCOM是Component Object Model的缩写v它不仅定义了组件程序之间进行交互的标准,而且也提供了组件程序运行所需要的环境。COM本身要实现一个称为COM库(COM library)的API,它提供诸如客户对组件的查询,以及组件的注册/反注册等一系列服务。v一般来说,COM库由操作系统加以实现,我们不必关心其实现的细节,COM主要应用于Microsoft Windows操作系统平台上。vCOM通常的发布形式是:以win32动态链接库(DLL)或可执行文件(EXE)的形式发布。COM的目标和特性v建立在二进制代码级上的可重用性;v语言无关性,只要其能生成符合COM规范即可;v对使用COM对象的客户程序而言的进程透明性;庞大的COM组件集合EnumStructInterfaceCOMTotalArcGIS 9.21106 404824 3847 9817 ArcGIS 9.3 1194515206 4049 10500 ArcGIS 9.2 ArcGIS 9.2 与与 9.3 9.3 间的类型(接口、间的类型(接口、COMCOM类、枚举、结构)变化列表类、枚举、结构)变化列表备注:不包括类型库中隐藏或受限制的类型.理解对象模型图(OMD)vOMD是基于OMT(Object Modeling Technique)的表示方法,先来看看OMD能帮我们做些什么?v1 该类支持哪些接口;2 完成任务需要哪些对象;3 如何使用该类的对象;4 是否可以直接实例化类;5 接口有哪些方法和属性;6 是否有其它类也支持该接口;7 对象间的关系。在哪里可以找到ArcGIS OMD图表vStart Programs ArcGIS Developer Help简单的、详细的类图vPDF files软件安装的目录中 一般在 安装目录DeveloperKitDiagrams下电子书籍光盘中解析对象模型图OMD中的类有:v抽象类(Abstract Class):不能用于创建对象,但可以用来指定子类。(通过类型继承)。v组件类(CoClass):可以直接创建对象。v普通类(Class):不能直接创建对象,但可以作为另一个类的属性或者通过另一个类的实例化来创建对象。在OMD中的关系类型主要有:v类型继承(Type inheritance)v创建(Instantiation)v组成(Composition):对象间的主次关系v关联(Associations)A和B为普通类对象,C为组件类对象,D为一普通类,如下面代码:A=B.writeA()A=C.writeA()A=New D()X普通类不能通过New方法产生A的生命周期是由产生它的对象B和C控制的ArcObjects UML关系符号组件类抽象类实例化类继承关联组成ArcObjects UML关系符号例子v继承v组成v用来创建v对应关系 1:Nv联合*_蛋蛋鸟鸟翅膀翅膀羽毛羽毛2 2AbstractAbstractClassClassClassClassClassClass小鸡小鸡CoClassCoClass巢巢CoClassCoClass*v类和他们相应的对象ArcObjects 对象例子MxDocumentMxDocumentMapMapLayerLayer*FeatureLayerFeatureLayerApplicationApplicationv不能创建或实例化抽象类永远不能有实例v为子类定义了泛化(general)子类集成了抽象类的接口v抽象类的OMD 符号:2维阴影矩形抽象类(Abstract Class)v可以创建:使用 New关键字 IMap pMap=new MapClass()v实例化:从其它对象获得IMap pMap=pMxDocument.FocusMap()v可创建类的OMD符号:3维阴影矩形组件类(CoClass)类(Class)v不能直接创建的类不能使用New关键字来创建v从其它对象处获得实例 IRow pNewRow=pTable.CreateRow()IRow pNewRow=pTable.CreateRow()v实例化类的OMD符号:3维没有阴影的矩形生生 成成属性和方法的符号v属性哑铃形状的图标v方法Property Get(read)Property Set(write)v属性传值:大部分 ArcObjects的属性属性保存了一个对象的值或者一个拷贝不需要使用Set关键字v属性传引用:一些 ArcObjects的属性属性保存了一个对象的引用必须使用Set关键字如果引用对象发生了变化,对象的属性将同步受到影响设置属性pLayer.Name=Port Moresby pLayer.Name=Port Moresby No No SetSet keyword keywordSetSet pLayer.FeatureClass=pMoresbyData pLayer.FeatureClass=pMoresbyData MustMust use use SetSet!v接口棒棒糖类型的图标()查找接口这些接口也是有效的。但是详细的这些接口也是有效的。但是详细的属性和方法必须在其它地方浏览。属性和方法必须在其它地方浏览。(e.g.,Object Browser).(e.g.,Object Browser).该接口被本类使用该接口被本类使用.所有的属性和方法都列表在类图中所有的属性和方法都列表在类图中.继承接口是有效的继承接口是有效的FeatureLayer on Map FeatureLayer on Map Layer OMDLayer OMDv概念上,这是一个对象模型v事实上,被分别在几张图表里存放虫洞表现了图表与图表间的连接关系ArcObjects OMD图表上的虫洞Element on ArcMap Element on ArcMap OMDOMD虫洞虫洞例子:MxDocument Map layerv从当前的文档中取得聚焦的Map(active data frame)MxDocument 可以包含一些 Maps(*)v从一个 Map中取得图层对象图层对象有多种的类型()IMxDocument pMxDoc=LoadMxdDoc(c:Temptest.mxd);IMap pMap=pMxDoc.FocusMap;ILayer pLayer=pMap.get_Layer(1);/Is pLayer a FeatureLayer?if(pLayer is IFeatureLayer)MessageBox.Show(Yes!,its a feature layer);MxDocumentMxDocumentMapMapFeatureLayerFeatureLayerLayerLayer*OthersOthers23可编辑ArcEngine概况vArcGIS9 新的开发产品v从核心的ArcObjects组件构建v创建独立应用或者集成到第三方系统ArcEngine功能v读取所有支持的ESRI数据格式,包括geodatabasev地图制作(创建和编辑MXD)vArcGIS级别的绘图v查询和分析v地理编码v简单编辑vAO与AE的联系与区别v联系:1.ArcEngine包括核心ArcObjects的功能,是对AO中的大部分接口、类等进行封装所构成的嵌入式组件。2.AE中的组件接口、方法、属性与AO是相同的。v区别:1.开发环境:ArcObjects必须依赖ArcGIS Desktop桌面平台,即购买安装了ArcGISDesktop的同时,安装ArcObjects,才能利用AO进行开发;ArcEngine是独立的嵌入式组件,不依赖ArcGISDesktop桌面平台,直接安装ArcEngine Runtime和DeveloperKit后,即可利用其在不同开发语言环境下开发。2.功能:AO的功能更强大,AE的功能相对弱些,AE不具备AO的少部分功能。vArcEngine具有简洁、灵活、易用、可移植性强等的特点。ArcGIS Engine 扩展模块vGeodatabase UpdatevSpatial v3D With Global Visualizationv Engine开发包包括了高级的Engine扩展模块ArcGIS Engine 组成两个产品:vEngine开发包是创建自定义的GIS和制图应用的工具包vEngine运行时是为了运行自定义的Engine应用的可分发的ArcObjects.ArcGIS Engine 开发包v组件,APIs,工具的集合,开发人员可以用来创建高级的GIS应用v组件 -Engine库:制图,绘制,选择,编辑等 -Control库:地图控件,布局空间,工具条等vAPIs -COM,.NET,JAVA,C+v工具 -ArcGIS Developer Kit -Documentation -Developer UtilitiesArcGIS Engine ArcGIS Engine 类库体系结构vSystemSystem类库类库:System类库是ArcGIS体系结构中最底层的类库。System类库包含构成ArcGIS的其他类库提供服务的组件。System类库中定义了大量开发者可以实现的接口。开发者不能扩展这个类库,但可以通过实现这个类库中包含的接口来扩展ArcGIS系统。vSystemUISystemUI类库类库 :SystemUI类库包含用户界面组件接口定义,这些用户界面组件可以在ArcGIS Engine中进行扩展。包含ICommand、ITool和IToolControl接口。开发人员可以通过使用这些对象简化用户界面的开发。vGeometryGeometry类库:类库:Geometry类库包含了核心的几何形体对象,如点、线、面等,即在AO中的要素和图形元素的几何形体都可以在这个组件库中寻找到。除此之外,这个库还包含了空间参考对象,包括GeographicCoordinateSystem(地理坐标系统)、ProjectedCoordinateSystem(投影坐标系统)GeoTransformations(地理变换)对象等。vDisplayDisplay类库:类库:Display类库包含用于显示GIS数据的对象。它包括Display对象、Color对象、ColorRamp对象、DisplayFeedback对象、RubberBand对象、Tracker对象、Symbol对象。vOutputOutput类库类库:Output类库包含了AO中的所有输出对象:打印输出对象Printer和转换输出对象Export。前者可以将视图上的地图通过打印机进行输出,而后者包含的丰富对象,可以将地图转换为多种格式的矢量或者栅格形式的数据,如EMF、PDF、JPEG、TIFF等。vFrameworkFramework类库类库 :arcgis程序存在一个内在的框架,所有的ao组件对象都在这个框架中扮演了不同的角色,它的协作可以完成arcgis提供的gis功能。这个框架中的某些核心对象被放置在Framework 库中。Framework库提供了arcgis程序的某些核心对象和可视化组件对象。这个库中的一些对象可以让arcgis程序扩展他们的定制环境,以改变arcgis程序的外观界面。同时,这个库也提供了诸如ComPropertySheet、ModelessFram和MouseCursor等对象,它们是一些对话框,用于在arcgis上实现用户的交互。vCartoCarto类库类库:Carto库包含了为数据显示服务的各种组件对象,如:MapElements(包含Map对象的框架容器);Map和PageLayout(地理数据和图形元素显示的两个主要对象);MapSurrouds(一个与Map对象相关联的用于修饰地图的对象集);Map Grids(地图网格对象,用于设置地图的经纬网格或数字网格,起到修饰地图的作用);Renderers(着色对象,用于制作专题地图),Labeling,Annotation,Dimensions(标注对象;用于修饰在地图上产生文字标记以显示信息),Layers(图层对象,用于传递地理数据到Map或PageLayout对象中去显示),MapServer,ArcIMS Layers、GPS Support等。vCartoUICartoUI类库类库 :CartUI库中的对象也是为了数据显示服务的,在ao中所有以UI结尾的库中的对象都具有可视化的界面。CartoUI库中包含诸如IdentifyDiaLog、SQLQueryDialog、QueryWizard等对象,这些对象都以一个对话框的形式出现。vControlsControls类库类库:Controls库包含了在程序开发中可以使用的可视化组件对象,如MapControl、PageLayoutControl等,Controls库分以下7个子库:MapControl,PageLayoutControl,TocControl,ToolbarControl,ControlCommands,ReaderControl,LicenseeControl。vDisplayUIDisplayUI类库类库:DisplayUI库提供了具有可视化界面的对象用于辅助图形显示,它包括property pages(属性页)对象和StyleGalleryClass对象,前者可以用于设置Symbol对象,后者则可以用于管理和获取Style和Symbol(符号)对象。vGeoDatabaseGeoDatabase类库:类库:GeoDatabase库中包含的COM对象是用于操作地理数据库的。这个库中的对象包括核心地理数据对象,如Workspace(工作空间)、DataSet(数据集)等;它也包含了几何网路、拓扑、TIN数据、版本对象、数据转换等多方面的丰富内容。vDataSourcesFileDataSourcesFile类库类库:地理数据保存在不同形式的文件中,DataSourceFile库中的对象正是起到打开文件格式地理数据的作用。vDataSourcesGDBDataSourcesGDB类库类库:DataSourcesGDB库中的COM对象用于打开数据源为Access数据或任何ArcSEDE支持的大型关系数据库的地理数据。这个库的对象不能被扩展。DataSourceGDB库中的主要对象是工作空间工厂,一个工作空间工厂可以让用户在设置了正确的连接属性后打开一个工作空间,而工作空间就代表了一个数据库,其中保存着一个或多个数据集对象。这些数据集包括表、要素类、关系类等。库中主要的对象AccessWorkspaceFactory,用于打开一个基于Access数据库的Personal GeoDatabase;ScratchWorkspaceFactory,用于产生一个临时的工作空间存放选择集对象;SdeWorkspaceFactroy,用于打开SDE数据库。vDataSourcesRasterDataSourcesRaster类库类库:DataSourcesRaster库中的COM对象用于获取保存在多种数据源中的栅格数据,这些数据源包括文件系统、个人数据库或者企业地理数据库(SDE数据库)。这个库还提供了用于栅格数据转换等功能的对象。开发控件vMapControlvPageLayoutControlvTocControlvToolbarControlvReaderControlvSceneControlvGlobeControl命令和工具提供了超过100个命令和工具ArcGIS Engine的分发和部署分发应用程序v用Engine开发包开发的应用程序可以运行在:-ArcGIS Desktop 9 许可 -ArcGIS Engine运行时许可v应用程序开发人员可以控制运行程序的许可创建第一个ArcGIS Engine桌面应用程序开发资源vOMD图vArcGIS Developer Help其他资源vSamplesvUser forums:ESRI:http:/ 或 ESRI中国:http:/bbs.esrichina- ESRIvESRI Developer Network http:/ -基于COM接口编程基础 -如何阅读OMD3.ArcEngine基础知识 -ArcEngine的产品及环境 -ArcGIS Engine 类库4.创建第一个ArcGIS Engine桌面应用程序 5.有用的开发资源45可编辑
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!