基于arcobjects与vb的gis开发与应用原理研究

上传人:ldj****22 文档编号:46589455 上传时间:2018-06-27 格式:PDF 页数:12 大小:376.19KB
返回 下载 相关 举报
基于arcobjects与vb的gis开发与应用原理研究_第1页
第1页 / 共12页
基于arcobjects与vb的gis开发与应用原理研究_第2页
第2页 / 共12页
基于arcobjects与vb的gis开发与应用原理研究_第3页
第3页 / 共12页
基于arcobjects与vb的gis开发与应用原理研究_第4页
第4页 / 共12页
基于arcobjects与vb的gis开发与应用原理研究_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《基于arcobjects与vb的gis开发与应用原理研究》由会员分享,可在线阅读,更多相关《基于arcobjects与vb的gis开发与应用原理研究(12页珍藏版)》请在金锄头文库上搜索。

1、http:/ - 1 -基于基于 ArcObjects 与与 VB 的的 GIS 开发与应用原理研究开发与应用原理研究 周宁 辽宁工程技术大学测绘与地球科学学院,辽宁阜新(123000) E-mail:zhouning_ 摘摘 要:要:随着计算机技术与网络技术的发展,地理信息系统不再作为一个单独的应用领域, 而是与其它技术学科结合,被广泛应用于各个行业,在国民经济建设中发挥重要的作用。本 文 主 要 分 析 了 地 理 信 息 系 统 开 发 的 方 法 和 组 件 技 术 产 生 的 背 景 , 探 讨 了 基 于 COM(Component Object Model)、OLE(Object

2、 Linking集成化需求的发展,要求 GIS 下的应用程序不仅要能处理交互任务,同时也要能处理相关的设计与计算。而这种开发的系统不能脱离 GIS 平台软件,是解释执行的,效率不高。 (3)语言规则千差万别,增加学习开发语言的负担 每种 GIS 软件都按自己的习惯和自定义的语法规则提供二次开发环境,对于已熟悉一种开发环境的人来说,要重新学习新的开发语言,这增加了开发人员的学习负担。 2.1.3 集成式二次开发集成式二次开发 集成式二次开发是指利用专业的 GIS 工具软件(如 ArcInfo、 MapInfo 等), 实现 GIS 的基本功能,以通用软件开发工具尤其是可视化开发工具,如, Del

3、phi,Visual C+,Visual Basic,Power Builder,.net 等为开发平台,进行二者的集成开发。集成开发主要有两种方式: (1)基于 OLE/DDE 的二次开发 用软件开发工具开发前台可执行应用程序,采用 OLE(Object Linking andEmbedding,对象链接与嵌入)Automation 方式或利用 DDE 方式启动 GIS 工具软件在后台执行,利用回调(Callback)技术动态获取其返回信息,实现应用程序中的地理信息处理功能。 (2)基于 GIS 组件的二次开发 利用 GIS 工具软件生产商提供的建立在 OCX 技术基础上的 GIS 功能组件

4、(如 ESRI 的MapObjects,ArcObjects,MapInfo 的 MapX 等),采用可视化软件开发工具 Delphi,Visual C+,Visual Basic,.net 进行二次开发,直接将 GIS 功能嵌入其中,实现地理信息系统的各种功能。还可以根据需要把相关的组件进一步开发,开发出相应的控件。与 OLE Automation技术相比,利用控件开发速度快,占用资源少,而且易实现许多底层的编程和开发功能。 http:/ - 3 -由于独立开发难度太大,单纯二次开发受 GIS 工具提供的编程语言的限制差强人意,因此结合 GIS 工具软件与当今可视化开发语言的集成二次开发方式

5、是现在 GIS 应用开发的主流。它的优点是既可以充分利用 GIS 工具软件对空间数据库的管理、分析功能,又可以利用其它可视化开发语言具有的高效、方便等优点,集二者之所长,不仅能大大提高应用系统的开发效率, 而且使用可视化软件开发工具开发出来的应用程序具有更好的外观效果, 更强大的数据库功能,而且可靠性好、易于移植、便于维护。合理选择和运用现成的控件,可以减少开发者的编程工作量,使开发者避开某些应用的具体编程,直接调用控件,从而降低开发难度,缩短开发周期,提高开发效率,增强系统的灵活性和开放性,具有很强的生命力和广泛的应用前景。 2.2 组件技术组件技术 2.2.1 组件技术生产的背景组件技术生

6、产的背景 由于现在的系统应用越来越复杂,程序也越来越大,开发难度也相应增大。当形成一个新的版本并推到市场后, 如果在系统中对某个部分进行了修改或加强, 就要对整个系统代码进行全部编译和测试,最后再全部提供给用户。显然这使得对庞大软件的开发越来越困难、开发周期越来越长、维护费用也越来越高,并且使功能的扩展变的危险而难行。在面向对象的编程技术中, 不存在一种标准的框架可以使得不同的厂商创建的软件对象在同一个地址空间中进行交互操作。 正是在这种背景下, 组件化程序设计思想得以诞生并取得了很大的发展。按照组件化程序设计的思想,把复杂的系统设计成一些小的、功能单一、彼此相对独立的子系统,各个子系统之间通

7、过定义好的接口进行通信、联系。而具体的实现在子系统之间是相互透明的,也就是说对子系统而言,并不需要知道别的子系统是如何实现的。这种子系统就被称之为组件。这些组件可以单独开发、单独编译、单独调试和测试,甚至根据客户需要,出售客户所需的组件。 当所有的组件开发完成后, 把它们组合在一起就得到了完整的应用系统。 当系统的外界软硬件环境发生变化或用户的需求有所改变时, 并不需要对所有的组件进行修改,而只需要对受影响的组件进行修改,然后重新组合得到新的升级软件。这些组件模块可以运行在同一台机器上,也可以运行在不同的机器上。在理想的情况下,每台机器的运行环境可以不同,甚至可以是不同的操作系统。为了实现这样

8、的应用软件,组件程序和组件程序之间需要一些极为细致的规范, 只有组件程序遵循了这些统一的规范, 软件系统才能正常运行。 2.2.2 组件技术的相关技术组件技术的相关技术 组件技术是新一代 GIS 的重要基础,组件式 GIS(ComGIS)是面向对象技术和组件技术在 GIS 软件开发中的应用。认识组件式 GIS,首先需要了解其所依赖的技术基础组件对象模型 COM(Component Object Model)、 对象链接和嵌入 OLE(Object Linking and Embedding)和 ActiveX 控件。 1) OLE 技术 OLE(Object Linking and Embed

9、ding)的原意是对象链接与嵌入。在 OLE1.0 中组件与客户之间的通信,采用的是动态数据交换机制(DDE),由于 DDE 以 Windows 消息机制为基础,而不是基于接口技术,因此,效率低、稳定性差,使用不方便。从 OLE 2.0 开始,微软放弃了 DDE,而采用了新的 COM 模型,采用接口作为程序之间通信的标准。此后,OLE 技术不再局限于“对象链接与嵌入”,而成了桌面系统上进行程序通信的一个实用技术统称。OLEhttp:/ - 4 -具有相当复杂的技术内容,其中自动化技术概念与用户密切相关。OLE 自动化是 Windows应用程序操纵另一个程序的一种机制。OLE 2.0 提供了一种

10、方法来集成应用程序,这就是应用程序之间的命令操作。利用 OLE 2.0,程序员可以定义一组命令,使它们进入到其它程序中。这些命令可带参数,看起来很象应用程序在调用函数或过程一样。采用上述办法,可以在人不参与的情况下,就能使得两个应用程序相互作用。 2)COM 技术 COM(Component Object Model,组件对象模型)是微软公司的最高级的、包罗万象的二进制通信规范,它是组件之间互相接口的规范,是 OLE 和 ActiveX 共同的基础,其作用是使各种软件组件和应用软件能够用一种统一的标准方式进行交互。COM 不是一种面向对象的语言,而是一种二进制标准。COM 所建立的是一个软件模

11、块与另一个软件模块之间的链接,当这种链接建立之后,模块之间就可以通过接口的机制来进行通信,它有两个基本属性: (1)组件可以在二进制级别上进行集成和重用,这保证了组件独立于开发语言,甚至操作系统。 (2)组件必须按照共同的标准被独立地生产、获得和配置。与环境和上下文无关是组件封装性的体现。 COM 组件提供了一种基础性的接口,这种接口为所有以 COM 为基础的技术提供了公共函数,它通过一种与平台无关而且二进制兼容的语言 IDL (InterfaceDefine Language)来定义,通过这些接口可以实现组件与组件之间、 程序与组件以及本地组件与远程组件之间的功能调用。COM 组件、对象接口

12、、关系见图 1: 图 1 COM 组件、COM 对象、COM 接口关系图 COM 技术是继面向对象技术之后发展起来的一种新的软件工程技术,基于组件的系统仍然是一种面向对象的结构, 但系统中的对象是按照规范设计的模块, 这些定义良好的软件模块在系统中共存,并充分地相互作用。按照这种结构,可以将若干个组件组合起来,以建立更大和更复杂的系统。COM 具有以下一些基本特征: (1) COM 作为一项软件工业标准, 定义了完整的用以生成对象以及如何保证对象与其用户之间通讯的标准机制和规范。COM 规范是基于二进制的标准而不是基于语言的规范,这保证了 COM 对象可以用不同的程序语言来开发,可在不同计算机

13、系统上运行,也可由不同的高级程序语言来调用,只要这些程序语言和操作系统支持 COM 制定的二进制接口。 (2)在 COM 下,组件通过对象支持的接口来使用其提供的服务功能。一个 COM 组件可能有一个或多个 COM 对象,一个 COM 对象支持一个或多个接口,而每个接口又支持或实现若干个方法。COM 对象支持面向对象模型继承,但 COM 只支持接口继承而不支持实现继http:/ - 5 -承。因而 COM 对象不能实现直接的程序再使用,但可通过包含和聚合的方法来实现程序再使用,这主要是提高 COM 的适用性。 (3)接口不带任何版本,接口一旦公布,即不能作任何修改,若要修改接口支持的对象方法、

14、参数和语义,必须定义新的接口,赋予新的接口标识码。采用这种限制,并支持多个接口是 COM 解决版本更新的有效手段。 (4)COM 吸取了客户/服务器基本思想,一个 COM 组件就是一个服务器,可同时为多个客户提供服务,COM 组件采用计数(reference Counting)的方法控制组件对象的生存期,为多个客户共享同一个组件对象提供了有效的控制手段。 2.3 组件式组件式 GIS GIS 技术的发展,在软件模式上经历了 GIS 功能模块、集成式 GIS、模块化 GIS、核心式 GIS,从而发展到组件式 GIS 和 WebGIS 的过程。如图 2 所示。传统 GIS 虽然在功能上已经比较成熟

15、,但是这些系统多属于独立封闭的系统,同时,GIS 软件变得日益庞大,用户难以掌握,费用昂贵,阻碍了 GIS 的普及和应用。组件式 GIS 的出现为传统 GIS 面临的多种问题提供了全新的解决思路。 图 2 GIS 发展历程 组件式 GIS 的基本思想是把 GIS 的各大功能模块划分为几个控件,每个控件完成不同的功能。各个 GIS 控件之间,以及 GIS 控件与其它非 GIS 控件之间,可以方便地通过可视化的软件开发工具集成起来,形成最终的 GIS 应用。控件如同一堆各式各样的积木,他们分别实现不同的功能(包括 GIS和非 GIS功能), 根据需要把实现各种功能的“积才”搭建起来,就构成应用系统

16、。 2.3.1 组件式组件式 GIS 的特点的特点 把 GIS 的功能适当抽象,以组件形式供开发者使用,相比传统 GIS 开发方式,拥有极大的优越性: (1)小巧灵活、价格便宜 由于传统 GIS 结构的封闭性,往往使得软件本身变得越来越庞大,不同系统的交互性差, 系统的开发难度大。 在组件模型下, 各组件都集中地实现与自己最紧密相关的系统功能,http:/ - 6 -用户可以根据实际需要选择所需控件,最大限度地降低了用户的经济负担。组件化的 GIS平台集中提供空间数据管理能力, 并且能以灵活的方式与数据库系统连接。 在保证功能的前提下,系统表现得小巧灵活,而其价格仅是传统 GIS 开发工具的十分之一,甚至更少。这样,用户便能以较好的性能价格比获得或开发 GIS 应用系统。 (2)无须专门 GIS 开发语言 传统 GIS 往往具有独立的二次开发语言,对用户和应用开发者而言存

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号