曾明GIS集成与开发课程设计报告

课程设计说明书

题目: GIS集成与开发

院 系: 测 绘 学 院

专业班级:地理信息系统11-1班

学 号: 2011305418

学生姓名: 曾明

指导教师: 赵明松老师

20xx年1月11日 - 0 -

曾明GIS集成与开发课程设计报告

安徽理工大学课程设计(论文)任务书

测绘学院 地理信息系统

曾明GIS集成与开发课程设计报告

20xx年 1月11日

- 1 -

安徽理工大学课程设计(论文)成绩评定表

曾明GIS集成与开发课程设计报告

一:目的与要求:

1、了解GIS应用程序集成开发从用户需求分析、系统总体设计、详细设计(模块设计、界面设计、数据设计、应用模型设计、代码编写)到测试的全过程;

2、熟悉Visual studio集成开发环境,掌握窗体及标准控件的使用方法;

3、掌握定义用户函数和通用过程的方法;

4、熟悉AE的层次结构和对象模型,并能利用AE实现指定的GIS功能。

二:实习概况和准备

1、ArcEngine的认识;

2、常用类库;

3、Mapcontrol控件的使用及地图显示、缩放;

4、TOCcontrol的认识;

5、Toolbarcontrol认识。

6、DEM坡度分析。

三:实习内容:

任务一:DEM坡度分析

1.用户需求分析

我们在工作中经常用到DEM地理数据,需要从这些数据中提取等高线、特征点、特征线等地理要素,再以这些要素为基础做进一步分析,如坡度坡向是描述地形特征信息的重要指标,它能够间接表示地形的形态起伏和结构特征,其中坡度反映地貌坡面的倾斜程度,坡向反映坡面所面对的方向。目前,坡度坡向多是通过数字高程模型(DEM)计算得到的。

2、系统总体设计

根据GIS应用系统的基本要求以及用户需求对系统的基本要求,系统总体设计要达到用户需求分析的要求,满足用户所要求的功能,要实现对地图的基本操作功能,如放大、缩小、全图、平移等基本功能的实现。其次还应进行坡度分析,达到效果。

3、详细设计

(1)模块设计

本系统包括地图基本操作模块;在地图基本操作模块,用户利用相关控件对地图数据进行基本的放大、缩小、平移、等基本操作;以及提取坡度分析模块。

(2)界面设计

根据框架设计和需求分析,界面设计应该包括加载的DEM数据相关操作,如平移,放大,缩小等,还要有最关键的功能按钮,即坡度分析。左半边部分为加载的DEM数据的显示,右半部分界面显示加载的DEM数据。界面最后的设计如下:

- 1 -

(3)实现过程

1.首先是要创建一个新的项

曾明GIS集成与开发课程设计报告

2.具体的实现过程

曾明GIS集成与开发课程设计报告

- 2 -

using System;

using System.Collections.Generic; using System.ComponentModel; using System.Data;

引 用 部 分 的 代 码

using System.IO; using System.Drawing; using System.Text;

using System.Windows.Forms; using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.Analyst3D; using ESRI.ArcGIS.Display; using ESRI.ArcGIS.Geodatabase; using ESRI.ArcGIS.DataSourcesRaster; using ESRI.ArcGIS.DataSourcesFile; using ESRI.ArcGIS.esriSystem; using ESRI.ArcGIS.Geometry ; using ESRI.ArcGIS.GeoAnalyst; using ESRI.ArcGIS.DataSourcesGDB;

以下为添加的几个控件的代码。添加的控件有ArcGIS Engine ToolbarControl, ArcGIS Engine TOCControl,,ArcGIS Engine MapControl, 添加控件的步骤如下列几个截图所示:

曾明GIS集成与开发课程设计报告

- 3 -

然后编写Form1的窗体的按钮的代码。第一个button按钮的名称为加载DEM数据。代码如下://添加TIN数据

private void button1_Click(object sender, EventArgs e)

{

ISceneGraph pSceneGraph = this.axMapControl1.SceneGraph;

IScene pScene = pSceneGraph.Scene;

IRasterLayer pRasterLayer = new RasterLayerClass();

ILayer pLayer;

this.openFileDialog1.Title = "Raster layer";

this.openFileDialog1.DefaultExt = ".TIF";

this.openFileDialog1.Filter = "(*.tif)|*.tif";

if (this.openFileDialog1.ShowDialog() == DialogResult.OK)

{

m_FileName = this.openFileDialog1.FileName;

string pPathName = this.openFileDialog1.FileName;

string pPath = pPathName.Substring(0, pPathName.LastIndexOf('\\'));

string fileName = pPathName.Substring(pPath.Length + 1, pPathName.Length - pPath.Length - 1);

IWorkspaceFactory pwsf = new RasterWorkspaceFactoryClass();

IRasterWorkspace pRasterWorkspace;

if (pwsf.IsWorkspace(pPath))

{

pRasterWorkspace = pwsf.OpenFromFile(pPath, 0) as IRasterWorkspace; IRasterDataset pRasterDataset =

pRasterWorkspace.OpenRasterDataset(fileName);

曾明GIS集成与开发课程设计报告

- 4 -

//pRasterDataset.OpenFromFile(pPath);

pRasterLayer.CreateFromDataset(pRasterDataset);

pLayer = pRasterLayer as ILayer;

pScene.AddLayer(pLayer, true);

//pScene.ExaggerationFactor = 6;

pSceneGraph.RefreshViewers();

}

}

}

然后是第二个button 名称为 坡度分析 。代码如下:

//坡度分析

private void button2_Click(object sender, EventArgs e)

{

IWorkspaceFactory workspaceFactory = new RasterWorkspaceFactoryClass();

FileInfo fileInfo = new FileInfo(m_FileName);

string filePath = fileInfo.DirectoryName;

string fileName = fileInfo.Name;

//filePath =filePath +@"\workspace1";

IRasterWorkspace workspace = workspaceFactory.OpenFromFile(filePath, 0) as

IRasterWorkspace;

ILayer layer = this.axMapControl1.Scene.get_Layer(0);

IRasterLayer rasterLayer = layer as IRasterLayer;

IRasterDataset rasterDataset = workspace.OpenRasterDataset(fileName);

ISurfaceOp surfaceOp = new RasterSurfaceOpClass();

IRasterAnalysisEnvironment rasterAnalysisEnveronment;

rasterAnalysisEnveronment = surfaceOp as IRasterAnalysisEnvironment;

rasterAnalysisEnveronment.OutWorkspace = workspace as IWorkspace;

object zFactor = new object();

IGeoDataset geoDataset, rasterGeoDataset;

rasterGeoDataset = rasterDataset as IGeoDataset;

geoDataset = surfaceOp.Slope(rasterGeoDataset,

esriGeoAnalysisSlopeEnum.esriGeoAnalysisSlopePercentrise, ref zFactor);

IRasterBandCollection rasterBandCollection = geoDataset as IRasterBandCollection;

rasterBandCollection.SaveAs("podu.tif", workspace as IWorkspace, "TIFF");

}

private void axSceneControl1_OnMouseDown(object sender,

- 5 -

ESRI.ArcGIS.Controls.ISceneControlEvents_OnMouseDownEvent e)

{

ISceneGraph pSceneGraph = this.axMapControl1.SceneGraph;

IScene pScene = pSceneGraph.Scene;

int px = e.x;

int py = e.y;

IPoint point = null;

object pOwner;

object pObject;

pSceneGraph.Locate(this.axMapControl1.SceneViewer, px, py,

esriScenePickMode.esriScenePickAll, true, out point, out pOwner, out pObject);

if (point != null)

{

MessageBox.Show(point.X + "_" + point.Y + "_" + point.Z);

}

}

(4)测试结果

加载一副DEM图像后,点击按钮坡度分析,出现所需的最后结果。把生成的podu1文件加载到ArcGIS中。截图显示如下

曾明GIS集成与开发课程设计报告

四、感想

这次课程设计,除了让我了解GIS应用程序集成开发从用户需求分析、系统总体设计、详细设计到测试的全过程;熟悉Visual studio集成开发环境,掌握窗体及标准控件的使用方法;、掌握定义用户函数和通用过程的方法;熟悉AE的层次结构和对象模型,并能利用AE实现指定的GIS功能;ArcEngine的认识; 常用类库;Mapcontrol控件的使用及地图显示、 - 6 -

缩放;TOCcontrol的认识;Toolbarcontrol认识等等有了一定了解,并且能进行基本操作外,我觉得自己在其他方面的收获也是挺大的。作为一名一直生活在单纯的大学校园的我,这次课程设计无疑成为了我踏入社会前的一个平台,为我今后踏入社会奠定了基础。

首先,我觉得在这方面确实很薄弱,因为以前接触的比较少,所以做起来比较吃力;其次,我觉得动手能力更重要;只有不断尝试才可能会完成一项任务;最后,我要特别感谢赵明松老师的悉心指导,我知道自己确实那道题不会,自己尽力尝试了,可是还是找不到可以解决的办法。赵老师不厌其烦的指导我,最终在老师的带领下解决了问题。通过这次课程设计,我深知自己很多不足,希望在今后学习工作中更加努力,多思考,多理解,多动手。

- 7 -

 

第二篇:GIS课程设计报告

《GIS原理》课程设计报告

         测绘工程      

                             班级学号                             

                                                     

                             指导教师                             

                                       20##学年第二学期   

南京工业大学测绘学院

2011 年  06  月  23  日


目录

一、课程设计时间.......................................................................... 1

二、 课程设计目的........................................................................ 1

三、 课程设计内容........................................................................ 1

四、 课程设计使用数据................................................................ 1

五、 课程设计步骤........................................................................ 2

六、课程设计总结.......................................................................... 7

1、课程设计过程中遇到的问题:............................................... 7

2、 心得体会............................................................................... 8

3、 关于GIS的学习感谢和建议................................................. 9

附注:............................................................................................. 10


一、课程设计时间:  620    624    5  天。

课程设计进度             

二、课程设计目的

GIS原理课程设计是测绘工程专业的专业课实践环节,是《GIS原理》课程教学的重要组成部分,是巩固和深化课堂教学内容的重要步骤,是培养学生动手能力和实践的有效手段。

通过图形配准的课程设计,掌握地理信息系统的基本原理,熟练对AcrMap和AcrCatalog的操作,能熟练使用ArcGIS软件进行基本的地理信息分析与操作。

三、课程设计内容

有南京工业大学江浦校区给水现状图,格式为CAD,以及江浦校区基础地理信息图,格式为ArcGIS。要求:

1.将CAD图中的给水线、消防、闸阀井等给水专题图层转换为ArcGIS格式,并对转换后的图编辑、整理。

2.接着将整理后给水专题图层,存入南京工业大学基础地理信息图数据库中。

3.完成给水图层的符号化配置,并最终完成江浦校区给水现状专题图的制作。

四、课程设计使用数据

1.CAD格式南京工业大学江浦校区给水现状图。

2. ArcGIS格式南京工业大学江浦校区基础地理信息图。

以上数据由教师提供。

五、课程设计步骤

1.使用ArcCatalog将CAD数据中指定的图层转出。主要将给水线、消防、闸阀井的图层从CAD导入到ArcMap中。

2.在ArcMap中使用spatial adjustment工具栏实现图层之间的配准。先进行给水线与道路线的配准。将给水线图层和道路线图层添加到ArcMap中,在spatial adjustment工具条菜单里设置要校正的数据,把要校正的要素类打钩。点击被校正要素上的某点,然后点基准要素上的对应点,这样就建立了一个置换链接,起点是被校正要素上的某点,终点是基准要素上的对应点。用同样的方法建立足够的链接。理论上有三个置换链接就能做仿射变换,但实际上一般是是不够用的。实际使用中要尽量多建几个链接,尤其是在拐点等特殊点上,而且要均匀分布。

3.在给水线与道路线配准好的现况下,导入消防图层,与给水线进行配准。这里在配准时不仅要遵循先前配准给水线时的准则,还要对照CAD图,找到特征明显处进行配准。

4.新建一个闸阀井图层,在ArcMap中使用Editor工具栏对配准后的图层编辑,在断线中点,点一下,,modfiey,划一下给水线,将空余的补上,铅笔延长上去,将闸阀井用符号显示出来。

  5.将配准和编辑后的图层存入南京工业大学基础地理信息图数据库中。

6.对给水图层符号化设计,并制作给水专题图。添加标题,比例尺,图例,指北针等。

课程设计总结

1、课程设计过程中遇到的问题:

由于第一次做ArcGis的课程设计,其中遇到了很多困难。首先就是软件的问题,配准给水线的时候还算顺利,因为老师已把图层从CAD导入到了ArcGis中,直接运用spatial adjustment工具就可以进行配准,但在自己导入消防图层时,图层无法显示,经过大家讨论和周围同学的情况,发现ArcGis9.3可以显示图层,于是大家都把刚装上的ArcGis9.2换成了ArcGis9.3,因为地坤楼机房也是ArcGis9.2版本,无法做,卸载和安装软件无疑花费了好多时间。有的是Win7和Vista系统,装不上软件,无疑苦恼不已。

其次,在配准过程中不仅要细心,还要有耐心,尽可能地减小误差,提高配准精度。在进行给水线、消防的配准的时候工作量相对比较少,直接运用spatial adjustment工具即可,工作量最大就是闸阀井图层,因为要利用Editor工具一个一个画,等全部全部画完花费了4、5个小时,这里真正体现了细心与耐心。

最后,在把配准后的图层导入到南京工业大学基础地理信息图数据库中时,周围好多同学包括我都碰到了一样的问题,就是数据库中的图层与配准后的图层不能重合,这个到最完整个课程设计都没弄明白是什么原因,大家解决的方法就是重做,这个时候无疑是既烦躁又焦急,因为花费了这么久做的图结果失败了,又要从头开始,这需要很好的心理素质。不过多做了,就对软件更加熟悉了,第二遍花费的时间就会比第一遍少,而且图的质量也高了。

2、心得体会

在这次GIS的课程设计中自己确实付出很多的努力,以前的实验总是按照书本来操作,但是这次有些不同,不过有借鉴之处,除此之外自己不仅提高GIS的应用基础,而且在一定程度上更加深层次的了解到GIS的作用及功能,为以后的画图提供了一个很好的基础。

通过此次课程设计,使我更加扎实的掌握了有关ArcGis方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手操作,使我们掌握的知识不再是纸上谈兵。
过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在大家的商讨和老师的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!
    课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。通过这次课程设计,认识到这个软件的强大及方便。通过这次的课程设计,使我更加巩固了对地理信息系统数据结构理解,基本上掌握了地理信息系统空间数据库的设计思路,掌握了GIS基础平台的使用方法,包括数据的输入、数据的处理、图形的编辑、数据库设计、空间分析和专题地图的输出等,为以后的学习奠定了基础。

我认为,在这学期的上机实验中,不仅熟悉了一定的ArcGis软件功能,更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。
    回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。
     此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。同时体现出自己单独设计模具的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。
在此感谢我们的老师.,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次课程设计的每个细节和每个数据,都离不开老师您的细心指导。而您开朗的个性和宽容的态度,帮助我能够很顺利的完成了这次课程设计。
同时感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。使我更加熟悉GIS的操作,我希望自己能够努力学好这一门学科,自己能够独立使用软件制图完成课程设计。因为在飞速发展的今天,我们只有关注当下才能顺利毕业,才能顺利拿到学士学位证书,才能更好地在将来的工作中区锻炼自己,磨练自己,修炼自己。

3、关于GIS的学习感谢和建议

   1)GIS的课程设计实习对于测绘的学生来说也许并没有地理信息系统的学生那么重要,但是熟练掌握操作依然非常重要,所以此次课程设计对于测绘的学生的来说是一个非常好的锻炼,不仅有利于对所学知识的复习和实践应用,更增强了作为一个工科学生的动手能力。从实质上认清实习的目的,以积极的态度去做好实习,我认为是非常必要的。

   2)GIS软件的功能非常强大,不仅涵盖了CAD的所有绘图功能,还有众多新开发的功能,如数据间的拓扑关系用二维表来存储,便于查找分析;地图的三维动态功能,更是逼真的模拟了现实世界的变化和发展;最特别的为空间分析模块,其不但可以建立感兴趣的地物缓冲区,而且可以在此基础上进行计算、分析、分类等,这是其他相关类软件无法做到的。

    3)或许是由于老师对于学生的学习积极性的过多信赖,允许学生可以在课余独立时间完成作业,但是情况并不乐观。从整体上看整个专业的学生学习积极性不容乐观,对于老师布置的作业不予理睬,弄虚作假现象非常严重,大多人都懒得做作业,或许是个人的惰性,也可能是未能从根本上认清实习的目的吧。如果老师不给学生一定的压力和监督,学生完成作业时没有一定的人员指定,这将极大的挫败学生的学习热情和积极性,反过来又会使得老师的信心被“打击”。所以我真诚的希望老师能够在以后的教学中更加严格的要求学生。

附注:

课程设计要求

1.统一安排上机时间不得无故迟到、旷课、早退,否则违背一次课程设计成绩不能评良及其以上档次,二次不能评中及其以上档次;三次课程设计作不及格处理;上机时不得玩游戏或做与课程设计无关的操作。

2.撰写课程设计报告(不少于4000字),并打印(A4)装订好后上交,作为评定成绩的主要依据之一。

3.上交成果包括:ArcGIS格式的江浦校区给水专题图电子版、电子版课程设计报告、课程设计报告纸版。

    4.上交成果最后时间为课程设计最后一天。

5.如果在课程设计报告和系统中一旦发现抄袭拷贝别人成果,本次课程设计一律作不及格处理。

相关推荐