ArcGIS-Engine培训教程课件_第1页
ArcGIS-Engine培训教程课件_第2页
ArcGIS-Engine培训教程课件_第3页
ArcGIS-Engine培训教程课件_第4页
ArcGIS-Engine培训教程课件_第5页
已阅读5页,还剩135页未读 继续免费阅读

下载本文档

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

文档简介

目录1ArcGIS体系结构2 ArcGISEngine是什么3ArcGISEngine的主要功能4ArcGISEngine类库5ArcGISEngine控件6接口的概念7对象模型图的阅读8什么是地理数据库9ArcGISEngine开发环境与流程10ArcGISEngine许可与部署11开发综合实例ArcGIS_Engine培训教程ArcGIS整体架构CustomizationArcGISDesktopArcGISServerArcIMSArcGISMobileArcPadArcGISEngine桌面GIS嵌入式GIS服务器GIS移动GISGeodatabaseDBMSXMLArcSDEArcEditorArcViewArcInfoEngineDeveloperKitServer

DeveloperKitCustomizationDesktopDeveloperKit.NETC++VBJava.NETVC++VB.NETADFJavaADFC++ArcObjectsXML+VBScriptArcPadApplicationBuilderJavaScriptHTML/DHTMLXML.NETServicesJSPJavaActiveX(ASP)ColdFusionArcGIS_Engine培训教程1、ArcGIS的客户端ArcGIS的客户端产品包括ArcView、ArcEditor、ArcInfo三个客户端都有统一风格的桌面应用:ArcCatalog、ArcMap和ArcToolbox。

ArcCatalog:ArcCatalog是一个集成化的空间数据管理器,主要用于空间数据浏览,Geodatabase的结构定义、数据的导入导出、网络模型的生成、对象关系和规则的定义、元数据的定义和编辑修改等。ArcCatalog支持大量的数据格式,包括:ESRIshapefiles,Geodatabases,ArcSDElayers,INFOtables,Image,Grid,Tin,CAD文件,动态分段事件以及其它ESRI数据类型和文件等。ArcGIS_Engine培训教程ArcMap是集空间数据显示、编辑、查询检索、统计、报表生成、空间分析和高级制图等众多功能于一体的桌面应用平台。ArcMap提供面向对象的类似CAD的空间数据编辑工具,全面支持空间数据的可视化交互操作。ArcMap提供了所见即所得的符号编辑器,令使用者可以随心所欲地生成任意复杂的点线面符号。ArcMap进一步拓展了ESRI强大的空间数据直接读取能力,多种格式的数据无需进行转换或利用中间交换格式即可动态地直接使用。ArcMap支持的空间数据格式包括:ArcInfocoverages,ESRIshapefiles,ArcSDElayers,DXFandDWG,DGN,大量的图像格式,GRID、TIN,等等。ArcMap还支持空间数据的动态投影(on-the-flyprojection)。1、ArcGIS的客户端ArcGIS_Engine培训教程ArcToolbox是一个用于空间数据格式转换、叠加处理、缓冲区生成、坐标转换等的集成化“工具箱”。ArcToolbox以树形结构方式组织了120多个不同的空间数据处理工具,并且都是以菜单驱动的方式提供出来,这为我们以一种确定的、轻松的方式去完成哪怕是很复杂的工作提供了前所未有的方便。1、ArcGIS的客户端ArcGIS_Engine培训教程2、ArcGIS的服务器端ArcIMS用户的空间数据和应用可以通过ArcIMS在Intranet/Internet环境中进行发布和共享。ArcIMS提供用户在服务器端可以以影像方式或矢量数据流方式进行数据发布。客户端用户通过工业标准的通用浏览器即可对ArcIMS服务站点进行访问和交互操作。ArcIMS支持包括Servlet、ColdFusion、ASP等多种WebServer端技术,同时开发了有望成为未来Internet环境中GIS通用语言的ArcXML,为空间数据跨厂商跨平台的广泛交流和共享打下了坚实的基础。ArcGIS_Engine培训教程ArcSDEArcSDE是ESRI的空间数据库引擎,用于对海量空间数据及其属性数据的管理和驱动,为并发访问的客户端提供快速、安全的数据服务。ArcSDE支持工业标准的DBMS平台(如:ORACLE、SQLServer、DB2、Informix等),同时引入了其独有的异步缓冲机制和协同操作机制,使得空间数据服务的响应效率得到提高,真正起到了“引擎”的作用,而并不仅仅是提供一种空间数据存储方式。另外,ArcSDE具有丰富的客户端可供用户选用,如:ArcInfo、ArcView、ArcIMS、MapObjects、ArcExplorer等。同时,还提供了开放的API编程接口,供用户或开发商开发自己的客户端应用或产品。2、ArcGIS的服务器端ArcGIS_Engine培训教程4、ArcGIS与ArcObjectsArcGIS是构建在ArcObjects组件库之上。ESRI

使用ArcObjects来开发软件和应用程序。开发者使用ArcObjects去客户化软件与创建自己的应用程序。ArcObjects是ArcGIS的核心。ArcGIS_Engine培训教程5、ArcGIS软件体系结构产品共享ArcObjects组件库和底层功能ArcGISEngine包含了核心的功能ArcGISDesktopArcGISEngineArcGISServerArcGIS_Engine培训教程用户界面/客户化数据管理数据模型连接/通信DBMS:SQLObject-Components:COM,EJBWindows/Browser:VB,C++,JavaXML,TCIP/IP,HTTP由于遵循了主流的标准,信息能根据标准来交互,ArcGIS是一个开放的平台。ArcGIS_Engine培训教程目录1ArcGIS体系结构2 ArcGISEngine是什么3ArcGISEngine的主要功能4ArcGISEngine类库5ArcGISEngine控件6接口的概念7对象模型图的阅读8什么是地理数据库9ArcGISEngine开发环境与流程10ArcGISEngine许可与部署11开发综合实例ArcGIS_Engine培训教程ArcGISEngine产品ArcGISEngine包含了两个产品:—ArcGISEngineRuntime是运行所有ArcGISEngine应用程序所必须的软件最终用户需要安装可以进行不同的运行时选项选择—ArcGISEngineDeveloperKit开发者使用的包含了所有开发库和开发资源可以进行所有的选项开发两个产品都通过软件许可文件授权ArcGIS_Engine培训教程ArcGISEngineDeveloperKit产品用来创建独立、嵌入式的桌面应用程序包含构建ArcGISEngine应用程序所需的许可构建在ArcObjects基础之上不包含ArcMap,ArcCatalog,ArcToolbox,ArcScene等应用程序框架运行在桌面上(Windows,Unix&Linux)提供多种开发APIsC++,.Net,Java,COM4种APIs使用了相同的对象包括了构建定制ArcGISEngine独立应用的所有功能ArcGIS_Engine培训教程ArcGISEngineDeveloperKit产品不是最终用户的应用产品是面向开发人员的工具包开发工具包包含对象/控件文档帮助示例代码ArcGIS_Engine培训教程ArcGISEngineRuntime产品是基于ArcGISEngine应用的运行时可分发安装跨平台Windows,UNIX&Linux没有ArcGIS桌面应用框架或对话框需要许可授权通过代码或应用工具配置ArcGIS_Engine培训教程ArcGISEngineRuntime产品ArcGISEngine运行时包含:标准EngineRuntimeEngine扩展企业GeoDatabase编辑更新要素和编辑方案空间分析3D分析StreetMapUSAArcGIS_Engine培训教程标准Engine功能地图浏览地图制作数据查询数据分析所有的开发控件

—MapControl,PageLayout,Toolbar,TOC,ArcReader对所有矢量和栅格数据源的读权限对Shapefile和pGDB的写权限读/写MXD文件ArcGIS_Engine培训教程目录1ArcGIS体系结构2 ArcGISEngine是什么3ArcGISEngine的主要功能4ArcGISEngine类库5ArcGISEngine控件6接口的概念7对象模型图的阅读8什么是地理数据库9ArcGISEngine开发环境与流程10ArcGISEngine许可与部署11开发综合实例ArcGIS_Engine培训教程ArcEngine产品结构ArcEngine是开发人员用于建立自定义应用程序的嵌入式GIS组件的完整类库。包含以下五个部分:基本服务:由GIS核心ArcObjects构成。几乎所有的GIS应用程序都需要,如几何体和显示。数据存取:对许多栅格和矢量格式的数据进行存取,包括GeoDatabase。地图表达:创建和显示带有符号、标注的地图以及专题地图的ArcObjects对象。开发组件:快速应用开发的高级用户接口控件和综合帮助系统。运行时选项:与标准功能或其他高级功能一起部署的部件。ArcGIS_Engine培训教程标准ArcGISEngine开发组件标准的ArcGISEngine开发组件包含:—

数据和地图的显示(MapControl&TOC)—跟踪形状和显示绘制(Map)—定制工具和命令(Toolbar)—地图布局和打印(PageLayout)—访问底层的ArcObjectsArcGIS_Engine培训教程ArcGISEngine扩展模块GeoDatabaseUpdata3D分析空间分析ArcGIS_Engine培训教程GeoDatabaseUpdata扩展提供创建和更新多用户企业级地理数据库的功能。版本管理、离线编辑提供了拓扑、子类和几何网络等地理数据库行为的程序实现。释放相应的ArcObjects的功能。ArcGIS_Engine培训教程空间分析扩展创建、查询和分析基于像元的栅格数据坡度计算坡向计算用数字高程模型生成等高线……ArcGIS_Engine培训教程3D分析扩展实现数据的三维可视化提供SceneControl和GlobeControl创建表面和分析表面的多层3D数据把3D功能嵌入到应用系统中。ArcGIS_Engine培训教程小结:ArcGISEngine的功能图层显示地图漫游和缩放识别地图上的要素显示字段值的文本标注显示航空相片或卫星影像绘制描述性文本用线、框、区域、多边形和圆选择要素选择与某些要素的距离在一定范围的要素用结构化查询语言表达式查找和选择要素定制地图的专题显示方式动态显示实时或时间序列数据转换地图的坐标系统在要素几何形状上执行几何操作以,创建缓冲区、计算差异、发现交叉、合并和求异等。(几何运算)处理要素形状或者旋转地图创建和更新地理要素及其属性地图制图输出3D显示、空间分析……ArcGIS_Engine培训教程目录1ArcGIS体系结构2 ArcGISEngine是什么3ArcGISEngine的主要功能4ArcGISEngine类库5ArcGISEngine控件6接口的概念7对象模型图的阅读8什么是地理数据库9ArcGISEngine开发环境与流程10ArcGISEngine许可与部署11开发综合实例ArcGIS_Engine培训教程ArcGISEngine类库图ArcGIS_Engine培训教程ArcGISEngine类库:1、SystemSystem类库是ArcGIS系统结构中最底层的类库。System类库包含了构成为ArcGIS的其他类库提供服务的组件。System类库中定义了大量开发者可以实现的接口,如AoInitializer对象就是在System类库中定义的,所有开发者必须使用这个对象来初始化ArcGISEngine。ArcGIS_Engine培训教程ArcGISEngine类库:2、SystemUI包含用户界面组件接口定义。如:Icommand、Itool和IToolControl接口。开发者使用这些接口来扩展UI组件。包含的一些使用工具对象,通过使用这些对象来简化用户界面的开发,如Icommand和Itool这样的接口就在这里定义。ArcGIS_Engine培训教程ArcGISEngine类库:3、Geometry处理存储在要素类中的要素形状。如:Point、MultiPoint、Polyline、Polygon等。存储构成几何要素的子要素。如:Segement、Path、Ring等。存储几何要素的空间参考对象。包括:投影坐标和地理坐标系统等。ArcGIS_Engine培训教程ArcGISEngine类库:4、Display用于控制地图显示。包含用于显示GIS数据的对象。包含符号、颜色等用来控制显示的对象。包含交互操作时提供给用户显示回馈的对象,如MoveEnvelopeFeedback。ArcGIS_Engine培训教程ArcGISEngine类库:5、Server用来连接并操作ArcGISServer。访问ArcGISServer的ServerObjectsManager对象。操作ArcGISServer的ServerContext对象。ArcGIS_Engine培训教程ArcGISEngine类库:6、Output用来控制地图的输出用户创建图形输出到打印机或者绘图仪等设备。输出成JPG、BMP、增强图元文件等格式。ArcGIS_Engine培训教程ArcGISEngine类库:6、GeoDatabase为ArcGIS支持的所有数据源提供了一个统一编程模型。定义了许多由ArcObjects架构中更高级的数据源提供者实现的接口。开发者可以扩展地理数据库,以支持特定类型的数据对象。该类库还支持PlugInDataSource对象添加的自定义矢量数据源。ArcGIS_Engine培训教程ArcGISEngine类库:7、GISClient允许开发者使用Web服务。可以连接到ArcIMS。支持以无状态方式或者通过Web目录操作ArcGISServer对象的编程模型。ArcGIS_Engine培训教程ArcGISEngine类库:8、DataSourcesFile包含用于基于文件数据源的GeoDatabaseAPI实现。基于文件的数据源包括:shapefile、coverage、TIN、CAD、SDC、StreetMap和VPF。开发者不能扩展DataSourcesFile。ArcGIS_Engine培训教程ArcGISEngine类库:9、DataSourceGDB包含用于数据库数据源的GeoDatabaseAPI实现。数据源包括:Access和ArcSDE支持的关系型数据库管理系统,如:DB2、Informix、SQLServer、Oracle。开发者不能扩展该类库。ArcGIS_Engine培训教程ArcGISEngine类库:10、DataSourcesOleDB包含用户MicrosoftOLEDB数据源的GeodatabaseAPI实现。只能用在MicrosoftWindows上。这些数据源包括支持数据提供者和文本文件工作空间的所有OLEDB。ArcGIS_Engine培训教程ArcGISEngine类库:11、DataSourcesRaster包含用于栅格数据源的GeoDatabaseAPI实现。这些数据源包括ArcSDE支持的关系型数据库管理系统:DB2、Informix、SQLServer、Oracle,以及支持RDO栅格文件格式。ArcGIS_Engine培训教程ArcGISEngine类库:12、Carto包含操作2D地图的对象。支持2D地图的创建和显示。提供Map和PageLayout等基础对象。提供MapDocument对象来操作地图文档。ArcGIS_Engine培训教程ArcGISEngine类库:13、NetworkAnaliysis提供用于在地理数据库中加载和分析网络数据的对象。开发者可以扩展NetworkAnaliysis类库,以便支持自定义的网络追踪。该类库的目的在于操作公共网络:供气管线、供电网络等。ArcGIS_Engine培训教程ArcGISEngine类库:14、Controls用来构建或扩展具有ArcGIS功能的应用程序。提供一系列的开发控件,通过封装ArcObjects,提供粗颗粒度的API来简化开发过程。提供HookHelper对象,简化命令操作的创建。ArcGIS_Engine培训教程ArcGISEngine类库:15、GeoAnalyst包含支持核心空间分析功能的对象。这些功能用在SpatialAnalyst和3DAnalyst两个类库中。开发者可以通过创建新类型的栅格操作来扩展GeoAnalyst类库。ArcGIS_Engine培训教程ArcGISEngine类库:16、3DAnalyst包含操作3D场景的对象。主要对象为:Scene。运行时需要3D许可选项ArcGIS_Engine培训教程ArcGISEngine类库:17、SpatialAnalyst包含在栅格数据和矢量数据上执行空间分析的对象。通常是直接使用给类库中的对象,不做扩展。运行时需要空间分析选项许可。ArcGIS_Engine培训教程ArcGISEngine类库:18、GlobeCore包含操作Globe数据的对象。主要对象为:Globe。运行时需要3D许可选项。ArcGIS_Engine培训教程目录1ArcGIS体系结构2 ArcGISEngine是什么3ArcGISEngine的主要功能4ArcGISEngine类库5ArcGISEngine控件6接口的概念7对象模型图的阅读8什么是地理数据库9ArcGISEngine开发环境与流程10ArcGISEngine许可与部署11开发综合实例ArcGIS_Engine培训教程ArcGISEngine控件概念嵌入式组件一每个ArcGIS控件都是嵌入式组件,可以拖放到可视化设计环境提供的容器窗体或对话框中。一旦放在了容器内,就可以改变ArcGIS控件的大小和位置,以便与其他嵌入式组件一起为应用程序提供用户界面。ArcGIS_Engine培训教程ArcGISEngine控件概念属性页一旦控件被放入了容器中,就可以使用右键点击该控件来弹出属性页面,可以方便的访问控件的属性和方法,减少代码的编写工作量。ArcGIS_Engine培训教程ArcGISEngine控件概念封装ArcObjects一每个ArcGIS控件都封装了粗颗粒度的ArcObjects,同时又提供对细颗粒度的ArcObjects的访问,简化了开发过程。一如PageLayoutControl封装了PageLayout对象,PageLayout对象至少包含一个Map对象,而Map对象又可以包含一个或者多个图层对象。一ArcGIS控件是开发程序的起点,通过他们可以直接快速进入开发的对象模型。ArcGIS_Engine培训教程事件一每个ArcGIS控件都会响应终端用户的键盘和鼠标交互而触发的事件。一在事件中加入响应交互的处理代码。ArcGISEngine控件概念ArcGIS_Engine培训教程伙伴控件一这种类型的ArcGIS控件不能单独使用,需要和另外一个控件一起协同工作。一ToolbarControl和TOCControl是伙伴控件一对应的伙伴控件一般为:MapControl、PageLayoutControl、ReaderControl、SceneControl或GlobeControl控件。一可以通过属性页面来设置伙伴控件的关联属性。ArcGISEngine控件概念ArcGIS_Engine培训教程控件命令一ArcGISEngine提供了一系列的命令、工具和菜单与ArcGIS控件系统工作。如放大、缩小、漫游等等。一开发人员也可以通过创建自己定义的命令、工具和菜单来使用ArcGISEngine提供的命令集。一可以使用HookHelper、GlobeHookHelper和SceneHookHelper等对象来简化自定义的命令。ArcGISEngine控件概念ArcGIS_Engine培训教程提供超过100个工具和命令ArcGISEngine控件概念ArcGIS_Engine培训教程地图制作一ArcGIS控件可以装载使用ArcGISDeskTop预定义的文档。如:ArcMap制作的MXD文档可以被MapControl和PageLayoutControl来加载。一使用预定一的文档可以节省开发时间,不需要从零开始编程建立地图及其符号化体系。ArcGISEngine控件概念ArcGIS_Engine培训教程ArcGISEngine开发控件MapControlPageLayoutControlToolBarControlTOCControlSceneControlGlobelControlArcGIS_Engine培训教程ArcGIS_Engine培训教程ArcGIS_Engine培训教程ArcGIS_Engine培训教程ArcGIS_Engine培训教程ArcGIS_Engine培训教程ArcGIS_Engine培训教程ArcGIS_Engine培训教程ArcGIS_Engine培训教程ArcGIS_Engine培训教程ArcGIS_Engine培训教程ArcGIS_Engine培训教程ArcGIS_Engine培训教程ArcGIS_Engine培训教程ArcGIS_Engine培训教程ArcGIS_Engine培训教程ArcGIS_Engine培训教程ArcGIS_Engine培训教程ArcGIS_Engine培训教程ArcGIS_Engine培训教程ArcGIS_Engine培训教程ArcGIS_Engine培训教程ArcGIS_Engine培训教程ArcGIS_Engine培训教程ArcGIS_Engine培训教程ArcGIS_Engine培训教程ArcGIS_Engine培训教程ArcGIS_Engine培训教程3D控件SceneControl一对应与桌面的ArcScene桌面应用程序的三维视图。拥有导航功能,允许用户三维地显示地图数据。GlobeControl一对应与桌面的ArcGlobe桌面应用程序的三维视图。拥有导航功能,允许用户三维地显示地图数据。ArcGIS_Engine培训教程ReadControlReadControl一对应于ArcReader桌面应用程序地“数据”和“布局”视图及其内容表“TOC”。一ReadControl还包含有一定的工具菜单,方便使用。一访问ArcGISPublisher扩展模块发布的PMF数据。ArcGIS_Engine培训教程控件应用举例ArcGIS_Engine培训教程目录1ArcGIS体系结构2 ArcGISEngine是什么3ArcGISEngine的主要功能4ArcGISEngine类库5ArcGISEngine控件6接口的概念7对象模型图的阅读8什么是地理数据库9ArcGISEngine开发环境与流程10ArcGISEngine许可与部署11开发综合实例ArcGIS_Engine培训教程接口概念COM是微软提出的一种用于开发和支持程序对象组件的框架,是一种系统构架模型二进制规范,而不是指特定语言;COM是一种自我描述,自我生存的软件模块;它由操作系统的COM管理部分来注册和管理,并向所有应用开放。Com是软件模块之间连接的协议,客户调用服务器并等待服务器的响应ArcGIS_Engine培训教程接口概念实例A实例C实例B公共接口代理(接口查询,实例创建。。。)应用接口代理COM通过一个叫接口的机制与外部程序打交道。所有的实例至少有一个叫公共接口代理的接口。外部程序可以通过对这个叫公共接口代理的调用可以获得其它接口信息。通过接口可以完成组件所要达到的功能目标。接口-Interface(抽象类)是组件间进行通讯的通道。同一接口在不同的组件类中实现的方法可以是不相同的(多态性)。ArcGIS_Engine培训教程如收音机类比:

ArcObject如同收音机,虽然它是单个实体,但这个对象的特性,以及它可做的事情也被组织成为不同的接口,为了获得所需要的特性或功能,就得做到正确的接口。

例如,我们要听电台节目,就得把开关制到收音档。但这并不影响到我们在收音机中放入的磁带,只须将接口改变,开关打到合适的档位就行了。

IRadioITapeICDDimpBoxasIRadioSetpBox=newBoomBoxpBox.FM=Ture;

BoomBOX接口概念ArcGIS_Engine培训教程接口与ArcGIS的关系ArcGIS正是在在这种组件技术的基础上搭建的,ArcGIS不但提供了基于图形用户界面的应用,而且提供了搭建这些应用的所有组件,这样为用户重新搭建他们自己的应用提供了巨大的空间。ArcGISEngine提供了基于COM、.NET、Java和C++的APIs,它支持4种开发环境(C++、COM、.NET和Java),能够实现跨平台部署(Windows、UNIX和Linux)。

ArcGIS_Engine培训教程目录1ArcGIS体系结构2 ArcGISEngine是什么3ArcGISEngine的主要功能4ArcGISEngine类库5ArcGISEngine控件6接口的概念7对象模型图的阅读8什么是地理数据库9ArcGISEngine开发环境与流程10ArcGISEngine许可与部署11开发综合实例ArcGIS_Engine培训教程1、对象模型图阅读几个名词概念:

UML:UnifiedModelingLanguage统一建模语言,是用来对软件密集系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。

OMD:Objectmodeldiagrams对象模型图表。

首先来看看OMD能帮我们做什么?

1.该类支持哪些接口;

2.完成任务需要哪些对象;

3.如何使用该类的对象;

4.是否可以直接实例化类;

5.接口有哪些方法和属性;

6.是否有其它类也支持该接口;

7.对象间的关系这些符号是基于UML画图工具创建的,UML符号是面向对象分析和设计的工业图样标准。对象模型图中提供的信息非常多,是对象浏览器中信息的重要补充。VisualBasic,或者其它的开发环境,都会列出所有的类和成员,但不会指明这些类之间的关系。所以,对象模型图是非常有利于读者对ArcInfo组件的理解的!ArcGIS_Engine培训教程1.类和对象在UML图中有三种类型的类:抽象类(abstractclass)、可创建类(createableclass)与可实例化类(instantiableclass)。抽象类不能用以创建新对象,但可以用来指定子类。举个例子,“鸟”是“鸡”的抽象类。可创建类指的是那些能够直接使用开发环境中的对象定义语法来创建对象。比如在VisualBasic中是这样书写:DimAsNew<object>或者CreateObject<object>。可实例化类不能够直接创建新对象,但是这种类的对象能够作为其它对象的属性被创建或是从其它类的方法中创建。比较难理解。1、对象模型图阅读鸟

Abstract鸟巢

CoClass鸡

CoClass羽毛

Class翅膀

Class蛋

Class*2ArcGIS_Engine培训教程2.关联在抽象类、可创建类和可实例化类之间,有几种存在的关联(或称关系)。联系(association)便描述了类之间的关联。在两端的类中可以定义多重性(Multiplicity)关联。

在这张图上,一个业主能有拥有一块或多块宗地;同样地,一块宗地可以被一个或多个业主所共有。多重性关联就是限制对象类与其它对象关联的数目关系。以下是用于多重性关联的符号:1——一个并且只有一个,这种多样性是可选的;如果不标明,则默认为“1”

0..1——零个或一个

M..N——从M到N(正整数)

*或者0…*——从零到任意正整数

1…*——从一到任意正整数1、对象模型图阅读ArcGIS_Engine培训教程3、类继承(typeinheritance)定义了专门的类,它们拥有超类的属性和方法,并且同时也有自身的属性和方法。

上图说明primaryline和secondaryline是line的一种类型。4、实例化(Instantiation)指定一个类的对象有这样的方法,它能够创建另外一个类的对象。

pole对象有一个方法能够创建transformer对象。1、对象模型图阅读ArcGIS_Engine培训教程5、组成(Composition)是一种更为强壮的聚合方式,此种方式下,“整体”对象控制着“部分”对象的生存时间。

一个pole包含一个或多个crossarm。在这个图中当pole被移除后,crossarm就不能再使用了。因为pole控制着crossarm的生存时间。1、对象模型图阅读ArcGIS_Engine培训教程6、OMD中的符号:

一个三角形符号表示继承形的黑色小块表示组成线前头带个箭头表示用来创建*表示对应关系1:N一条直线表示联合

1、对象模型图阅读ArcGIS_Engine培训教程6、OMD中的符号:

类的类别:

抽象类:不能创建或实例化,从来没有一个抽象类的实例用于定义子类的公共接口,子类继承其定义的接口。OMD符号为:二维的内部有阴影的矩形。例化类:不能创建,从别的对象获得实例。OMD符号为:3D矩形内部没有阴影可创建的类:用New关键字创建对象或者从别的对象获得运行实例。OMD符号为:带阴影的3D矩形符号。

1、对象模型图阅读ArcGIS_Engine培训教程6、OMD中的符号:

属性和方法:属性:哑铃状的图标,Read(左侧的哑铃)和write(右侧的哑铃)方法:指向左侧的箭头接口:棒棒糖类型的图标图表之间的连接:虫洞1、对象模型图阅读ArcGIS_Engine培训教程7、入接口和出接口(Inboundinterface,Outboundinterface)

COM调用既可以是单向的(即客户程序创建组件对象,然后客户程序调用对象所提供的功能,在适当时候再把对象释放掉),通常称为入接口。如果一个COM对象支持一个或多个主动与客户程序进行通信的接口,则这种接口称为出接口,是因为这些接口并不由对象实现,而是由客户程序实现.(类似回调函数,在对象模型图中表现为“事件”)1、对象模型图阅读ArcGIS_Engine培训教程个人感觉在OMD图中比较难理解的就是可实例化类CLASS。从下面的例子去理解它:ArcGISEngine中workSpace就是一个可实例化类,

WorkSpace不能用new创建,但可以通过WorkSpaceFarctory.Openfromfile()方法来创建.如下:

IWorkspaceFactorypWorkspaceFactory=newAccessWorkspaceFactoryClass();

IWorkspacepWorkspace=pWorkspaceFactory.OpenFromFile(ConnectionString,0);1、对象模型图阅读ArcGIS_Engine培训教程2、接口查找快速得知ArcGISEngine接口所属命名空间的几种方式1.VisualStduio2005中提供的智能感知(鼠标悬浮在接口上就能看到)或“转到定义”(理论上提供F12快捷)

2.使用帮助文档的索引

ArcGIS的帮助文档可以说是非常强悍的,如下图所示:

ArcGIS_Engine培训教程3.使用AE自带的工具:【LibraryLocator】

这个工具的使用比较简单(如果用.NET的话,勾选窗体下部的复选框),该工具能够粘贴命名空间和ProgID。4.OMD

OMD文档结构图,理理接口之间的关系,能很大的帮助自己。2、接口查找ArcGIS_Engine培训教程3、接口跳转接口跳转又叫接口查询Fuel

AccelerateBrake

PitStopLapTimeIDriveIRaceRaceCarDimpCarasIDriveSetpCar=newRaceCarpCar.AccelerateDimpRaceasIRaceSetpRace=pCarpRace.PitStoppCar.Accelerate接口跳转时要特别注意:同一个Com类或则向上(父类)可以实现接口跳转向下或同级不可以实现接口跳转ArcGIS_Engine培训教程ArcGIS_Engine培训教程下午ArcGIS_Engine培训教程目录1ArcGIS体系结构2 ArcGISEngine是什么3ArcGISEngine的主要功能4ArcGISEngine类库5ArcGISEngine控件6接口的概念7对象模型图的阅读8什么是地理数据库9ArcGISEngine开发环境与流程10ArcGISEngine许可与部署11开发综合实例ArcGIS_Engine培训教程Geodatabase实际上可以看成是我们在系统中所处理和使用的所有空间数据的一个智能库。物理上,数据被存放在数据库管理系统(DBMS)中,其类型可以是各种各样的,包括:VectorTopologyRasterNetworksAddressesTINsRelationshipsandRulesCADMetadataTablesGeodatabase数据模型使现实世界的空间数据对象与其逻辑数据模型更为接近。在geodatabase中,定义的不再是传统GIS对空间数据进行抽象后的“点”、“线”、“面”等简单空间要素,而是应用领域中熟悉的对象,如:杆塔、刀闸、电缆、道路、建筑、用地等。更重要的是geodatabase使我们不需要编写任何程序代码即可实现数据对象主要的操作行为。大多数的操作行为都可以通过对象值域(Domain)、子类型(Subtype)、规则等的定义以及ArcInfo提供的应用框架中丰富的其它功能来完成。什么是GeodatabaseArcGIS_Engine培训教程使用Geodatabase的好处

Geodatabase是面向对象的空间数据模型,同时,ArcInfo中提供了智能化的工具和CASE接口,供我们定义自己的数据对象,不但定义数据对象的空间几何特征,还可定义其规则、关系和操作行为。具体而言,Geodatabase可以为我们带来如下好处:统一的空间数据智能库:系统中所有的空间数据都可以统一地在同一数据库中存放和管理。数据的一致性得以保证:由于定义了规则和值域等,数据的录入和编辑都可以进行智能化的合法性校验,从而避免了数据的不一致性。用户可以更直观地使用数据:Geodatabase中的数据对象与领域应用中实际的空间要素更为接近,用户不再是面对在其应用领域没有特定意义的点、线、面等抽象的东西,而是直接操作他所熟悉的对象,如:变压器、电杆、高压线、刀闸、人井、道路、湖泊等。ArcGIS_Engine培训教程空间要素不再孤立存在:在Geodatabase中,我们可以定义对象与对象之间的关系。于是我们可以描述或定义对一个空间要素而言,如果与其相关的其它空间要素被移动、修改或删除时,对它会有何影响。这样,当我们移动一个电杆时,与其相连的电线就可以自动根据这种对象关系完成必要的移动,而无需人为干预。可以更好地制图:借助Geodatabase数据模型,可以对空间要素的确绘制方法进行更多的控制。在ArcMap中,可以直接利用智能化的、复杂的制图方法。通过为空间数据对象的扩展编码,实现高度定制的绘制方法。空间要素的几何形状可以更好地表示:Geodatabase中支持直线(段)、圆弧、椭圆弧及Bézier曲线等。连续的空间数据集合:Geodatabase中表示大规模空间数据集合的方法是连续的,不需要对空间数据集进行分块或其它方式的切割,使逻辑模型和现实对象更加统一。多用户并发操作:Geodatabase支持工作流访问模式,多个用户可以同时对同一区域中的空间要素进行编辑,通过版本管理(Versioning)解决可能的冲突以保障数据的一致性和安全性。使用Geodatabase的好处ArcGIS_Engine培训教程Geodatabase可以用四种方式表达空间数据:离散的对象表示为矢量要素,连续的对象表示为栅格,表面表示为TIN,地物定位参考表示为地址(locatorsandaddresses)。Geodatabase提供定义和管理空间数据集合的地理坐标系的框架。Geodatabase可对空间上存在拓扑关联的空间数据进行空间建模,譬如:设施网络、交通网络等。Geodatabase可在空间数据对象间定义任意的关联关系。Geodatabase可定义空间数据对象的值域、子类和规则。Geodatabase可处理数据的多版本管理,以满足多用户并发的长事务处理需求。Geodatabase对DBMS有何扩展ArcGIS_Engine培训教程如何导到影象数据到Geodatabase中?如何连接空间数据库?ArcGIS_Engine培训教程目录1ArcGIS体系结构2 ArcGISEngine是什么3ArcGISEngine的主要功能4ArcGISEngine类库5ArcGISEngine控件6接口的概念7对象模型图的阅读8什么是地理数据库9ArcGISEngine开发环境与流程10ArcGISEngine许可与部署11开发综合实例ArcGIS_Engine培训教程APIs和开发环境AO可选的的开发方式可以分为三种利用ArcGIS桌面应用程序(如ArcMap)内置的VBA宏进行客户化在AO组件基础上进一步包装自己的COM组件开发独立的EXE应用程序ArcGISEngine支持一下四种开发环境COM:VB6、VC++等.Net:VB.Net、C#等Java:标准的JavaC++:标准C++每种开发环境下的ArcGISEngine的开发大体是一样的。只有少数的区别。ArcGIS_Engine培训教程以VBA方式进行定制开发打开ArcMap应用程序,选择Tools菜单下的MACROS子菜单打开VBA环境选择Project工程下的ArcMapObject,双击打开其中的ThisDocument对象在右边的编辑环境中选择对象列表中的MxDocument对象,在任务列表中选择OpenDocumenArcGIS_Engine培训教程键入如下的代码DimpmapAsIMapSetpmap=NewMap="Hello,world"MsgBo按CTRL+S保存后退出ArcMap。再次打开你所保存的工程文档,在下面的图片中就得到了程序运行的结果以VBA方式进行定制开发ArcGIS_Engine培训教程ArcGISEngine开发所需要的预备知识理解COM组件技术了解一门编程语言(VB,.NET,VC++,Java)怎么使用ArcObjects知道开发者资源理解授权与部署的模型注:不管何种开发方式,使用ArcGISEngine进行应用程序的开发成功与否取决于开发人员掌握的编程环境和ArcObjects的技能。ArcGIS_Engine培训教程如何开始.Net的Engine开发?安装VisualStudio2005(ExpressorProfessional).NET2.0SDK和Runtime安装.NET的ArcGISEngineRuntime包括开发包(developerkit)安装ArcGISEngine开发包准备开发ArcGIS_Engine培训教程ArcGISEngine开发流程数据准备确定应用程序类型选择API和开发环境开发应用程序部署应用程序ArcGIS_Engine培训教程1、数据准备收集和整理系统开发中所需要到的数据。

一包括:属性数据、矢量数据和影像数据等。确定待开发的系统的数据结构等。ArcGIS_Engine培训教程2、确定应用程序类型使用ArcGISEngine可以开发多种应用程序。一独立的非可视化应用程序。如控制台和实用工具应用程序。一独立的可视化应用程序。如Wiondows和基于控件的应用程序。一嵌入式应用程序。如嵌入到现有的应用程序中的组件。一跨平台的上述应用程序。用Java或C++编写。ArcGIS_Engine培训教程3、选择API和开发环境选择合适的API和开发环境:一COM:VisualStaudio6.0(VB,VC++)一.Net:Visua(VB.Net,C#)一Java:Eclipse,WebsphereStudio,Jbuilder等。一C++:VisualStudio6.0,C++Builder主要根据开发人员熟悉何种环境和语言、打算使用何种API、待开发的系统在何种平台和环境下运行等因素综合考虑确定。ArcGIS_Engine培训教程4、开发应用程序具体的功能代码开发。主要考虑:一将使用到ArcGISEngine的何种功能。一决定要引用的ArcGISEngine的类库。一运行应用程序所需要的ArcGIS何种许可。一是否需要ArcGISEngine运行时的选项。一具体代码编写。一计划如何部署应用程序。一是否实现了正确的许可代码。在这个过程中将使用到ArcGIS的开发帮助系统。ArcGIS_Engine培训教程5、部署应用程序把最终开发完成的程序部署到目标机器上。主要考虑:一目标机器的ArcGIS产品的安装情况。是单独安装ArcGISEngine还是同时还安装ArcGISDesktop。一目标机器采用何种许可认证方式。一开发人员如何打包和部署安装程序。一将来是否提供新版本进行升级。一如何分发开发的应用程序。如网络安装、光盘介质。ArcGIS_Engine培训教程创建Engine应用程序:(.NET)步骤创建一个项目引用ArcGIS库初始化许可ArcGIS_Engine培训教程步骤1:创建一个独立项目创建一个Windows应用程序VB.NET或C#项目名称是一个namespaceEngineLicenseAppArcGIS_Engine培训教程步骤2:引用ArcGIS库手动引用ESR集合引用开发工具ESRIAutomaticReferencesadd-in在所有类里导入引用ImportsESRI.ArcGIS.esriSystemPublicClassfrmEngineClientInheritsSystem.Windows.Forms.FormArcGIS_Engine培训教程步骤3:初始化许可手动实现这段代码DevelopertoolsESRILicenseIn

温馨提示

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

评论

0/150

提交评论