290 likes | 504 Views
地理信息系统 ( 资环 ). 2007.8.20. 授课教师 : 刘 晓. 第 5 章 GIS 二次开发概述. 5.1 GIS 开发模式 5.2 面向对象程序设计 (OOP) 5.3 组件 GIS 技术. GIS 软件类型. 主要指软件包: Mapinfo 、 ArcGIS 、 ArcView. 工具型 GIS. GIS. 区域型 GIS 专题型 GIS. 应用型 GIS. 与应用领域结合形成的系统: 长江流域基础地理信息系统 XX 公司物流配送系统 南宁市综合管线地理信息系统. 5.1 GIS 开发模式. 独立开发模式
E N D
地理信息系统(资环) 2007.8.20 授课教师: 刘 晓
第5章GIS 二次开发概述 • 5.1 GIS 开发模式 • 5.2 面向对象程序设计(OOP) • 5.3 组件GIS技术
GIS 软件类型 主要指软件包: Mapinfo、ArcGIS、ArcView 工具型GIS GIS 区域型GIS 专题型GIS 应用型GIS 与应用领域结合形成的系统: 长江流域基础地理信息系统 XX公司物流配送系统 南宁市综合管线地理信息系统
5.1 GIS开发模式 • 独立开发模式 • 宿主型开发模式 • 组件式GIS开发模式
独立开发模式 • 不依赖于任何GIS工具软件 • 所有的算法都由开发者独立设计 • 选用底层程序设计语言 • 开发周期长,软件功能相对简单,对开发者要求高, • 具有自主知识产权
宿主型开发模式 • 基于GIS平台软件,进行应用系统开发 • 开发较为容易 • 二次开发的脚本语言,功能较弱 • 所开发的系统不能脱离GIS平台 • 是解释执行的,运行效率低 • 用户界面受平台软件的限制
组件式GIS开发模式 • 建立在组件技术基础上的GIS功能组件,实现了地理信息系统的各种功能 • 成本低,开发要求低,语言简单,系统可实现无缝集成
GIS开发模式的选择 • 独立开发难度太大 • 宿主型二次开发受GIS平台所提供的脚本语言的限制 • 组件式GIS开发模式结合了GIS平台软件与可视化开发平台的组件开发模式的优点。
5.2 面向对象程序设计(OOP)Object Oriented Programming 软件开发模式的演变和发展
OOP将问题分解为一系列实体——这些实体被称为对象(object),然后围绕这些实体建立数据和函数OOP将问题分解为一系列实体——这些实体被称为对象(object),然后围绕这些实体建立数据和函数
核心概念:对象 • 在一个面向对象的系统中:对象是运行期的基本实体。它可以用来表示一个人或者说一个银行帐户,一张数据表格,或者其它什么需要被程序处理的东西。在面向对象程序设计中,问题的分析一般以对象及对象间的自然联系为依据。对象在内存中占有一定空间,并且具有一个与之关联的地址。
核心概念:类 • 类是用户定义的数据类型,但在一个程序设计语言中,它和内建的数据类型行为相同。比如创建一个类对象的语法和创建一个整数对象的语法相同的。如果Fruit被定义为一个类,那么语句 Fruit apple; 就创建了一个Fruit类的对象apple
OOP的优点 • 通过继承,我们可以大幅减少多余的代码,并扩展现有代码的用途; • 我们可以在标准的模块上构建我们的程序,而不必一切从头开始。这可以减少软件开发时间并提高生产效率; • 数据隐藏的概念帮助程序员保护程序免受外部代码的侵袭; • 允许一个对象的多个实例同时存在,而且彼此之间不会相互干扰;
5.3组件式GIS(ComGIS) • 组件技术 • 组件式GIS
5.3.1 组件技术 经典、规范的计算方法和程序代码作为一种技术积累继承和流传,具有重要的意义 编程序最好是用已有的经过验证了的代码 代码重用 • 循环 • 过程(子程序) • 宏代换 • 函数 要考虑一种方法,将已有的实现各种功能的代码重用 大型软件或信息系统中可以使用函数库、方法库、模型库等
COM 为解决更为复杂的软件复用和互操作问题,微软提出了COM/DCOM标准。 COM只是一种标准,只要遵守该标准,即可跨语言甚至跨计算机相互调用 COM:组件对象模型 (Component Object Model) 是一种二进制标准,允许对象之间跨进程、跨计算机调用。
不用知道代码就能使用别人编写好的程序功能。编程轻松多了!不用知道代码就能使用别人编写好的程序功能。编程轻松多了! • 基于COM/DCOM,微软推出了ActiveX技术,可以使软件组件在网络环境中进行操作 可以通过网络调用别人编写好的程序功能。 功能强大多了! 我也可以编写组件,即为别人提供服务,又保护我的源代码。
运用COM技术,增强了软件互操作性,实现了很多功能运用COM技术,增强了软件互操作性,实现了很多功能 在Word中可以插入并编辑Excel图表 基于COM 技术 校园办公系统 网络插件
运用组件技术,编写程序过程发生了巨大的变化运用组件技术,编写程序过程发生了巨大的变化 • 所有程序界面元素,如按纽、文本框、输入输出设置都可以通过控件实现 • 各种专业功能,可以使用专业控件实现
概念:组件 组件(Component)也称“控件”(controller),是具有某种特定功能,能独立于应用程序而独立存在,具有与外部程序或其他组件相链接的标准接口,可以用来组装或构建其他程序单元的二进制模块
5.3.2组件式GIS 概念: GIS组件 遵循COM接口,具有GIS空间信息处理功能,用于进行二次开发的二进制模块。这种特定的组件称为GIS组件
打个比方 发动机来自A公司 生产汽车: 轮胎来自B公司 其他设备来自C公司 生产的过程就是将各个部件安装、调试 各个部件的设计、性能优化、质量控制,交给其他厂家完成,汽车生产商并不直接参与
运用组件式GIS进行开发 运用组件技术开发GIS应用系统: 用户界面使用VB开发 空间数据管理与处理使用GIS组件实现 土地资源评价与管理信息系统 其他功能也可以使用相应组件实现 在可视化编程环境下,使用相应GIS组件产品,实现GIS功能。 GIS组件的设计、实现、对数据的处理、空间图形的显示等,无须考虑。
组件式GIS系统的特点 • 小巧灵活、价格便宜 • 开发简捷 • 大众化
组件GIS的不足 • 与专业的GIS客户端软件相比,采用构件技术不可避免的带来效率上的相对低下,这在访问超大空间数据(如大数据量的遥感图象)的时候表现得尤为明显; • 支持的空间数据量有限; • 支持的功能有限,由于是构件,只覆盖了GIS系统的部分功能,于是对于特殊领域,它就显得无能为力;
GIS组件产品 • GIS组件的代表作应首推MapObjects以及MapX。其中MapObjects由全球最大的GIS厂商ESRI(美国环境系统研究所)推出;MapX由著名的桌面GIS厂商美国MapInfo公司推出。
本章回顾 • GIS的三种开发模式 • 基本概念:类与对象 • 什么是组件式GIS,其功能及特点
课后作业: • 通过网络查找常用组件式GIS产品 • 预习试验课内容