书合文秘网 - 设为首页 - 加入收藏
当前位置 首页 > 范文大全 > 公文范文 >

“组件地理信息系统”课程教学中的案例组织与实现

作者: 浏览数: 关键词: 组件 地理信息系统 案例 课程 组织

摘 要:案例教学法能够调动学生学习的主动性,鼓励学生独立思考,积极参与讨论。案例教学应用到“组件地理信息系统”课程教学中,可以更好的发挥案例教学法的特点,引导学生注重能力的提高,加深对“组件地理信息系统”课程的理解。本文基于案例教学思想,选择四个代表性案例,对“组件地理信息系统”从“入门”到“理解”、再由“理解”到“应用”的分析,加深了学生对“组件地理信息系统”课程中相关概念、组成和原理的知识理解,有效提高了学生主动思考问题、分析问题和解决问题的能力。

关键词:组件地理信息系统 课程 案例

中图分类号:G421 文献标识码:A 文章编号:1672-3791(2013)05(c)-0201-03

随着地理信息系统技术的飞速发展,以组件技术为基础的新一代地理信息系统快速发展,地理信息系统软件的组件化趋势日益明显,成为地理信息系统的重要发展方向之一[1]。然而,由于“组件地理信息系统”课程具有很强抽象性,使得学生在理解组件地理信息系统概念、组成和方法的过程中遇到较大困难。在案例教学法的讨论中,学生通过对应用的典型案例过程的研究与发现来进行学习,可以加深对组件地理信息系统概念、原理及其应用的理解。

1 “组件地理信息系统”课程案例教学设计

1.1 设计思路

“组件地理信息系统”课程案例教学设计思路可分为四个阶段,如图1所示,包括入门、解惑、理解和应用。“入门”阶段介绍了“组件地理信息系统”的概念,使学生对这门课程形成初步的认识,对组件地理信息系统形成总体概念和基本理解;“解惑”阶段则进一步提到编程的概念,并应用案例形象的说明编程的作用;而在“理解”阶段,重点介绍了“组件地理信息系统”的实现原理,加深对组件地理信息系统的理解;最后的“应用”阶段,针对具体问题设计实现解决方案,实现对组件地理信息系统技术的综合应用。

1.2 课程案例结构与框架

课程案例结构如图2所示。课程首先介绍组件地理信息系统的基本概念,结合使用控件实现功能集成的案例分析了组件地理信息系统的特点;通过编写脚本语言实现属性计算和使用Model Builder建立模型的案例则进一步阐述了编程的概念,使学生对编程建立更加客观的认识;ArcMap的定制部分讲述了组件地理信息系统的实现原理,加深学生对“组件地理信息系统”的理解;最后一个案例针对具体的应用问题,如退耕还林问题,综合应用组件地理信息系统技术设计解决方案。

本文通过选取四个代表性的案例,从功能集成到编程概念的提出,从组件地理信息系统的实现原理到解决实际应用问题,由点到线,由线入面,对“组件地理信息系统”这门课程进行了由浅到深的介绍、分析、理解和应用,通过案例引导学生主动思考,逐步深入的学习“组件地理信息系统”这门难度较大的课程。

2 “组件地理信息系统”课程案例组织与实现

2.1 入门:什么是组件地理信息系统

介绍组件地理信息系统之前,首先让学生了解什么是组件,什么是组件地理信息系统,通过案例使学生形成对“组件”的形象思维,帮助学生理解组件及组件地理信息系统的概念。

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

案例一:使用控件实现功能集成。

ZeGraph控件是一个开放的数据可视化控件。使用方便灵活。中心类库采用C++语言编写,使用OpenGL作为渲染工具。使用ZeGraph可以绘制二维或三维图形,在窗口中显示图形,保存为多种格式的图像,渲染图像为GIF动画等[3]。

使用Visual Basic,Visual C#,Visual C++等编程语言对ZeGraph控件进行编辑,获取需要的图形,如柱状图,饼状图,线形图等,结果如图3所示。使用ZeGraph控件可以获得预期实现的效果,很好的体现了组件地理信息系统的基本思想,即通过控件来实现功能的集成,同时,也反映了组件地理信息系统的特点。

由案例一可以引导学生理解组件地理信息系统的特点。

(1)高效无缝的系统集成:对Zegraph控件进行编辑,实现了各个功能无缝的集成,无需再调用各个不同功能的控件,所以组件地理信息系统可以直接嵌入通用的开发环境中。应用组件地理信息系统技术,可以方便的完全解决专业应用程序和GIS软件之家的集成问题。

(2)不需要专门的GIS二次开发语言:可以使用Visual Basic、Visual C#等编程语言对Zegraph控件进行编辑,所以组件地理信息系统不需要使用专用的二次开发语言,可以任选通用的可视化开发语言,如Visual Basic、Visual C#等,就可以完成地理信息系统的开发和集成。而对开发者而言,学习专门的GIS二次开发语言需要花费很大的时间,而且使用二次开发语言,开发往往受到限制[4]。

(3)大众化的GIS:简单的对控件进行编辑即可实现所需的效果,开发过程简单,方便用户灵活使用,促进了GIS软件的大众化。

(4)成本低:由于组件式技术可以把复杂的功能划分为几个相对独立的组件,用户可以根据需要订购自己的组件,大大降低了成本。

(5)功能强大:组件地理信息系统基于进程(Inpro)内直接调用,功能非常强大[5]。

2.2 解惑:什么是编程

大部分人觉得编程很困难,实际上编程没有想象的困难,编程只是解决问题的工具。

编程即为解决某个实际问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程。为了使计算机能够理解人的意图,人们就必须要将需解决的问题的思路、方法、和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算机之间交流的过程就是编程[6]。

案例二:脚本语言的使用和应用Model Builder建模。

(1)Visual Basic For Application脚本语言的使用。

ESRI ArcMap软件对某图层属性的操作一般是通过属性表的属性计算来实现,例如已知人口数量和区域面积,求人口密度时,可在属性计算中输入人口数量字段除以区域面积字段。使用编程的方式也可以实现这一功能,在属性计算对话框中选中Advance,添加脚本语言的代码。

关键代码如下:

Dim dblArea as double

Dim pArea as IArea

Set pArea = [shape]

dblArea = pArea.area

dblArea即为区域面积,然后在文本框中输入POP/dblArea,单击确定就可以计算出人口密度。

(2)应用Model Builder建模。

使用ArcMap软件中的建模工具建立模型,实现特定的功能,如对图层属性的计算等。

例如,给定某区域内的一些高程点数据,如图4所示,计算出坡度大于15度的地区。

如图6所示,在ArcToolbox中新建工具箱,在工具箱下新建模型。该模型通过插值,计算坡度,坡度重分类这几个步骤来完成。生成结果如图5所示。

案例二通过两个实例讲述了编程的一些基础知识,使学生在头脑中形成对编程比较客观的认识。某些功能通过编程的方式同样可以实现想要的效果,所以说编程只是一种解决问题的工具。编程的概念和方法的理解对于学生学习掌握组件地理信息系统的二次开发方法奠定了基础。

2.3 理解:组件地理信息系统的实现原理

案例三:ArcMap定制。

通过ArcMap的命令按钮的定制,实现加载特定图层的功能。

ArcMap中的Customize对话框可以增加Toolbars和Commands,首先新增Toolbars,然后添加命令按钮到新增的Toolbars中,在命令按钮的Click事件中添加Visual Basic代码。

关键代码如下:

Dim pWorkspaceFactory As IWorkspaceFactory

Dim pFeatureWorkspace As IFeatureWorkspace

Dim pFeatureLayer As IFeatureLayer

Dim pMxDocument As IMxDocument

Dim pMap As IMap

Set pWorkspaceFactory = New ShapeFileWorkspaceFactory

Set pFeatureWorkspace = pWorkspaceFactory.OpenFromFile("D:\data", 0)

Set pFeatureLayer = New FeatureLayer

Set pFeatureLayer.FeatureClass = pFeatureWorkspace.OpenFeatureClass("point elevation")

pFeatureLayer.Name = pFeatureLayer.FeatureClass.AliasName

Set pMxDocument = Application.Document

Set pMap = pMxDocument.FocusMap

pMap.AddLayerpFeatureLayer

其中,D:\data为打开文件的路径,point elevation为打开的文件名。结果如图7所示。

通过本案例,使学生理解组件地理信息系统的一项具体功能,理解技术操作的含义。可以引导学生结合本案例进行扩展性思考,如加载其他格式的地图文件,增加其他控件等,提高学生积极主动思考的能力。

组件式地理信息系统是基于标准的组件式平台,具有可视化的界面和使用方便的标准接口,各组件之间进行自由、灵活的重组,通过软件开发工具集成起来,形成最终的地理信息系统应用。目前主要是基于Microsoft的COM/DCOM规范业已成为业界的事实上的标准。COM不是一种面向对象的语言,而是一种二进制标准。它定义了组件对象之间基于这种技术标准进行交互的方法。COM 所建立的是一个软件模块与另一个软件模块之间的链接。当这种链接建立之后,模块之间就可以通过称之为“接口”的机制来进行通讯[1]。

使用接口调用类库,从而实现类库中所封装的特定功能。由此可以看出,接口是组件地理信息系统实现相互通讯的中介。当然,“积木”也就是通过这样的方式搭起来的。

2.4 功能:用学到的知识解决遇到的应用问题

案例四:结合一个具体的应用问题,实现空间分析的功能。

在案例二构建所模型的基础上,以15度为界限,高于15度为退耕还林区,其他为非退耕还林区。使用ArcGIS Engine调用该模型,实现空间分析的功能。结果如图5所示。

关键代码如下:

Geoprocessor gp = new Geoprocessor();

gp.OverwriteOutput = true;

gp.AddToolbox(@"D:\Program Files\ArcGIS\Desktop10.1\ArcToolbox\Toolboxes\MyToolbar.tbx");

IVariantArray parameters = new VarArrayClass();

parameters.Add(@"E: \data\point elevation.shp");

parameters.Add(@"E:\output");

gp.Execute("Model", parameters, null);

其中,MyToolbar.tbx为新建工具箱,Model为新建模型。

该案例应用性较强,涉及基础知识较多,可以很好的将之前所学的知识应用起来。在退耕还林的问题中,不仅考察了学生动手操作的能力,重点考察学生发现问题、分析问题和解决问题的能力,在不断思考和实践中深化学生的专业基本技能知识[8]。使学生具备应用地理信息系统组件进行应用程序设计、开发与调试运行的能力。

3 结论

本文根据四个案例介绍了组件地理信息系统的概念、特点、基本原理以及应用。案例一主要从功能集成的角度着重介绍了组件地理信息系统的基本思想,即各个控件之间通过软件开发工具集成起来,分析了组件地理信息系统的特点,使学生对组件地理信息系统有初步的认识。案例二通过两个示例讲述了什么是编程,编程只是为了解决某个问题所使用的一种工具,有助于学生对“组件地理信息系统”课程二次开发操作含义的理解。案例三通过一个典型的应用,使学生理解组件地理信息系统的具体技术,理解接口的概念。接口是组件间相互通讯的中介,通过接口调用各个不同类库,使用起来方便、灵活,实现所需要的功能。案例四是一项综合的案例,需要学生自主设计解决方案,解决退耕还林的应用问题。通过综合应用的案例,逐步引导学生,用组件地理信息系统的技术解决问题。通过选择四个代表性的案例来认识、分析和理解“组件地理信息系统”这门课程。

案例教学法应用于组件地理信息系统,可以使组件地理信息系统实现由抽象到形象的转化,使初学者思路开阔清晰,明确所学的目标[9]。在解决问题的过程中逐步提高自己的对理论知识的理解和应用技术解决问题的能力。

参考文献

[1]郝平,李瑞麟,应时彦,等.组件式地理信息系统技术[J].浙江工业大学学报,2001,29(3):301-304.

[2]宋关福,钟耳顺.组件式地理信息系统研究与开发[J].中国图象图形学报,1998,3(4):314-317.

[3]ZeGraph官方网站.ZeGraph相关介绍[EB/OL].[2011-05-09]. http://.

[4]张宏群,史悦,安裕伦.Com GIS技术的资源环境信息系统研究与开发[J].贵州师范大学学报:自然科学版,2004,22(1):72-84.

[5]盖玉收,施法中.组件式GIS助阵航空信息管理[J].软件世界,2003,2(3):106-108.

[6]百度百科.编程[EB/OL].[2013-04-15]. http://baike.baidu.com/view/3281.htm.

[8]胡卓玮.组件地理信息系统课程设计与建设[J].实验室研究与探索,2012(31)(7):127-129.

[9]百度百科.案例教学法[EB/OL].[2012-1-16]. http://baike.baidu.com/view/703601.htm.

相关文章:

Top