版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、,目 录,1 ArcGIS体系结构 2 ArcGIS Engine是什么 3 ArcGIS Engine的主要功能 4 ArcGIS Engine类库 5 ArcGIS Engine控件 6 接口的概念 7 对象模型图的阅读 8 什么是地理数据库 9 ArcGIS Engine开发环境与流程 10 ArcGIS Engine许可与部署 11 开发综合实例,ArcGIS 整体架构,Customization,1、ArcGIS的客户端,ArcGIS的客户端产品包括ArcView 、ArcEditor、ArcInfo 三个客户端都有统一风格的桌面应用:ArcCatalog、ArcMap和ArcToo
2、lbox。,ArcCatalog: ArcCatalog是一个集成化的空间数据管理器,主要用于空间数据浏览,Geodatabase的结构定义、数据的导入导出、网络模型的生成、对象关系和规则的定义、元数据的定义和编辑修改等。 ArcCatalog支持大量的数据格式,包括:ESRI shapefiles, Geodatabases, ArcSDE layers, INFO tables, Image, Grid, Tin, CAD文件, 动态分段事件以及其它ESRI数据类型和文件等。,ArcMap 是集空间数据显示、编辑、查询检索、统计、报表生成、空间分析和高级制图等众多功能于一体的桌面应用平台。
3、 ArcMap提供面向对象的类似CAD的空间数据编辑工具,全面支持空间数据的可视化交互操作。 ArcMap提供了所见即所得的符号编辑器,令使用者可以随心所欲地生成任意复杂的点线面符号。 ArcMap进一步拓展了ESRI强大的空间数据直接读取能力,多种格式的数据无需进行转换或利用中间交换格式即可动态地直接使用。ArcMap支持的空间数据格式包括:ArcInfo coverages, ESRI shapefiles, ArcSDE layers, DXF and DWG, DGN, 大量的图像格式, GRID、TIN,等等。 ArcMap还支持空间数据的动态投影(on-the-fly projec
4、tion)。,1、ArcGIS的客户端,ArcToolbox 是一个用于空间数据格式转换、叠加处理、缓冲区生成、坐标转换等的集成化“工具箱”。ArcToolbox以树形结构方式组织了120多个不同的空间数据处理工具,并且都是以菜单驱动的方式提供出来,这为我们以一种确定的、轻松的方式去完成哪怕是很复杂的工作提供了前所未有的方便。,1、ArcGIS的客户端,2、ArcGIS 的服务器端,ArcIMS 用户的空间数据和应用可以通过ArcIMS 在 Intranet/Internet环境中进行发布和共享。ArcIMS提供用户在服务器端可以以影像方式或矢量数据流方式进行数据发布。客户端用户通过工业标准的
5、通用浏览器即可对ArcIMS服务站点进行访问和交互操作。ArcIMS支持包括Servlet、ColdFusion、ASP等多种Web Server端技术,同时开发了有望成为未来Internet环境中GIS通用语言的ArcXML,为空间数据跨厂商跨平台的广泛交流和共享打下了坚实的基础。,ArcSDE ArcSDE是ESRI的空间数据库引擎,用于对海量空间数据及其属性数据的管理和驱动,为并发访问的客户端提供快速、安全的数据服务。ArcSDE支持工业标准的DBMS平台(如:ORACLE、SQL Server、DB2、Informix等),同时引入了其独有的异步缓冲机制和协同操作机制,使得空间数据服务
6、的响应效率得到提高,真正起到了“引擎”的作用,而并不仅仅是提供一种空间数据存储方式。另外,ArcSDE具有丰富的客户端可供用户选用,如:ArcInfo、ArcView、ArcIMS、MapObjects、ArcExplorer等。同时,还提供了开放的API编程接口,供用户或开发商开发自己的客户端应用或产品。,2、ArcGIS 的服务器端,4、ArcGIS 与 ArcObjects,ArcGIS是构建在ArcObjects组件库之上。 ESRI 使用 ArcObjects来开发软件和应用程序。 开发者使用ArcObjects去客户化软件与创建自己的应用程序。 ArcObjects 是 ArcGI
7、S 的核心。,5、ArcGIS 软件体系结构,产品共享ArcObjects组件库和底层功能 ArcGIS Engine 包含了核心的功能,ArcGIS Desktop,ArcGIS Engine,ArcGIS Server,由于遵循了主流的标准,信息能根据标准来交互,ArcGIS是一个开放的平台。,目 录,1 ArcGIS体系结构 2 ArcGIS Engine是什么 3 ArcGIS Engine的主要功能 4 ArcGIS Engine类库 5 ArcGIS Engine控件 6 接口的概念 7 对象模型图的阅读 8 什么是地理数据库 9 ArcGIS Engine开发环境与流程 10 A
8、rcGIS Engine许可与部署 11 开发综合实例,ArcGIS Engine 产品,ArcGIS Engine包含了两个产品: ArcGIS Engine Runtime 是运行所有ArcGIS Engine应用程序所必须的软件 最终用户需要安装 可以进行不同的运行时选项选择 ArcGIS Engine Developer Kit 开发者使用的 包含了所有开发库和开发资源 可以进行所有的选项开发 两个产品都通过软件许可文件授权,ArcGIS Engine Developer Kit产品,用来创建独立、嵌入式的桌面应用程序 包含构建ArcGIS Engine应用程序所需的许可 构建在Arc
9、Objects基础之上 不包含ArcMap, ArcCatalog, ArcToolbox, ArcScene 等应用程序框架 运行在桌面上(Windows, Unix ,BoomBOX,接口概念,接口与ArcGIS的关系,ArcGIS正是在在这种组件技术的基础上搭建的,ArcGIS不但提供了基于图形用户界面的应用,而且提供了搭建这些应用的所有组件,这样为用户重新搭建他们自己的应用提供了巨大的空间。 ArcGIS Engine提供了基于COM、.NET、Java和C+的APIs,它支持4种开发环境(C、COM、.NET和Java),能够实现跨平台部署(Windows、UNIX和Linux)。,
10、目 录,1 ArcGIS体系结构 2 ArcGIS Engine是什么 3 ArcGIS Engine的主要功能 4 ArcGIS Engine类库 5 ArcGIS Engine控件 6 接口的概念 7 对象模型图的阅读 8 什么是地理数据库 9 ArcGIS Engine开发环境与流程 10 ArcGIS Engine许可与部署 11 开发综合实例,1、对象模型图阅读,几个名词概念:UML:Unified Modeling Language 统一建模语言,是用来对软件密集系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。OMD:Obje
11、ct model diagrams 对象模型图表。首先来看看OMD能帮我们做什么?1 该类支持哪些接口;2 完成任务需要哪些对象;3 如何使用该类的对象;4 是否可以直接实例化类;5 接口有哪些方法和属性;6 是否有其它类也支持该接口;7 对象间的关系,这些符号是基于UML 画图工具创建的,UML 符号是面向对象分析和设计的工业图样标准。 对象模型图中提供的信息非常多,是对象浏览器中信息的重要补充。Visual Basic,或者其它的开发环境,都会列出所有的类和成员,但不会指明这些类之间的关系。所以,对象模型图是非常有利于读者对ArcInfo 组件的理解的!,1. 类和对象 在UML 图中有三
12、种类型的类:抽象类(abstract class)、可创建类(createable class)与可实例化类(instantiable class)。 抽象类不能用以创建新对象,但可以用来指定子类。举个例子,“鸟”是“鸡”的抽象类。 可创建类指的是那些能够直接使用开发环境中的对象定义语法来创建对象。比如在Visual Basic 中是这样书写:Dim As New 或者CreateObject 。 可实例化类不能够直接创建新对象,但是这种类的对象能够作为其它对象的属性被创建或是从其它类的方法中创建。-比较难理解。,1、对象模型图阅读,鸟 Abstract,鸟巢 CoClass,鸡 CoClas
13、s,羽毛 Class,翅膀 Class,蛋 Class,*,2,2. 关联 在抽象类、可创建类和可实例化类之间,有几种存在的关联(或称关系)。 联系(association)便描述了类之间的关联。在两端的类中可以定义多重性( Multiplicity)关联。 在这张图上,一个业主能有拥有一块或多块宗地;同样地,一块宗地可以被一个或多个业主所共有。 多重性关联就是限制对象类与其它对象关联的数目关系。以下是用于多重性关联的符号: 1 一个并且只有一个,这种多样性是可选的;如果不标明,则默认为“1”0.1 零个或一个M.N 从M 到N(正整数)*或者0 * 从零到任意正整数1 * 从一到任意正整数,
14、1、对象模型图阅读,3、类继承(type inheritance)定义了专门的类,它们拥有超类的属性和方法,并且同时也有自身的属性和方法。 上图说明primary line 和secondary line 是line 的一种类型。,4、实例化(Instantiation)指定一个类的对象有这样的方法,它能够创建另外一个类的对象。 pole 对象有一个方法能够创建transformer 对象。,1、对象模型图阅读,5、组成(Composition)是一种更为强壮的聚合方式,此种方式下,“整体”对象控制着“部分”对象的生存时间。 一个pole 包含一个或多个crossarm。在这个图中当pole
15、被移除后,crossarm 就不能再使用了。因为pole 控制着crossarm 的生存时间。,1、对象模型图阅读,6、OMD中的符号: 一个三角形符号 表示继承 形的黑色小块 表示组成 线前头带个箭头 表示用来创建 * 表示对应关系1:N 一条直线表示 联合,1、对象模型图阅读,6、OMD中的符号: 类的类别: 抽象类:不能创建或实例化,从来没有一个抽象类的实例 用于定义子类的公共接口,子类继承其定义的接口。OMD符号为:二维的内部有阴影的矩形。 例化类:不能创建,从别的对象获得实例。 OMD符号为:3D矩形内部没有阴影 可创建的类:用New关键字创建对象或者从别的对象获得运行实例。OMD符
16、号为:带阴影的3D矩形符号。,1、对象模型图阅读,6、OMD中的符号:属性和方法: 属性:哑铃状的图标,Read(左侧的哑铃)和write(右侧的哑铃) 方法:指向左侧的箭头 接口:棒棒糖类型的图标 图表之间的连接:虫洞,1、对象模型图阅读,7、入接口和出接口(Inbound interface,Outbound interface)COM调用既可以是单向的(即客户程序创建组件对象,然后客户程序调用对象所提供的功能,在适当时候再把对象释放掉),通常称为入接口。如果一个COM对象支持一个或多个主动与客户程序进行通信的接口,则这种接口称为出接口,是因为这些接口并不由对象实现,而是由客户程序实现.(
17、类似回调函数,在对象模型图中表现为“事件”),1、对象模型图阅读,个人感觉在OMD图中比较难理解的就是可实例化类CLASS。从下面的例子去理解它: ArcGIS Engine中 workSpace 就是一个可实例化类,WorkSpace不能用new创建,但可以通过WorkSpaceFarctory.Openfromfile()方法来创建.如下:IWorkspaceFactory pWorkspaceFactory = new AccessWorkspaceFactoryClass();IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(
18、ConnectionString, 0);,1、对象模型图阅读,2、接口查找,快速得知ArcGIS Engine接口所属命名空间的几种方式,1.Visual Stduio 2005中提供的智能感知(鼠标悬浮在接口上就能看到)或“转到定义”(理论上提供F12快捷),2.使用帮助文档的索引 ArcGIS的帮助文档可以说是非常强悍的,如下图所示:,3.使用AE自带的工具:【Library Locator】 这个工具的使用比较简单(如果用.NET的话,勾选窗体下部的复选框),该工具能够粘贴命名空间和ProgID。,4.OMD OMD文档结构图,理理接口之间的关系,能很大的帮助自己。,2、接口查找,3、
19、接口跳转,接口跳转又叫接口查询,Fuel,Accelerate Brake,PitStop,LapTime,IDrive,IRace,RaceCar,Dim pCar as IDrive Set pCar new RaceCar pCar.Accelerate Dim pRace as IRace Set pRace = pCar pRace .PitStop pCar .Accelerate,接口跳转时要特别注意: 同一个Com类或则向上(父类)可以实现接口跳转 向下或同级不可以实现接口跳转,下午,目 录,1 ArcGIS体系结构 2 ArcGIS Engine是什么 3 ArcGIS En
20、gine的主要功能 4 ArcGIS Engine类库 5 ArcGIS Engine控件 6 接口的概念 7 对象模型图的阅读 8 什么是地理数据库 9 ArcGIS Engine开发环境与流程 10 ArcGIS Engine许可与部署 11 开发综合实例,Geodatabase实际上可以看成是我们在系统中所处理和使用的所有空间数据的一个智能库。物理上,数据被存放在数据库管理系统(DBMS)中,其类型可以是各种各样的,包括:,Geodatabase数据模型使现实世界的空间数据对象与其逻辑数据模型更为接近。在geodatabase中,定义的不再是传统GIS对空间数据进行抽象后的“点”、“线”
21、、“面”等简单空间要素,而是应用领域中熟悉的对象,如:杆塔、刀闸、电缆、道路、建筑、用地等。更重要的是geodatabase使我们不需要编写任何程序代码即可实现数据对象主要的操作行为。大多数的操作行为都可以通过对象值域(Domain)、子类型(Subtype)、规则等的定义以及ArcInfo提供的应用框架中丰富的其它功能来完成。,什么是Geodatabase,使用Geodatabase的好处,Geodatabase是面向对象的空间数据模型,同时,ArcInfo中提供了智能化的工具和CASE接口,供我们定义自己的数据对象,不但定义数据对象的空间几何特征,还可定义其规则、关系和操作行为。具体而言,
22、Geodatabase可以为我们带来如下好处:,统一的空间数据智能库:系统中所有的空间数据都可以统一地在同一数据库中存放和管理。 数据的一致性得以保证:由于定义了规则和值域等,数据的录入和编辑都可以进行智能化的合法性校验,从而避免了数据的不一致性。 用户可以更直观地使用数据:Geodatabase中的数据对象与领域应用中实际的空间要素更为接近,用户不再是面对在其应用领域没有特定意义的点、线、面等抽象的东西,而是直接操作他所熟悉的对象,如:变压器、电杆、高压线、刀闸、人井、道路、湖泊等。,空间要素不再孤立存在:在Geodatabase中,我们可以定义对象与对象之间的关系。于是我们可以描述或定义对
23、一个空间要素而言,如果与其相关的其它空间要素被移动、修改或删除时,对它会有何影响。这样,当我们移动一个电杆时,与其相连的电线就可以自动根据这种对象关系完成必要的移动,而无需人为干预。 可以更好地制图:借助Geodatabase数据模型,可以对空间要素的确绘制方法进行更多的控制。在ArcMap中,可以直接利用智能化的、复杂的制图方法。通过为空间数据对象的扩展编码,实现高度定制的绘制方法。 空间要素的几何形状可以更好地表示:Geodatabase中支持直线(段)、圆弧、椭圆弧及Bzier曲线等。 连续的空间数据集合:Geodatabase中表示大规模空间数据集合的方法是连续的,不需要对空间数据集进
24、行分块或其它方式的切割,使逻辑模型和现实对象更加统一。 多用户并发操作:Geodatabase支持工作流访问模式,多个用户可以同时对同一区域中的空间要素进行编辑,通过版本管理(Versioning)解决可能的冲突以保障数据的一致性和安全性。,使用Geodatabase的好处,Geodatabase可以用四种方式表达空间数据:离散的对象表示为矢量要素,连续的对象表示为栅格,表面表示为TIN,地物定位参考表示为地址(locators and addresses)。 Geodatabase提供定义和管理空间数据集合的地理坐标系的框架。 Geodatabase可对空间上存在拓扑关联的空间数据进行空间建
25、模,譬如:设施网络、交通网络等。 Geodatabase可在空间数据对象间定义任意的关联关系。 Geodatabase可定义空间数据对象的值域、子类和规则。 Geodatabase可处理数据的多版本管理,以满足多用户并发的长事务处理需求。,Geodatabase对DBMS有何扩展,如何导到影象数据到Geodatabase中? 如何连接空间数据库?,目 录,1 ArcGIS体系结构 2 ArcGIS Engine是什么 3 ArcGIS Engine的主要功能 4 ArcGIS Engine类库 5 ArcGIS Engine控件 6 接口的概念 7 对象模型图的阅读 8 什么是地理数据库 9
26、ArcGIS Engine开发环境与流程 10 ArcGIS Engine许可与部署 11 开发综合实例,APIs 和开发环境,AO可选的的开发方式可以分为三种 利用ArcGIS桌面应用程序(如ArcMap)内置的VBA宏进行客户化 在AO组件基础上进一步包装自己的COM组件 开发独立的EXE应用程序,ArcGIS Engine支持一下四种开发环境 COM:VB6、VC等 .Net :VB.Net、C等 Java :标准的Java C:标准C 每种开发环境下的ArcGIS Engine的开发大体是一样的。只有少数的区别。,以VBA方式进行定制开发,打开ArcMap应用程序,选择Tools菜单下
27、的MACROS子菜单打开VBA环境 选择Project工程下的ArcMap Object ,双击打开其中的ThisDocument对象 在右边的编辑环境中选择对象列表中的MxDocument对象,在任务列表中选择OpenDocumen,键入如下的代码 Dim pmap As IMap Set pmap = New Map pmap.Name = Hello,world MsgBox pmap.Name 按CTRL+S保存后退出ArcMap。再次打开你所保存的工程文档,在下面的图片中就得到了程序运行的结果,以VBA方式进行定制开发,ArcGIS Engine开发所需要的预备知识,理解 COM 组
28、件技术 了解一门编程语言 (VB, .NET, VC+, Java) 怎么使用 ArcObjects 知道开发者资源 理解授权与部署的模型 注:不管何种开发方式,使用ArcGIS Engine进行应用程序的开发成功与否取决于开发人员掌握的编程环境和ArcObjects的技能。,如何开始.Net的Engine开发?,安装Visual Studio 2005 (Express or Professional) .NET 2.0 SDK 和 Runtime 安装 .NET 的ArcGIS Engine Runtime 包括开发包(developer kit) 安装 ArcGIS Engine开发包
29、准备开发,ArcGIS Engine开发流程,数据准备 确定应用程序类型 选择API和开发环境 开发应用程序 部署应用程序,1、数据准备,收集和整理系统开发中所需要到的数据。 一包括:属性数据、矢量数据和影像数据等。 确定待开发的系统的数据结构等。,2、确定应用程序类型,使用ArcGIS Engine可以开发多种应用程序。 一独立的非可视化应用程序。如控制台和实用工具应用程序。 一独立的可视化应用程序。如Wiondows和基于控件的应用程序。 一嵌入式应用程序。如嵌入到现有的应用程序中的组件。 一跨平台的上述应用程序。用Java或C+编写。,3、选择API和开发环境,选择合适的API和开发环境
30、: 一COM:Visual Staudio6.0(VB,VC+) 一.Net:Visual Studio.Net( VB.Net,C) 一Java:Eclipse,WebsphereStudio,Jbuilder等。 一C+:Visual Studio6.0,C+ Builder 主要根据开发人员熟悉何种环境和语言、打算使用何种API、待开发的系统在何种平台和环境下运行等因素综合考虑确定。,4、开发应用程序,具体的功能代码开发。 主要考虑: 一将使用到ArcGIS Engine的何种功能。 一决定要引用的ArcGIS Engine的类库。 一运行应用程序所需要的ArcGIS何种许可。 一是否需
31、要ArcGIS Engine运行时的选项。 一具体代码编写。 一计划如何部署应用程序。 一是否实现了正确的许可代码。 在这个过程中将使用到ArcGIS的开发帮助系统。,5、部署应用程序,把最终开发完成的程序部署到目标机器上。 主要考虑: 一 目标机器的ArcGIS产品的安装情况。是单独安装ArcGIS Engine还是同时还安装ArcGIS Desktop。 一目标机器采用何种许可认证方式。 一开发人员如何打包和部署安装程序。 一将来是否提供新版本进行升级。 一如何分发开发的应用程序。如网络安装、光盘介质。,创建Engine应用程序:( .NET),步骤 创建一个项目 引用ArcGIS库 初始
32、化许可,步骤1:创建一个独立项目,创建一个Windows应用程序 VB.NET或C# 项目名称是一个namespace EngineLicenseApp,步骤2: 引用ArcGIS库,手动引用ESR集合引用 开发工具 ESRI Automatic References add-in 在所有类里导入引用,Imports ESRI.ArcGIS.esriSystem Public Class frmEngineClient Inherits System.Windows.Forms.Form,步骤3:初始化许可,手动实现这段代码 Developer tools ESRI License Initi
33、alizer add-in,Private m_pAoInitialize As IAoInitialize Private Sub Form_Load() Set m_pAoInitialize = New AoInitialize m_pAoInitialize.Initialize esriLicenseProductCodeEngine End Sub Private Sub Form_Unload(Cancel As Integer) m_pAoInitialize.Shutdown End Sub,步骤4: 加载地图控件,添加地图控件 编写事件代码,Private string f
34、ileName =Application.StartupPath + .Untitled.mxd“ if (axMapControl1.CheckMxFile(fileName) = true) axMapControl1.LoadMxFile(fileName,Type.Missing, ); axMapControl1.Enabled = true; axMapControl1.Extent = axMapControl1.FullExtent; axPageLayoutControl1.LoadMxFile(fileName, ); ,目 录,1 ArcGIS体系结构 2 ArcGIS Engine是什么 3 ArcGIS Engine的主要功能 4 ArcGIS Engine类库 5 ArcGIS Engine控件 6 接口的概念 7 对象模型图的阅读 8 什么是地理数据库 9 ArcGIS Engine开发环境与流程 10 ArcGIS Engine许可与部署 11 开发综合实例,ArcGIS Engine许可管理,ArcGIS Engine许可初始化 一使用ArcObjects开发的每个独立应用程序必须用一个合适的许可进行初始化,以保证安装了该应用程序的任何机器上成功地运行应用程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药品记录与数据管理要求培训课件
- 福建省2024八年级数学上册第11章数的开方期末复习课件新版华东师大版
- 水彩梅花课件教学课件
- 糖尿病日宣传活动总结
- 车间事故应急处理
- 剖腹产产后护理超详细
- 好玩的梯子说课稿
- 安全教育在走廊和楼梯上
- 旅游规划品牌授权准则
- 商品砼合同书
- 血液透析中心各项制度
- 中级汉语练习题(一)
- 物资交旧领新管理办法
- 监控系统培训记录表(一)
- 小清新个人简历求职动态PPT模板
- 绍兴黄酒PPT演示课件(PPT 30页)
- 工业企业总平面设计规范
- 超星尔雅学习通《大学生心理健康教育(兰州大学版)》章节测试含答案
- 现代女性如何兼顾事业和家庭的平衡PPT课件
- (工艺流程)铝合金熔炼工艺流程和操作工艺
- 投资决策 投资决策实务(课堂PPT)
评论
0/150
提交评论