您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 广告经营 > 基础地理教学软件设计开发
基础地理教学软件设计开发GIS软件是系统的核心,关系到该系统性能的优劣、功能的多少。GIS的外观表现为计算机的软硬件系统,而内涵则是由计算机程序和数字化的地理数据组成的地理实体空间信息模型。一个GIS系统往往由不同的软件、硬件组成,不同GIS软件产品有不同的特点,用户需要充分了解各种产品的优点,构建自己的GIS开发环境。.1GIS软件产品开发模式目前,GIS软件开发面临的主要问题是成本高,开发周期长,远远跟不上计算机硬件的迅速发展。到目前为止,世界各国已设计出大量实用化的地理信息系统软件,比较著名的有美国环境系统研究所(ESRI)的ARC/INFO和ArcView,美国Mapinfo公司开发的Mapinfo,澳大利亚GENASYS公司开发的GENAMAP,北京超图开发的SuperMapGIS,中国地质大学开发的MAPGIS,原武汉测绘科技大学开发的GeoStar,北京大学遥感与地理信息系统研究所开发的CityStar等。.1.1GIS软件主要模块GIS软件工具一般包括如下主要部分或模块。(1)空间数据库管理系统它是GIS软件工具的核心部分,统一管理属性和空间数据,具有初始化、输入、更新、删除、检查、变换、量测、维护等功能,并为其它模块提供基本图形图像支持工具和接口。(2)图形图像处理系统该系统不仅要包括通用图形处理功能,如图形数据输入、编辑、构建拓扑关系、地图整饰、图幅接边等,而且还应具有图像处理功能,如几何纠正、滤波、边缘提取、图像分类等。图形图像系统应作为一个整体,处于同一界面之下,以实现GIS和遥感的完全结合。(3)空间数据分析系统空间数据的处理、分析是GIS软件的又一重要内容和特色所在。关于空间数据分析,可分为三个不同的层次:一是简单的空间查询、空间叠加,如缓冲区分析、网络通路、资源分配、多边形叠加等;二是空间格局的关系及其描述,如空间目标的聚散度分析;三是空间模拟,如空间过程机理、空间动态模型、预测空间格局的发展变化等。由于GIS技术应用目标的复杂性、计算机发展水平的限制,以及人们对空间统计分析理论和技术方法的掌握还不够,空间统计的技术方法,如破碎度、离散度、优势度等特征值表达,自相关、遥相关等相关方法,趋势面分析等空间过程,以及点模式、空间统计插值、空间推理等方法,在GIS中还没有被很好地应用。在空间分析系统方面内容丰富,任务也很艰巨。(4)输入输出支持系统该系统应能实现常用GIS数据格式间的转换,能够支持多种形式的数据输入,如文本、数字、矢量和网格图形数据的输入。在输出功能方面,应具有文本、表格、图形和图像等多种形式数据的输出功能,包括点阵打印、矢量绘图仪、栅格绘图仪,以及自动分色排版等。.1.2GIS开发方式选择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等为开发平台,进行二者的集成开发。集成二次开发目前主要有两种方式:OLE/DDE:采用OLEAutomation技术或利用DDE技术,用软件开发工具开发前台可执行应用程序,以OLE自动化方式或DDE方式启动GIS工具软件在后台执行,利用回调技术动态获取其返回信息,实现应用程序中的地理信息处理功能;GIS控件:利用GIS工具软件生产厂家提供的建立在OCX技术基础上的GIS功能控件,如ESRI的MapObjects、MapInfo公司的MapX等,在Delphi等编程工具编制的应用程序中,直接将GIS功能嵌入其中,实现地理信息系统的各种功能。.1.3三种实现方式的分析与比较由于独立开发难度太大,单纯二次开发受GIS工具提供的编程语言的限制差强人意,因此结合GIS工具软件与当今可视化开发语言的集成二次开发方式就成为GIS应用开发的主流。它的优点是既可以充分利用GIS工具软件对空间数据库的管理、分析功能,又可以利用其它可视化开发语言具有的高效、方便等编程优点,集二者之所长,不仅能大大提高应用系统的开发效率,而且使用可视化软件开发工具开发出来的应用程序具有更好的外观效果,更强大的数据库功能,而且可靠性好、易于移植、便于维护。尤其是使用OCX技术利用GIS功能组件进行集成开发,更能表现出这些优势。由于上述优点,集成二次开发正成为应用GIS开发的主流方向。这种方法唯一的缺点是前期投入比较大,需要同时购买GIS工具软件和可视化编程软件,但“工欲善其事,必先利其器”,这种投资值得。目前许多软件公司都开发了很多ActiveX控件,合理选择和运用现成的控件,减少了开发者的编程工作量,使开发者避开某些应用的具体编程,直接调用控件,实现这些具体应用,不仅可以缩短程序开发周期,使编程过程更简洁,用户界面更友好,可以使程序更加灵活、简便。与利用OLEAutomation技术作为服务器的MapInfo相比,利用控件开发速度快,占用资源少,而且易实现许多底层的编程和开发功能。.2组件式GIS开发.2.1组件式GIS的发展GIS技术的发展,在软件模式上经历了功能模块、包式软件、核心式软件,从而发展到组件式GIS和WebGIS的过程。传统GIS虽然在功能上已经比较成熟,但是由于这些系统多是基于十多年前的软件技术开发的,属于独立封闭的系统。同时,GIS软件变得日益庞大,用户难以掌握,费用昂贵,阻碍了GIS的普及和应用。组件式GIS的出现为传统GIS面临的多种问题提供了全新的解决思路。组件式软件是新一代GIS的重要基础,组件式GIS是面向对象技术和组件式软件在GIS软件开发中的应用。组件式GIS的基本思想是把GIS的各大功能模块划分为几个控件,每个控件完成不同的功能。各个GIS控件之间,以及GIS控件与其它非GIS控件之间,可以方便地通过可视化的软件开发工具集成起来,形成最终的GIS应用。控件如同一堆各式各样的积木,他们分别实现不同的功能(包括GIS和非GIS功能),根据需要把实现各种功能的“积木”搭建起来,就构成应用系统。GIS组件是可独立开发和交付的软件单位或系统平台,其存在目的是向外界应用框架、其他组件或最终用户提供GIS数据显示、分析、处理等GIS专业服务。可独立开发的GIS组件具有可模块化的特点,并且它还包含了开发过程中的每个阶段性成果。这样的GIS组件可以被独立地设计和实现,能在必要时依据这些信息对外界环境作恰当的反映或通过接口向外界提供这些信息,必须遵循标准化的组件连接机制,并尽可能地对外隐藏设计和实现的细节,通过接口与外界交互来实现信息屏蔽的目的。.2.2组件式GIS的特点组件式GIS是指在某种GIS组件支持的平台上,利用该平台的组件开发语言,根据组件提供的接口与专业应用系统集成的系统,或者在GIS组件系统平台上按照某种协议嵌入专业应用软件进行二次开发而成的系统。把GIS的功能适当抽象,以组件形式供开发者使用,将会带来许多传统GIS工具无法比拟的优点:(1)小巧灵活、价格便宜在组件模型下,各组件都集中地实现与自己最紧密相关的系统功能。组件化的GIS平台集中提供空间数据管理能力,并且能以灵活的方式与数据库系统连接。在保证功能的前提下,系统表现得小巧灵活,而其价格仅是传统GIS开发工具的十分之一,甚至更少。这样,用户便能以较好的性能价格比获得或开发GIS应用系统。(2)可复用性它是组件式软件最基本的特性,也是组件技术和GIS技术相结合的最初驱动力。与传统的复用技术代码段复用、类复用等相比,组件的复用更注重于大范围的软件复用和软件复用的容易程度。而对于GIS软件组件的复用还应着眼于和其他非计算机领域结合的专业应用领域中的组件复用。(3)可封装性封装的目的不仅是为了隐藏设计和实现细节,使组件对外呈现相对独立的实体,而对于组件使用者来说,封装还意味着提高组件复用的容易程度。对于GIS这样复杂的专业应用更需要重视。(4)可定制性指组件在组装过程中随组装环境的不同而做出适当的调整。由于GIS必须和专业应用结合才能发挥其潜在的功能,因此绝大部分GIS组件在开发的过程中必须考虑其方便的可定制性,这是开发的难点之一。(5)直接嵌入MIS开发工具组件的生产建立在严格的标准之上,因此,凡符合标准的组件都可以在目前流行的各种开发工具上使用。这样,Eclipse,RealBasic、VB、VC、Delphi、PowerBuilder、LotusNotes、VS.net等都可直接成为GIS或GMIS的优秀开发工具,它们各自的优点都能够得到充分发挥。这与传统GIS专门性开发环境相比,是一种质的飞跃。(6)强大的GIS功能新的GIS组件都是基于32位系统平台的,采用进程内直接调用形式,所以无论是管理大数据的能力还是处理速度方面均不比传统GIS软件逊色。小小的GIS组件完全能提供拼接、裁剪、叠合、缓冲区等空间处理能力和丰富的空间查询与分析能力。(7)开发简捷与无缝集成由于GIS组件可以直接嵌入MIS开发工具中,对于广大开发人员来讲,就可以自由选用他们熟悉的开发工具。而且,GIS组件提供的API形式非常接近MIS工具的模式,开发人员可以像管理数据库表一样熟练地管理地图等空间数据,无须对开发人员进行特殊的培训。在GIS或GMIS的开发过程中,开发人员的素质与熟练程度是十分重要的因素。这将使大量的MIS开发人员能够较快地过渡到GIS或GMIS的开发工作中,从而大大加速GIS的发展。.2.3组件式GIS开发平台的结构组件式GIS开发平台通常可设计为三级结构:基础组件:面向空间数据管理,提供基本的交互过程,并能以灵活的方式与数据库系统连接;高级通用组件:由基础组件构造而成,面向通用功能,简化用户开发过程,如显示工具组件、选择工具组件、编辑工具组件、属性浏览器组件等等。它们之间的协同控制消息都被封装起来。这级组件经过封装后,使二次开发更为简单。如一个编辑查询系统,若用基础平台开发,需要编写大量的代码,而利用高级通用组件,只需几句程序就够了。面向通用功能;行业性组件:抽象出行业应用的特定算法,固化到组件中,进一步加速开发过程。以GPS监控为例。对于GPS应用,除了需要地图显示、信息查询等一般的GIS功能外,还需要特定的应用功能,如动态目标显示、目标锁定、轨迹显示等。这些GPS行业性应用功能组件被封装起来后,开发者的工作就可简化为设置显示目标的图例、轨迹显示的颜色、锁定的目标,以及调用、接受数据的方法等。.2.4GIS组件的构成GIS软件的模型包含若干功能单元,诸如空间数据获取、坐标转换、图形编辑、数据存储、数据查询、数据分析、制图表示等。可以想象要把这些所有的功能放在一个控件中几乎是不可能的,即使实现也会带来系统效率上的低下。一般可以认为GIS构件的设计主要遵循应用领域地需求。例如ESRI地MapObjects就
本文标题:基础地理教学软件设计开发
链接地址:https://www.777doc.com/doc-4758571 .html