当前位置:首页 > 专题范文 > 公文范文 >

基于插件技术的GIS应用技能开发教学研究

时间:2022-11-20 17:30:05 来源:网友投稿

摘 要:GIS插件开发是GIS应用技能的一个重要组成部分。从GIS插件开发环境所要解决的实验内容衔接问题着手,设计了一种从运算器功能到GIS功能开发的插件式GIS应用框架教学设计案例。该插件GIS框架扩展方便、部署简单和高度重用。

关键词:插件技术;GIS开发;教学

中图分类号:G434:TP311 文献标识码:A 文章编号:1672-7800(2011)09-0165-04

0 引言

GIS开发是一项针对性很强的系统工作,程序的模块设计、层次划分、语言选择和系统部署都依赖最终用户的具体需求、软硬环境甚至个人的喜好。GIS开发是一种典型的“因势而变”的工程,由于不同类型的用户在地理数据的存储、使用和部署方式上都有很大差别,根据实际需求定制开发是不可避免的。因此在应用程序开发过程中,项目人员必须花费大量的时间进行项目前期调研,编制不同阶段的需求分析和建设方案,然后才能进入编码阶段,根据需要开发各种功能组件。由于需求蔓延的可能性依然存在,每个变化之后,又得浪费时间在菜单建立、工具栏按纽设计、增加映射代码等,每一次都要从头开始,舍弃以前项目经验和成果,这种软件开发显然是一件乏味的且充满重复的劳动,开发模式效率很差的工作。因此代码重用在开发中显得非常重要,为实现这一目标,软件人从函数库、类库、设计模式和框架等机制先后被提出,不断改进提高软件的生产效率。而框架是重用机制当中的一种高级类型,在结构复杂、需求多变的各种规模程序设计上具有很强的吸引力。

插件技术是组件复用技术的一种。组件技术从根本上克服了传统软件开发技术固有的代码重用率差、模块耦合度高、可维护性差、开发周期长等问题,成为现代软件发展的主要趋势。插件技术能在不修改程序主体的情况下对软件功能进行提升。在众多的软件中都可以看到它的身影, 在中小型软件系统中获得了广泛的应用。基于“平台+插件”的结构有助于开发者实现一个具有良好扩展性和定制能力的GIS项目。例如在著名的开源软件MapWindow GIS中使用了大量的插件,如数据格式转换与投影变换等GIS功能。

1 课程概况

当前,国内外关于GIS应用开发教学的理论和实践的研究不是很多。只是在程序设计领域,如周红鹃、贾丹、刘东良等人设计开发教学软件时使用了插件思想完成教学构思。随着越来越多的高校GIS专业开设GIS设计与开发课程。多数高校该课主要包含理论课和实践课部分,理论课多是以ArcEngine、ArcObjectts、MapObjects或其它GIS公司组件为基础内容,重点讲授GIS开发的原理与方法,阐述GIS组件的功能与开发应用,而实践课没有统一的定论,许多实验课程教学还是引用传统的教学模式, 在组织教学时, 教师往往按照教材编排的顺序, 实验往往就是一个以知识点为核心的理论教学为主, 验证性实验为辅,各个实验之间前后衔接不好。

如果在实验课中,按逆向工程教学,先拆分GIS功能后组装,最后实验课总体设计应该就是一个小型GIS应用系统。那么使用插件式GIS应用框架教学就是一种满足定制要求的最好方式--扩展方便、部署简单和高度重用。同时学生自己动手设计与之相符合的实验教学内容,在日常实验过程当中学习插件思想,每个人结合自己可能的毕业设计框架实例入手,循序渐进的体验框架设计思想和代码迭代实现过程,理论与实际相结合,那么最后的课程设计作业将不只是一个学习GIS开发的简单功能的Demo,如将空间关系的基本分析以插件封装,具有重要的意义与价值,在实验过程中不断积累的插件功能也能在日后的项目中得到很好的应用。

2 基于插件技术的GIS开发教学设计

2.1 插件原理

插件(Plug-in,又称addin、add-in、addon或add-on,又译外挂)是一种电脑程序,是一种符合一定规范,实现了特定接口的程序,主要是用来扩展软件的功能通过和应用程序的互动,用来替应用程式增加一些所需要的特定的功能。最常见的有游戏、网页浏览器的插件和媒体播放器的插件。它借鉴了硬件系统中插件的思想。

常见的插件构架,主要有以下四大类:脚本式,使用某种语言把插件的程序逻辑写成脚本代码,如Python,不足之处在于用户可以自行修改脚本; 动态函数库 DLL,宿主程序通过某种渠道获得插件 DLL中的函数签名,然后在合适的地方调用它们,如Matlab软件当中的动态库函数;聚合式,把插件功能直接写成 EXE,主程序除了完成自己的职责外,还负责调度这些“插件”,宿主程序与插件之间信息交流困难,《人月神话》当中的巴比伦塔的失败说明这种方式的不足;组件,宿主程序不需要知道插件怎样实现预定的功能,它只需要通过接口访问插件,并提供主程序相关对象的接口。主程序与各插件之间的信息交流简单、透明。如目前支持Java 的Java Plug-in Framework、 OSGi,支持.NET的.NET Add-In Team Blog 、Mono Add-ins ,支持C++ 的FxEngine Framework、Qt Plug-Ins 等。

通常一个插件式框架包括以下三个部分。

(1)宿主程序:即主程序部分,提供程序的主体框架,是插件的依附对象。

(2)框架插件:即程序的功能扩展部分,是插件式框架功能的承载者。

(3)框架协议:预先定义好的、宿主和插件间的通信契约规范,即确定了宿主能够解析什么内容,以及插件需要实现什么内容。

2.2 教学引例-计器算器插件开发

2.2.1 用普通方式实现运算——从早绑定到反射

普通方式新建一个运算Calculator类库,并添加对类的代码引用就可以;如果要扩展计算器功能,如增加乘法运算,先编译成Mult类库,然后右击引用,选择添加引用该命名空间,即通过早绑定来完成。

如果再要增加除法运算,可如增加乘法运算一样增加divi类,生成动态库Divi.dll, 可运用. NET平台上的反射技术。反射可以用编程的方式检查程序集,获得该程序集的信息,包括其中的所有对象类型。通过反射技术从程序集中读取接口信息,并从接口中获取生成按钮的相关信息,如名称、显示的图片等。运用反射技术在识别插件方法时可以去除switch或if, 解除分支判断带来的耦合。先编译以下类,然后再通过反射机制读取。

然后在static void Main方法中添加以下代码完成除法运算。

宿主程序,通过反射机制解析与使用计算器插件。添加类库Calculator并添加代码,并添加引用。

3 原理演化:GIS功能插件开发

当前,在面向特定专题或领域的地理信息系统平台开发中,主要采用插件式GIS开发。对照前面的例子,分别完成宿主程序、框架插件、框架协议。

将GIS应用开发当中的命令按钮、工具条、菜单、浮动窗体等经常用到的功能以接口形式做成插件。

根据系统开发的需求,完成各个插件功能开发,生成程序集。宿主程序运行时一般通过插件引擎迭代插件寻找程序集,然后通过反射动态加载插件,生成插件对象。以下插件式插件GIS核心代码如下:

以下是基于插件式GIS应用框架的插件思想,各个工具栏菜单等使用插件开发,图1为教学实验设计开发的全插件人口GIS原型系统插件框架。

4 结束语

当前各大GIS厂家都提供了GIS二次开发功能组件,将GIS开发当中一些功能封装成组件,如ArcEngine软件包,便于二次开发做成插件。如果在GIS应用技能开

发实验课当中引进插件思想,通过不断积累实验过程,积累一个个灵活、健壮的插件,对日后较大规模GIS软件项

目开发很有益处。另外通过插件开发,将任务分解给不同的学生,不断模拟任务执行,符合自我构建的学习过程。让学生在每节课都体验任务的推进,也会减少GIS开发课程的枯燥,增强教学效果,吸引学生学习。该种教学方式也比较符合智能化学习、游戏化学习的现代学习理论的需求和发展趋势。

参考文献:

[1] 蒋波涛.插件式GIS应用框架的设计与实现[M].电子工业出版社,2008.

[2] ESRI INC.Getting started with ArcGIS[M].CA:ESRIInc,2004.

[3] 刘仁义,刘南.ArcGIS 开发宝典-从入门到精通[M].北京:科学出版社,2006.

[4] 李俊娥,周洞汝.“平台/插件”软件体系结构风格[J].小型微型计算机系统,2007(5).

[5] 周红鹃,胡学钢,田卫东.面向多层次用户的可视化数据结构实验环境研究[J].吉林大学学报信息科学版,2005(s2).

[6] 贾丹.计算机软件专业基础课程教学改革与实践[J].渤海大学学报(自然科学版),2009(3).

[7] 刘东良.基于约瑟夫问题与插件树的《C语言》教学动画演示软件开发研究[D].南京:南京师范大学,2009.

[8] 维基百科.插件[EB/OL].2009-04-12.http://zh.wikipedia.org/wiki/Plug-in.

[9] JACK H HANSEN.C#插件构架实战[EB/OL].2009-04-12/wayfarer/articles/28537.html.

[10] 高慧萍,吕俊.插件式开发技术研究与实现[J].计算机工程与设计,2009(16).

[11] FREDERICK P.BROOKS,JR.人月神话[M].北京:人民邮电出版社,2007.

[12] 张俊,吴健平.插件技术在ArcGIS Engine开发中的应用[J].测绘与空间地理信息,2009(3).

(责任编辑:余 晓)

Reserch on GIS Applications Skills and Software Development Teaching Based on Plug-in Technology

Abstract:GIS software development is one of the most important part of GIS Applications skills ,It studied the link between Experimental content GIS Software Development Environment with Plug-in Technology.And it designed a kind of GIS Plug-in framework teaching designing case from the function of caculator to software development for GIS applications.The Plug-in GIS frame is convenient to expand and easy to dispose and has a high degree of reuse.

Key Words: Plug-in Technology; GIS Development; Teaching

推荐访问:教学研究 插件 技能 开发 技术

相关推荐

  • 面向卓越计划的信号处理... 2022-10-21
  • 实践导向的计算方法课程... 2022-10-21
  • 高职院校《财务会计》课... 2022-10-21
  • 以应用人才培养为导向的... 2022-11-03
  • 教学研究报告5篇 2022-11-07
  • 教育改革背景下食品专业... 2022-11-20
  • 基于项目驱动模式的C++教... 2022-11-20
  • 新课改下高中政治教学研... 2023-02-07
  • 对消防官兵进行急救知识... 2022-11-23
  • 技能竞赛动员优秀讲话稿7篇 2022-11-28
  • 2023技能心得体会7篇 2023-01-18
  • 2023工作技能方面怎么写,... 2023-01-28
  • 技能培训个人工作总结,菁... 2023-02-06
  • 教师教学技能比赛总结 2023-02-15
  • 2023年银行柜员业务技能... 2023-03-11
  • 技能练心得体会参考8篇【... 2023-04-09
  • 技能比赛领导讲话稿(10篇) 2023-05-02
  • 技能报国主题班会教案(4篇) 2023-05-03
  • 开发区意识形态工作问题3篇 2022-08-23
  • 开发区意识形态工作总结9篇 2022-08-23
  • 开发区颁奖会主持词(范... 2022-09-10
  • 开发区非公企业党建情况... 2022-09-14
  • 在X开发区工作会议上讲话 2022-10-25
  • 开发部绩效考核制度3篇 2022-10-26
  • 开发区创新管理运行机制... 2022-10-28
  • 开发区经济发展发言材料3篇 2022-10-31
  • 开发区投融资工作情况汇报3篇 2022-11-15
  • 开发企业项目经理年终总结4篇 2022-11-17
  • 技术产业化存在的问题5篇 2022-08-24
  • 技术人员个人四风方面整... 2022-09-10
  • 技术部专职人员 2022-09-13
  • PDM中CNC系统与SmarTeam... 2022-10-20
  • 剖析水利施工技术创新问题 2022-10-22
  • 基于一次系统故障模拟的... 2022-10-23
  • 有源干扰辐射对舰面电磁... 2022-10-23
  • 技术创新工作情况汇报6篇 2022-10-26
  • 技术工人疗休养活动总结5篇 2022-10-27
  • 技术管理述职报告8篇 2022-10-29