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