《牟乃夏ArcEngine教程第1章ArcGISEngine编程基.ppt》由会员分享,可在线阅读,更多相关《牟乃夏ArcEngine教程第1章ArcGISEngine编程基.ppt(22页珍藏版)》请在优知文库上搜索。
1、牟乃夏牟乃夏 ArcGIS EngineArcGIS Engine地理信息系统开发教程地理信息系统开发教程第第1 1章章 ArcGIS EngineArcGIS Engine编程基础编程基础目录 1.1 ArcGIS Engine概述 1.2 ArcGIS Engine开发资源 1.3 Esri开发方式简介 1.4 对象模型图(OMD图)1.5 ArcGIS Engine的安装1.1 ArcGIS Engine概述 ArcGIS Engine是基于COM的集合,可以被任何支持COM的编程语言所调用,如:C#、Visual Basic.NET、Java、Visual Basic、C/C+等语言。
2、使用它不仅可以编写功能复杂的独立应用程序,也可以将GIS的相关功能嵌入到现有的软件,如Word、Excel中,真正实现GIS功能的灵活配置。在产品架构上,ArcGIS Engine由两部分组成。一是构建GIS应用软件所用的开发工具包(ArcGIS Engine Developer Kit);二是可分发的、为应用程序提供运行基础的运行时(ArcGIS Engine Runtime)。1.1 ArcGIS Engine概述ArcGIS Engine在ArcGIS产品线中的地位1.1 ArcGIS Engine概述ArcGIS Engine开发工具包的组成开发工具包的组成1.1 ArcGIS Eng
3、ine概述 ArcGIS Engine运行时ArcGIS Engine运行时是能够保证基于ArcGIS Engine开发的软件正常运行的ArcObjects组件产品,是运行由ArcGIS Engine开发的应用程序的基础软件环境。ArcGIS Engine运行时是可伸缩的,这种可伸缩性体现在ArcGIS Engine运行时的级别上。在安装ArcGIS Engine运行时时,需根据应用程序的需要,选择不同级别的授权文件。1.1 ArcGIS Engine概述 ArcGIS Engine功能 使用ArcObjects SDK可以实现的功能主要有:地图基本操作信息查询功能专题图的制作数据编辑网络分析
4、空间统计分析三维分析1.1 ArcGIS Engine概述 ArcGIS Engine与ArcObjects 联系:ArcGIS Engine包括ArcObjects的核心功能,是对ArcObjects中大部分接口、类库进行封装所构成的。ArcGIS Engine中组件的接口、方法、属性与ArcObjects是相同的。区别:1)开发环境 在ArcGIS Engine产品未出现时,要基于ArcObjects进行开发,必须安装ArcGIS Desktop。而ArcGIS Engine是独立的COM组件,在应用其进行开发时,不需要安装ArcGIS Desktop,只需安装ArcGIS Engine
5、Developer Kit即可。2)功能强弱 ArcObjects包含了很多ArcGIS Desktop中的UI功能,而部分UI功能在ArcGIS Engine中是没有的。如在ArcCatalog中向地图文档中添加数据所用到的IGxDialog接口,用于打印设置的IPrintDialog接口等。1.1 ArcGIS Engine概述 ArcGIS Engine类库ArcGIS Engine不同的组件库分别封装不同的GIS功能。在.NET开发环境中,不同的GIS功能分别被定义在不同的命名空间内。ArcGIS Engine提供的类库主要可以分为Version类库、界面和控件类库、可视化显示类库、数
6、据访问类库、数据分析类库等几大部分。1.1 ArcGIS Engine概述 ArcGIS Engine控件ArcGIS Engine控件是一组可视化的开发组件,每个ArcGIS Engine控件都是一个COM组件。这些控件包括MapControl、PageLayoutControl、TOCControl、ToolBarControl、GlobeControl和SceneControl等。1.2 ArcGIS Engine开发资源 1.帮助文档【开始】【所有程序】【ArcGIS】【Developer Help】【ArcObjects Help for.NET】,即可启动ArcObjects的帮助
7、系统。2.自带示例 在安装完ArcObjects SDK后,在“.Program FilesArcGISDeveloperKit10.0Samples”文件夹下,包含有许多自带的代码示例工程,这些都是开发人员学习ArcGIS Engine开发很好的资源。3.在线网站 http:/ Esri中国社区:http:/bbs.Esrichina- ArcGIS论坛:http:/ http:/这个网站1.3 Esri开发方式简介 Esri提供了多种方式用于扩充其平台软件及开发新的GIS应用软件,如提供内置的开发语言,提供开发组件库等。Esri提供的开发方式从时间轨迹看,主要有AML语言开发方式,Aven
8、ue语言开发方式,MapObjects组件开发方式,VBA开发方式和ArcObjects组件开发方式等。1.3 Esri开发方式简介 ArcObjects开发方式 ArcObjects是ArcGIS的功能核心,是其桌面系统的开发基础,是一种集成的面向对象的地理数据模型软件组件库,提供了ArcGIS的全部功能。ArcObjects包括构建ArcGIS产品ArcView、ArcEditor、ArcInfo和ArcGIS Server等的所有核心组件。ArcObjects同时也提供了COM、.NET、C+和Java的应用编程接口(API),这些编程接口不仅包括一系列高层次的组件,还包括了详细的文档说
9、明。ArcObjects与其他组件的关系图1.4 对象模型图(OMD图)ArcGIS Engine提供了大量的对象,这些对象之间存在着各种各样的关系,如:继承、组合、关联等。OMD图(Object Model Diagram,对象模型图)是以UML(Unified Modeling Language,统一建模语言)为基础,用来表现对象之间关系的类图。UML模型图示例ArcGIS Engine包含三种类型的类,即:包含三种类型的类,即:AbstractClass类类、CoClass类类和和Class类类,他,他们在们在UML图中采用不同的填充样式表示。图中采用不同的填充样式表示。1.4 对象模型
10、图(OMD图)1.AbstractClass类 AbstractClass类,即抽象类,该类不能被实例化,也就是说不能用new关键字去生成一个该类的对象,例如Geometry类。根据面向对象思想的概念,不同的类可以继承自同一个抽象类,但内部对同一个方法的实现可能是不一样的。2.CoClass类 CoClass类,即可创建类。该类可以通过new关键字直接实例化对象,它的实例对象不依赖其他对象的存在而存在,其生存周期也不由其它的对象管理。如QueryFilter是一个组件类,可以用new关键字来创建一个对象。1.4 对象模型图(OMD图)3.Class类 Class类,即可实例化类。该类不能直接使
11、用new关键字创建对象,但是可以借助其它对象类来创建该类的实例,如Workspace类可以通过WorkspaceFactory类的OpenFromFile方法来创建。1.4 对象模型图(OMD图)类的关系 1)继承关系:继承是面向对象编程的重要特点之一,在OMD图中用空心三角箭头表示继承关系。抽象类不能直接创建类对象,只能通过派生子类的方法来实现自己,类之间的继承可看作类功能的扩展,即子类在继承父类属性和方法的基础上,还可增加自己特有的属性和方法。1.4 对象模型图(OMD图)2)组合关系 组合关系指其中一个类对象是另外一个类对象的组成部分,由组成对象控制被组成对象的整个生命周期,在OMD图中
12、用实心菱形表示。Layer是是Map的一部分,当的一部分,当Map消失的时候,消失的时候,Layer也也将不复存在。在将不复存在。在ArcGIS Engine中,地图文档由多个地中,地图文档由多个地图组成,工具条控制对象由多个工具项组成,这些图组成,工具条控制对象由多个工具项组成,这些均是组合关系。均是组合关系。1.4 对象模型图(OMD图)3)关联关系 关联关系是指可从一个类的对象访问到另一个类的对象,它是一种松散的关系,在OMD图中用实线表示。关联关系是有方向的,若只存在一个方向,则为单向关联;若存在两个方向,则为双向关联。1.4 对象模型图(OMD图)4)依赖关系 依赖关系表示一个对象具
13、有产生另外一个对象的方法,在OMD图中用虚线箭头表示。在ArcGIS Engine中,WorkspaceFactory有三个方法(Create、Open和OpenFromFile)来创建或打开一个Workspace。Workspace依赖于WorkspaceFactory。1.4 对象模型图(OMD图)接口 对于接口来说,ArcObjects的类都实现了一个或多个接口,这些接口分为两种类型,一种是入接口(Inbound Interface),另一种是出接口(Outbound Interface),分别用空心圆和实心圆来表示。其中入接口封装了若干属性和方法,出接口封装的主要是事件,即对象支持哪些事件的触发,所以出接口又称为回调接口。入接口和出接口1.4 对象模型图(OMD图)查看OMD图一种方法是通过ArcGIS Engine的开发帮助来查看OMD图中的各种对象信息及其与其它组件之间的关系。另一种方法是通过阅读Esri提供的OMD图的PDF文件,存放在ArcGIS Engine安装目录下的“DeveloperKit10.0Diagrams”文件夹下。