当前位置:文档之家› 地理信息系统开发概述

地理信息系统开发概述

地理信息系统开发概述:地理信息系统具有很强的功能,具有很多方面的应用,它的开发是一个大型的系统工程,它的实践也是不断地应用实践——提高——再实践——再提高的螺旋式迂迥上升过程。

一般讲来,它的开发过程分4个大的阶段,各阶段中间又有各种小的过程总体上看,地理信息系统目前尚没有从自己学科总结和完善出来的开发方法,而基本上引入和借鉴了管理信息系统和软件工程的生命周期法、原型法、自底向上法及面向对象法,现分别予以介绍,并且也介绍近年来对开发方法新的研究“演示和讨论方法”。

不管采用哪种方法开发抖应该按照软件工程学的要求来进行,因此在下面的方法介绍中,将不再重复软件工程的思想,而是把重点放在每种方法的具体特点上。

1、结构化生命周期法:这儿所谓“结构化”就是有组织、有计划和有规律的一种安排。

而结构化系统分析方法就是利用系统工程分析和有关概念,采用自上而下划分模块,逐步求精的基本方法。

这一方法最大缺点是用户对即将建立的新系统没有直观的预见性。

2、由底而上法:它是从现行的业务现状出发,先实现一个具体的初级功能,然后由低到高,增加计划,控制、决策等功能,实现总目标。

这样各项目独立进行,很少考虑相互配合,出现“只见树木,不见森林”的现象。

此方法缺乏系统性,缺点很大,只能进行个别的独立应用,应避免用此方法进行地理信息系统的开发。

3、快速原型方法:所谓“原型”是一个系统的工作模型,此模型强调系统的某些特定方面。

此方法主要特点是:开发人只在初步了解用户需求基础上构造一个应用模型系统,即原型。

用户和开发人员在此基础上共同反复探讨和完善原型,直到用户满意。

此方法自始至终,强调用户直接参加,不断进行评价原型,提出要求。

因此可以尽早获得更完整、更确切的需求和设计。

但是这一方法必须要有“原型”。

4、面向对象的软件开发方法:这一方法是随着“面向对象的程序设计(OOP)”而发展起来的。

面向对象建模技术采用对象模型、动态模型和功能模型来描述一个系统。

5、“演示和讨论”方法:DADM是英文Demonstration And Discussion Method的缩写,中文释义“演示讨论法”。

它要求在软件开发过程的各个阶段,在所有相关人员之间进行有效的沟通与交流。

这种交流是建立在直观演示的基础上的,演示内容主要包括直观的图表工具和输入、输出界面等。

小结上述多种开发方法,实际上都是在开发各种系统和软件使用过的,都有其相应优点和缺点。

开发是一周期较长,内容广泛,情况复杂的大型系统过程。

因此,根据实际情况,扬长避短,灵活使用最适合的方法是一个跟本原则。

显然,上述各种方法都不是一成不变的,其中“演示和讨论”方法,实际上还不能算一种独立的开发方法,只是一种沟通和交流的方式,各方法都能用。

因此,目前建议采用方法是:1.树立以系统结构化开发的总观念2.尽量采用最接近用户要求的现有自主产权GIS系统作为原型系统,可视性好、功能强的各种类型的电子地图集系统也可作为一个普通的可选的原型;或者采用选择其它的原型,采用组件技术进行扩充;3.当没有原型系统时,采用结构化生命周期结构制原型;4.采用快速原型方法进行实际工作,运用“演示和讨论”的可视化工作方式,尽量采用组件技术进行扩充。

以上方法总括而言就是:树立结构化分析思想,充分运用“演示和讨论”方式,尽量采用组件技术进行扩充,按照快速原型方法工作。

应用型GIS开发有多种方式可供选择:1.独立开发指不依赖于任何GIS工具软件,从空间数据的采集、编辑到数据的处理分析及结果输出,所有的算法都由开发者独立设计,然后选用某种程序设计语言,如VisualC++、Delphi等,在一定的操作系统平台上编程实现。

这种方式的好处在于无须依赖任何商业GIS工具软件,减少了开发成本,但一方面对于大多数开发者来说,能力、时间、财力方面的限制使其开发出来的产品很难在功能上与商业化GIS工具软件相比,而且在购买GIS工具软件上省下的钱可能还抵不上开发者在开发过程中绞尽脑汁所花的代价。

2.单纯二次开发指完全借助于GIS工具软件提供的开发语言进行应用系统开发。

GIS工具软件大多提供了可供用户进行二次开发的宏语言,如ESRI的ArcView提供了Avenue语言,MapInfo公司研制的MapInfoProfessional提供了MapBasic语言等等。

用户可以利用这些宏语言,以原GIS工具软件为开发平台,开发出自己的针对不同应用对象的应用程序。

这种方式省时省心,但进行二次开发的宏语言,作为编程语言只能算是二流,功能极弱,用它们来开发应用程序仍然不尽如人意。

3.集成二次开发集成二次开发是指利用专业的GIS工具软件,如ArcView、MapInfo等,实现GIS的基本功能,以通用软件开发工具尤其是可视化开发工具,如Delphi、VisualC++、VisualBasic、PowerBuilder等为开发平台,进行二者的集成开发。

集成二次开发目前主要有两种方式:(1)OLE DDE采用OLEAutomation技术或利用DDE技术,用软件开发工具开发前台可执行应用程序,以OLE自动化方式或DDE方式启动GIS工具软件在后台执行,利用回调技术动态获取其返回信息,实现应用程序中的地理信息处理功能;(2)GIS控件利用GIS工具软件生产厂家提供的建立在OCX技术基础上的GIS功能控件,如ESRI的MapObjects、MapInfo公司的MapX等,在Delphi等编程工具编制的应用程序中,直接将GIS功能嵌入其中,实现地理信息系统的各种功能。

应用GIS开发的主流方向由于独立开发难度太大,单纯二次开发受GIS工具提供的编程语言的限制差强人意,因此结合GIS工具软件与当今可视化开发语言的集成二次开发方式就成为GIS应用开发的主流。

它的优点是既可以充分利用GIS工具软件对空间数据库的管理、分析功能,又可以利用其它可视化开发语言具有的高效、方便等编程优点,集二者之所长,不仅能大大提高应用系统的开发效率,而且使用可视化软件开发工具开发出来的应用程序具有更好的外观效果,更强大的数据库功能,而且可靠性好、易于移植、便于维护。

尤其是使用OCX技术利用GIS功能组件进行集成开发,更能表现出这些优势。

这种方法唯一的缺点是前期投入比较大,需要同时购买GIS工具软件和可视化编程软件。

GIS 二次开发概述地理信息系统根据其内容可分为两大基本类型:一是应用型地理信息系统,以某一专业、领域或工作为主要内容,包括专题地理信息系统和区域综合地理信息系统;二是工具型地理信息系统,也就是GIS 工具软件包,如ARC/INFO 等,具有空间数据输入、存储、处理、分析和输出等GIS 基本功能。

随着地理信息系统应用领域的扩展,应用型GIS 的开发工作日显重要。

如何针对不同的应用目标,高效地开发出既合乎需要又具有方便美观丰富的界面形式的地理信息系统,是GIS 开发者非常关心的问题。

一. GIS 开发模式独立开发:指不依赖于任何GIS 工具软件,从空间数据的采集、编辑到数据的处理分析及结果输出,所有的算法都由开发者独立设计,然后选用某种程序设计语言,如Visual C++、Delphi 等,在一定的操作系统平台上编程实现。

这种方式的好处在于无须依赖任何商业GIS 工具软件,减少了开发成本,但一方面对于大多数开发者来说,能力、时间、财力方面的限制使其开发出来的产品很难在功能上与商业化GIS 工具软件相比,而且在购买GIS 工具软件上省下的钱可能还抵不上开发者在开发过程中绞尽脑汁所花的代价。

宿主型二次开发:指基于GIS 平台软件上进行应用系统开发。

大多数GIS 平台软件都提供了可供用户进行二次开发的脚本语言,如ESRI 的ArcView 提供了Avenue 语言,MapInfo 公司的MapInfo Professional提供了MapBasic 语言等等。

用户可以利用这些脚本语言,以原GIS 软件为开发平台,开发出自己的针对不同应用对象的应用程序。

这种方式省时省心,但进行二次开发的脚本语言,作为编程语言,功能极弱,用它们来开发应用程序仍然不尽如人意,并且所开发的系统不能脱离GIS 平台软件,是解释执行的,效率不高。

基于GIS 组件的二次开发:大多数GIS 软件产商都提供商业化的GIS 组件,如ESRI 公司的MapObjects、MapInfo 公司的MapX等,这些组件都具备GIS 的基本功能,开发人员可以基于通用软件开发工具尤其是可视化开发工具,如Delphi、Visual C++、Visual Basic、Power Builder 等为开发平台,进行二次开发。

利用GIS 工具软件生产厂家提供的建立在OCX 技术基础上的GIS 功能控件,如ESRI 的MapObjects、MapInfo 公司的MapX等,在Delphi 等编程工具编制的应用程序中,直接将GIS 功能嵌入其中,实现地理信息系统的各种功能三种实现方式的分析与比较:由于独立开发难度太大,单纯二次开发受GIS 工具提供的编程语言的限制差强人意,因此结合GIS 工具软件与当今可视化开发语言的集成二次开发方式就成为GIS 应用开发的主流。

它的优点是既可以充分利用GIS 工具软件对空间数据库的管理、分析功能,又可以利用其它可视化开发语言具有的高效、方便等编程优点,集二者之所长,不仅能大大提高应用系统的开发效率,而且使用可视化软件开发工具开发出来的应用程序具有更好的外观效果,更强大的数据库功能,而且可靠性好、易于移植、便于维护。

尤其是使用OCX 技术利用GIS 功能组件进行集成开发,更能表现出这些优势。

由于上述优点,集成二次开发正成为应用GIS 开发的主流方向。

这种方法唯一的缺点是前期投入比较大,需要同时购买GIS 工具软件和可视化编程软件,但“工欲善其事,必先利其器”,这种投资值得。

目前许多软件公司都开发了很多ActiveX 控件,合理选择和运用现成的控件,减少了开发者的编程工作量,使开发者避开某些应用的具体编程,直接调用控件,实现这些具体应用,不仅可以缩短程序开发周期,使编程过程更简洁,用户界面更友好,可以使程序更加灵活、简便。

二.面向对象的开发(OOP: Object Oriented Programming)1、面向对象程序设计模式发明面向对象程序设计方法的主要出发点是弥补面向过程程序设计方法中的一些缺点。

OOP 把数据看作程序开发中的基本元素,并且不允许它们在系统中自由流动。

它将数据和操作这些数据的函数紧密的连结在一起,并保护数据不会被外界的函数意外的改变。

OOP 允许我们将问题分解为一系列实体——这些实体被称为对象(object),然后围绕这些实体建立数据和函数。

面向对象程序设计中的数据和函数的组织结构如图4 所示。

相关主题