王朝百科
分享
 
 
 

组件式GIS

王朝百科·作者佚名  2009-11-11  
宽屏版  字体: |||超大  

组件式软件技术已经成为当今软件技术的潮流之一,为了适应这种技术潮流,GIS软件象其他软件一样,已经或正在发生着革命性的变化,即由过去厂家提供了全部系统或者具有二次开发功能的软件,过渡到提供组件由用户自己再开发的方向上来。无疑,组件式GIS技术将给整个GIS技术体系和应用模式带来巨大影响。

GIS技术的发展,在软件模式上经历了功能模块、包式软件、核心式软件,从而发展到组件式GIS和WebGIS的过程。传统GIS虽然在功能上已经比较成熟,但是由于这些系统多是基于十多年前的软件技术开发的,属于独立封闭的系统。同时,GIS软件变得日益庞大,用户难以掌握,费用昂贵,阻碍了GIS的普及和应用。组件式GIS的出现为传统GIS面临的多种问题提供了全新的解决思路。

组件式GIS的基本思想是把GIS的各大功能模块划分为几个控件,每个控件完成不同的功能。各个GIS控件之间,以及GIS控件与其它非GIS控件之间,可以方便地通过可视化的软件开发工具集成起来,形成最终的GIS应用。控件如同一堆各式各样的积木,他们分别实现不同的功能(包括GIS和非GIS功能),根据需要把实现各种功能的 “积木”搭建起来,就构成应用系统。

1、组件式GIS系统的特点

把GIS的功能适当抽象,以组件形式供开发者使用,将会带来许多传统GIS工具无法比拟的优点。

(1)、 小巧灵活、价格便宜

由于传统GIS结构的封闭性,往往使得软件本身变得越来越庞大,不同系统的交互性差,系统的开发难度大。在组件模型下,各组件都集中地实现与自己最紧密相关的系统功能,用户可以根据实际需要选择所需控件,最大限度地降低了用户的经济负担。。组件化的GIS平台集中提供空间数据管理能力,并且能以灵活的方式与数据库系统连接。在保证功能的前提下,系统表现得小巧灵活,而其价格仅是传统GIS开发工具的十分之一,甚至更少。这样,用户便能以较好的性能价格比获得或开发GIS应用系统。

(2)、 无须专门GIS开发语言,直接嵌入MIS开发工具

传统GIS往往具有独立的二次开发语言,对用户和应用开发者而言存在学习上的负担。而且使用系统所提供的二次开发语言,开发往往受到限制,难以处理复杂问题。而组件式GIS建立在严格的标准之上,不需要额外的GIS二次开发语言,只需实现GIS的基本功能函数,按照Microsoft的ActiveX控件标准开发接口。这有利于减轻GIS软件开发者的负担,而且增强了GIS软件的可扩展性。GIS应用开发者,不必掌握额外的GIS开发语言,只需熟悉基于Windows平台的通用集成开发环境,以及GIS各个控件的属性、方法和事件,就可以完成应用系统的开发和集成。目前,可供选择的开发环境很多,如Visual C++、Visual Basic、Visual FoxPro、Borland C++、Delphi、C++ Builder以及Power Builder等都可直接成为GIS或GMIS的优秀开发工具,它们各自的优点都能够得到充分发挥。这与传统GIS专门性开发环境相比,是一种质的飞跃。

(3)、 强大的GIS功能

新的GIS组件都是基于32位系统平台的,采用InProc直接调用形式,所以无论是管理大数据的能力还是处理速度方面均不比传统GIS软件逊色。小小的GIS组件完全能提供拼接、裁剪、叠合、缓冲区等空间处理能力和丰富的空间查询与分析能力。

(4)、 开发简捷

由于GIS组件可以直接嵌入MIS开发工具中,对于广大开发人员来讲,就可以自由选用他们熟悉的开发工具。而且,GIS组件提供的API形式非常接近MIS工具的模式,开发人员可以像管理数据库表一样熟练地管理地图等空间数据,无须对开发人员进行特殊的培训。在GIS或GMIS的开发过程中,开发人员的素质与熟练程度是十分重要的因素。这将使大量的MIS开发人员能够较快地过渡到GIS或GMIS的开发工作中,从而大大加速GIS的发展。

(5)、 更加大众化

组件式技术已经成为业界标准,用户可以象使用其他ActiveX控件一样使用GIS控件,使非专业的普通用户也能够开发和集成GIS应用系统,推动了GIS大众化进程。组件式GIS 的出现使GIS不仅是专家们的专业分析工具,同时也成为普通用户对地理相关数据进行管理的的可视化工具。

2、组件式GIS开发平台的结构

组件式GIS开发平台通常可设计为三级结构:

(1) 基础组件

面向空间数据管理,提供基本的交互过程,并能以灵活的方式与数据库系统连接;

(2)高级通用组件

由基础组件构造而成,面向通用功能,简化用户开发过程,如显示工具组件、选择工具组件、编辑工具组件、属性浏览器组件等等。它们之间的协同控制消息都被封装起来。这级组件经过封装后,使二次开发更为简单。如一个编辑查询系统,若用基础平台开发,需要编写大量的代码,而利用高级通用组件,只需几句程序就够了。面向通用功能;

(3)行业性组件

抽象出行业应用的特定算法,固化到组件中,进一步加速开发过程。以GPS监控为例。对于GPS应用,除了需要地图显示、信息查询等一般的GIS功能外,还需要特定的应用功能,如动态目标显示、目标锁定、轨迹显示等。这些GPS行业性应用功能组件被封装起来后,开发者的工作就可简化为设置显示目标的图例、轨迹显示的颜色、锁定的目标,以及调用、接受数据的方法等。

3、组件式GIS的构成

GIS软件的模型包含若干功能单元,诸如空间数据获取、坐标转换、图形编辑、数据存储、数据查询、数据分析、制图表示等。可以想象要把这些所有的功能放在一个控件中几乎是不可能的,即使实现也会带来系统效率上的低下。一般可以认为GIS构件的设计主要遵循应用领域地需求。

4、GIS组件与组件式GIS产品

GIS组件和组件式GIS是有区别的两个概念,GIS组件指实现GIS某部分功能的软件组件,而组件式GIS是指由一些列各自完成不同功能的GIS组件群构成的一个整体,这些组件既可以集成在一起使用,更能拆开使用。

有时我们也把初级的只有一个控件的组件式GIS成为GIS组件,如MapObjects和MapX就是20世纪九十年到中后期推出的最著名的GIS组件产品,其中MapObjects由ESRI推出,MapX由MapInfo公司推出。这两个产品的共同特点都是只包含GIS的基本功能,属于入门级组件式GIS产品。

2000年前后,ESRI推出的ArcObjects和超图推出的SuperMap Objects把组件式GIS平台发展到一个新的阶段,庞大的GIS组件群包含了从数据管理、格式转换、地图编辑、排版制图、网络分析、叠加分析、缓冲区分析、栅格分析、二维可视化、三维可视化等GIS的几乎全部功能,并引领了此后将近十年的GIS二次开发方式。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如何用java替换看不见的字符比如零宽空格​十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
感谢员工的付出和激励的话怎么说?
 干货   2023-06-18
 
>>返回首页<<
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有