曾明GIS集成与开发课程设计报告.doc_第1页
曾明GIS集成与开发课程设计报告.doc_第2页
曾明GIS集成与开发课程设计报告.doc_第3页
曾明GIS集成与开发课程设计报告.doc_第4页
曾明GIS集成与开发课程设计报告.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计说明书题目: GIS集成与开发 院 系: 测 绘 学 院 专业班级:地理信息系统11-1班 学 号: 2011305418 学生姓名: 曾明 指导教师: 赵明松老师 2015年1月11日- 1 -安徽理工大学课程设计(论文)任务书 测绘学院 地理信息系统学 号2011305418学生姓名 曾明专业(班级)地信11-1班设计题目设计技术参数设计要求工作量工作计划参考资料指导教师签字教研室主任签字2015年 1月11日安徽理工大学课程设计(论文)成绩评定表学生姓名:曾明 学号:2011305418 专业班级:地信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数据。界面最后的设计如下:(3)实现过程1.首先是要创建一个新的项目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, 添加控件的步骤如下列几个截图所示:然后编写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); /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, 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中。截图显示如下: 4、 感想 这次课程设计,除了让我了解GIS应用程序集成开发从用户需求分析、系统总体设计、详细设计到测试的全过程;熟悉Visual studio集成开发环境,掌握窗体及标准控件的使用方法;、掌握定义用户函数和通用过程的方法;熟悉AE的层次结构和对象模型,并能利用AE实现指定的GIS功能;ArcEngine的认识; 常用类库;Mapcontrol控件的使用及地图显示、缩放;TOCcontrol的认识;Toolbarcontrol认识等等有了一定了解,并且能进行基本操作外,我觉得自己在其他方面的收获也是挺大的。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论