GIS开发方式选择——MapX核心技术剖析(一)
来源:互联网 发布:尼康镜头调焦软件 编辑:程序博客网 时间:2024/04/28 12:10
第一章 GIS开发方式选择
地理信息系统根据其内容可分为两大基本类型:一是应用型地理信息系统,以某一专业、领域或工作为主要内容,包括专题地理信息系统和区域综合地理信息系统;二是工具型地理信息系统,也就是GIS工具软件包,如ARC/INFO等,具有空间数据输入、存储、处理、分析和输出等GIS基本功能。随着地理信息系统应用领域的扩展,应用型GIS的开发工作日显重要。如何针对不同的应用目标,高效地开发出既合乎需要又具有方便美观丰富的界面形式的地理信息系统,是GIS开发者非常关心的问题。
本课题的目标是在“世行项目管理”中实现地图功能,正是应用型GIS的开发。在开发初期,最主要的工作就是要确定下来实现方式。应用型GIS开发有多种方式可供选择。
一、 应用型GIS开发的三种实现方式
独立开发
指不依赖于任何GIS工具软件,从空间数据的采集、编辑到数据的处理分析及结果输出,所有的算法都由开发者独立设计,然后选用某种程序设计语言,如Visual C++、Delphi等,在一定的操作系统平台上编程实现。这种方式的好处在于无须依赖任何商业GIS工具软件,减少了开发成本,但一方面对于大多数开发者来说,能力、时间、财力方面的限制使其开发出来的产品很难在功能上与商业化GIS工具软件相比,而且在购买GIS工具软件上省下的钱可能还抵不上开发者在开发过程中绞尽脑汁所花的代价。
单纯二次开发
指完全借助于GIS工具软件提供的开发语言进行应用系统开发。GIS工具软件大多提供了可供用户进行二次开发的宏语言,如ESRI的ArcView提供了Avenue语言,MapInfo公司研制的MapInfo Professional提供了MapBasic语言等等。用户可以利用这些宏语言,以原GIS工具软件为开发平台,开发出自己的针对不同应用对象的应用程序。这种方式省时省心,但进行二次开发的宏语言,作为编程语言只能算是二流,功能极弱,用它们来开发应用程序仍然不尽如人意。
集成二次开发
集成二次开发是指利用专业的GIS工具软件,如ArcView、MapInfo等,实现GIS的基本功能,以通用软件开发工具尤其是可视化开发工具,如Delphi、Visual C++、Visual Basic、Power Builder等为开发平台,进行二者的集成开发。
集成二次开发目前主要有两种方式:
1.OLE/DDE
采用OLE Automation技术或利用DDE技术,用软件开发工具开发前台可执行应用程序,以OLE自动化方式或DDE方式启动GIS工具软件在后台执行,利用回调技术动态获取其返回信息,实现应用程序中的地理信息处理功能;
2. GIS控件
利用GIS工具软件生产厂家提供的建立在OCX技术基础上的GIS功能控件,如ESRI的MapObjects、MapInfo公司的MapX等,在Delphi等编程工具编制的应用程序中,直接将GIS功能嵌入其中,实现地理信息系统的各种功能。
二、 三种实现方式的分析与比较
由于独立开发难度太大,单纯二次开发受GIS工具提供的编程语言的限制差强人意,因此结合GIS工具软件与当今可视化开发语言的集成二次开发方式就成为GIS应用开发的主流。它的优点是既可以充分利用GIS工具软件对空间数据库的管理、分析功能,又可以利用其它可视化开发语言具有的高效、方便等编程优点,集二者之所长,不仅能大大提高应用系统的开发效率,而且使用可视化软件开发工具开发出来的应用程序具有更好的外观效果,更强大的数据库功能,而且可靠性好、易于移植、便于维护。尤其是使用OCX技术利用GIS功能组件进行集成开发,更能表现出这些优势。
由于上述优点,集成二次开发正成为应用GIS开发的主流方向。这种方法唯一的缺点是前期投入比较大,需要同时购买GIS工具软件和可视化编程软件,但“工欲善其事,必先利其器”,这种投资值得。
目前许多软件公司都开发了很多ActiveX控件,合理选择和运用现成的控件,减少了开发者的编程工作量,使开发者避开某些应用的具体编程,直接调用控件,实现这些具体应用,不仅可以缩短程序开发周期,使编程过程更简洁,用户界面更友好,可以使程序更加灵活、简便。
与利用OLE Automation技术作为服务器的MapInfo相比,利用控件开发速度快,占用资源少,而且易实现许多底层的编程和开发功能。
- GIS开发方式选择——MapX核心技术剖析(一)
- 组件式GIS与MapX——MapX核心技术剖析(二)
- 组件技术与GIS的发展——MapX核心技术剖析(三)
- MapX研究——MapX核心技术剖析(五)
- MapInfo相关技术——MapX核心技术剖析(四)
- 地图的获取——MapX核心技术剖析(七)
- MapX的两个实用应用程序——MapX核心技术剖析(六)
- 地图数据与属性数据的关联——MapX核心技术剖析(八)
- 专题图的生成——MapX核心技术剖析(九)
- MAPX开发(一)
- GIS的二次开发——使用pb调用mapx控件(原创)
- 剖析前端开发核心技术
- VC+MapX的GIS开发 主视图中创建地图
- OUYA游戏开发核心技术剖析OUYA游戏入门示例——StarterKit
- 基础GIS开发笔记(一)
- iOS开发核心技术(一)——多线程——简介
- 三维GIS开发一
- 基于MAPX的地理信息系统GIS
- [jsp]常见问题--Java 开发中遇到的乱码问题
- 年薪1万、10万、100万的人过着怎样的生活
- 彻底清除mplay.com与mplay.exe病毒
- 3D引擎(3D engine)、3D编程语言(3D language)和3D创作系统(3D authoring system)的区别是什么?
- Visual Studio 2005 快捷键
- GIS开发方式选择——MapX核心技术剖析(一)
- FCKEDITOR中文使用说明(转)
- GridView自定义分页
- 组件式GIS与MapX——MapX核心技术剖析(二)
- Filter过滤器的使用
- 组件技术与GIS的发展——MapX核心技术剖析(三)
- nowrap标签的问题
- MapInfo相关技术——MapX核心技术剖析(四)
- GridView Delete, with Confirmation