第一讲 GIS开发概述
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ArcEngine的类库
ArcEngine的类库
ArcEngine的类库
ArcEngine的类库
ArcEngine的类库
ArcEngine的类库
ArcDesktop应用类库
ArcDesktop应用类库
ArcObjec的主要类库
ArcObjec的主要类库
ArcObjec的主要类库
组件式GIS
小巧灵活、价格便宜 开发简捷 大众化
组件式GIS
GIS组件的代表作应首推 ArcObject,ArcObjects由全球最大的GIS厂 商ESRI(美国环境系统研究所)推出.
国内的有超图组件GIS, SuperMap Object
ArcObject简介
了解 ArcObjects 相关的技术基础 使用对象模型图(OMD) ArcObjects开发
COM组件技术
COM是组件式对象模型(Component Object Model)的 英文缩写,是组件之间相互接口的规范,是 OLE(Object Linking & Embedding)和ActiveX共同的 基础,其作用是使各种软件构件和应用软件能够用一 种统一的标准方式进行交互。
COM不是一种面向对象的语言,而是一种与源代码无 关的二进制标准。COM所建立的是一个软件模块与另 一个软件模块之间的链接,当这种链接建立之后,模 块之间就可以通过称之为“接口”的机制来进行通信。
ArcGIS的体系结构
ArcGIS Desktop ArcGIS Engine Mobile GIS Application Application servers
ArcObject?
ArcObject是什么: 是ESRI公司ArcGIS 家族中桌面产品Desktop,
开发产品Engine 和服务器产品Server的开发 平台 是基于Microsoft® COM技术所构建的一系 列COM组件集
•M:方法是控件内部可调用的 用以完成特定操作的过程或函 数
•E:事件是预先定义的对象能 识别的动作。
组件式GIS
组件式软件技术已经成为当今软件技术的 潮流之一,为了适应这种技术潮流,GIS软 件象其他软件一样,已经或正在发生着革 命性的变化,即由过去厂家提供了全部系 统或者具有二次开发功能的软件,过渡到 提供组件由用户自己再开发的方向上来。 无疑,组件式GIS技术将给整个GIS技术体 系和应用模式带来巨大影响
ArcObjects 的构成
ArcGIS Engine的类库 ArcGIS Engine控件 ArcGIS Desktop应用的类库 ArcObjects的对象模型图 ArcGIS应用程序扩展
ArcEngine的类库
System SystemUI Geometry Display Server Output
第一讲 GIS开发概述
GIS 开发模式 面向对象程序设计(OOP) 组件GIS技术 AO简介
Байду номын сангаас
一、GIS开发模式
GIS平台软件 提供全部的地理信息系统处理功能,完成数据处 理、空间分析、信息查询、专题地图等功能 如:ArcGIS,MapInfo Professional,MAPGIS
GIS应用软件 针对不同的应用领域和行业,综合电子地图和信 息管理系统的特点 如: XX 110警务处理系统,XX市综合管线地理 信息系统,XX公司物流配送系统
面向对象技术思想 COM是什么?
具有一定结构和功能 遵循一定的接口标准 单独或与其他组件一起共同完成特定功能 内部实现完全封装
COM的目标和特性
建立在二进制代码级上的可重用性(通过包容和聚合) 语言无关性,只要其能生成符合COM规范即可
对象、类和接口
ArcObjects 开发资源
GeoAnalyst 3DAnalyst GlobeCore SpatialAnalyst
Publisher ArcReaderControl ……
ArcEngine的类库
ArcEngine的类库
ArcEngine的类库
ArcEngine的类库
ArcEngine的类库
ArcEngine的类库
口部分的描述更简单; 更便于控制软件复杂度。
3.组件技术
在组件技术的概念模式下,软件系统可以被视为 相互协同工作的对象集合,其中每个对象都会提 供特定的服务,发出特定的消息,并且以标准形 式公布出来,以便其他对象了解和调用。组件间 的接口通过一种与平台无关的语言IDL (InterfaceDefineLanguage)来定义,而且是二 进制兼容的,使用者可以直接调用执行模块来获 得对象提供的服务。早期的类库,提供的是原代 码级的重用,只适用于比较小规模的开发形式; 而组件则封装得更加彻底,更易于使用,并且不 限于C++之类的语言,可以在各种开发语言和开 发环境中使用。
开发较为容易; 二次开发的脚本语言,功能较弱; 所开发的系统不能脱离GIS平台;是解释执行的, 运行效率低;用户界面受平台软件的限制
宿主开发模式
组件开发模式
建立在组件技术基础上的GIS功能组件,, 这些组件都具备GIS的基本功能。开发人员 可以基于通用软件开发工具,尤其是可视 化开发工具,如:Delphi、Visual C++、 Visual Basic、Power Builder等为开发平 台,进行二次开发,实现GIS功能。
GIS开发模式
独立开发模式 宿主型开发模式 GIS组件开发模式(桌面、Web、移
动端)
独立开发模式
不依赖于任何GIS工具软件,从空间数据的 采集、编辑到数据的处理分析及结果输出, 所有的算法都由开发者独立设计,然后选 用某种程序设计语言,如Visual C++、 Delphi、等,在一定的操作系统平台上编 程实现。
有形实体:如计算机、教室等; 作用:如医生、工人、公司、部门; 事件:如飞行、演出等; 性能说明:如各种性能指标。
面向对象程序设计
类的关系----继承: 类的继承关系是现实世界中遗传关系的直 接模拟,它表示类之间的内在联系以及对 属性和操作的共享,即子类可以沿用父类 的某些特征。 多重继承:子类可以从多个父类继承。
ActiveX被广泛应用于WEB服务器以及客户 端的各个方面。同时,ActiveX技术也被 用于方便地创建普通的桌面应用程序
ActiveX与ActiveX控件
ActiveX控件开发端和使用端是完全独立的, 可以用Delphi、VB等各种语言来开发,又 可以用于不同语言、不同开发平台、不同 的系统环境中。
大多数GIS软件产商都提供商业化的GIS组 件。如ESRI 公司的MapObjects、 MapInfo公司的MapX等
二. 面向对象程序设计
面向对象程序设计
OOP将问题分解为一系列实体——这些实体 被称为对象(object),然后围绕这些实 体建立属性和方法。
面向对象程序设计
对象: 是人们要进行研究的任何事物,从简单的整数到 复杂的飞机均可看作对象,它不仅能表示具体的 事物,还能表示抽象的规则、计划或事物。例如:
ArcObject的功能
通过ArcObjects你可完成以下甚至更多的 GIS功能
空间数据的显示、查询检索、编辑和分析 创建各种专题图和统计报表 高级的制图和输出功能 空间数据管理和维护 可以创建独立的应用程序或者集成到第三
方的软件系统中
ArcObject的应用
ArcObjects的基础--COM
提供超过100个工具和命令
ArcGIS应用程序扩展
APIs 和开发环境
COM Visual Studio (VB, VC++), Delphi…
.Net Visual Studio (VB .NET, C#)…
C++ Visual Studio Borland C++, C++…
Arcobjects Developer Kit
Help --包含开发帮助文件 Object Model Diagrams --包括所有的PDF格式对
象模型图 Samples --包含所有示例工程文件的源代码
ArcObjects Online Exploring ArcObjects Building a Geodatabase Microsoft MSDN
ArcObjec的主要类库
ArcObjec的主要类库
ArcObjec的主要类库
开发控件
MapControl PageLayoutControl ToolBarControl TOCControl ReadControl SceneControl GlobelControl
命令和工具
COM本质上是客户/服务器模式。客户(通常是应用程 序)请求创建COM对象并通过COM对象的接口操纵COM 对象。服务器根据客户的请求创建并管理COM对象。 客户和服务器这两种角色是相对的
COM组件技术
ActiveX与ActiveX控件
ActiveX是Microsoft提出的一组基于COM (Component Object Model,组件对象模 型)规范使得软件组件在网络环境中进行 交互的技术集。它与具体的编程语言无关。
面向对象程序设计
多态性: 多态性是指相同的操作或函数、过程作用 于多种类型的对象上并获得不同的结果。 不同的对象,收到同一消息产生不同的结 果,称为对象的多态性。
重载、抽象、泛型、反射、注入
面向对象程序设计
通过继承,我们可以大幅减少多余的代码,并扩 展现有代码的用途;
我们可以在标准的模块上(这里所谓的“标准” 指程序员之间彼此达成的协议)构建我们的程序, 而不必一切从头开始。这可以减少软件开发时间 并提高生产效率;
GeoStatisticalAnalyst Geodatabase GISClient GeoDatabaseDistributed DataSourcesFile DataSourcesOleDB DataSourcesRaster Cato Location NetWorkAnalysis Controls
一个或多个ActiveX控件会保存在一个动态 链接库中,但它是一种特殊的动态链接库, 其扩展名是OCX。
ActiveX控件的组成-PME模型
一个ActiveX控件由它的一些成员组成:属 性,方法以及事件
PME 模型 Property 属性 Method方法 Event 事件
•P:属性 是用来描述和反映 对象特征的参数,用来保存对 象的数据
开发周期长,软件功能相对简单,对开发 者要求高,用于购买软件的费用相对节省
宿主开发模式
基于GIS平台软件,进行应用系统开发 多数GIS平台软件都提供了可供用户进行二次开
发的脚本语言,用户以原GIS软件为开发平台, 利用这些脚本语言,开发出自己的针对不同应用 领域的应用程序。
如ArcView中的Avenue语言,MapInfo Professional的MapBasic语言,Python语言 或则插件方式
数据隐藏的概念帮助程序员保护程序免受外部代 码的侵袭;
允许一个对象的多个实例同时存在,而且彼此之 间不会相互干扰;
面向对象程序设计
允许将问题空间中的对象直接映射到程序中; 基于对象的工程可以很容易的分割为独立的部分; 以数据为中心的设计方法允许我们抓住可实现模
型的更多细节; 面向对象的系统很容易从小到大逐步升级; 对象间通讯所使用的消息传递技术与外部系统接