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

上传人:第*** 文档编号:34001254 上传时间:2018-02-19 格式:DOC 页数:10 大小:1.79MB
返回 下载 相关 举报
曾明gis集成与开发课程设计报告_第1页
第1页 / 共10页
曾明gis集成与开发课程设计报告_第2页
第2页 / 共10页
曾明gis集成与开发课程设计报告_第3页
第3页 / 共10页
曾明gis集成与开发课程设计报告_第4页
第4页 / 共10页
曾明gis集成与开发课程设计报告_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《曾明gis集成与开发课程设计报告》由会员分享,可在线阅读,更多相关《曾明gis集成与开发课程设计报告(10页珍藏版)》请在金锄头文库上搜索。

1、- 0 -课 程 设 计 说 明 书题目: GIS 集成与开发 院 系: 测 绘 学 院 专业班级:地理信息系统 11-1 班 学 号: 2011305418 学生姓名: 曾明 指导教师: 赵明松老师 2015 年 1 月 11 日- 1 -安徽理工大学课程设计(论文)任务书测绘学院 地理信息系统学 号 2011305418 学生姓名 曾明 专业(班级) 地信 11-1 班设计题目设计技术参数设计要求工作量工作计划参考资料指导教师签字 教研室主任签字2015 年 1 月 11 日安徽理工大学课程设计(论文)成绩评定表学生姓名:曾明 学号:2011305418 专业班级:地信 11-1 班 课程

2、设计题目: GIS 集成与开发 指导教师评语:成绩: 指导教师: 年 月 日- 1 -一:目的与要求:1、了解 GIS 应用程序集成开发从用户需求分析、系统总体设计、详细设计(模块设计、界面设计、数据设计、应用模型设计、代码编写)到测试的全过程;2、熟悉 Visual studio 集成开发环境,掌握窗体及标准控件的使用方法;3、掌握定义用户函数和通用过程的方法;4、熟悉 AE 的层次结构和对象模型,并能利用 AE 实现指定的 GIS 功能。二:实习概况和准备1、ArcEngine 的认识; 2、常用类库;3、Mapcontrol 控件的使用及地图显示、缩放;4、TOCcontrol 的认识;

3、5、Toolbarcontrol 认识。6、DEM 坡度分析。三:实习内容:任务一:DEM 坡度分析1.用户需求分析我们在工作中经常用到 DEM 地理数据,需要从这些数据中提取等高线、特征点、特征线等地理要素,再以这些要素为基础做进一步分析,如坡度坡向是描述地形特征信息的重要指标,它能够间接表示地形的形态起伏和结构特征,其中坡度反映地貌坡面的倾斜程度,坡向反映坡面所面对的方向。目前,坡度坡向多是通过数字高程模型(DEM)计算得到的。2、系统总体设计根据 GIS 应用系统的基本要求以及用户需求对系统的基本要求,系统总体设计要达到用户需求分析的要求,满足用户所要求的功能,要实现对地图的基本操作功能

4、,如放大、缩小、全图、平移等基本功能的实现。其次还应进行坡度分析,达到效果。3、详细设计(1)模块设计本系统包括地图基本操作模块;在地图基本操作模块,用户利用相关控件对地图数据进行基本的放大、缩小、平移、等基本操作;以及提取坡度分析模块。(2)界面设计根据框架设计和需求分析,界面设计应该包括加载的 DEM 数据相关操作,如平移,放大,缩小等,还要有最关键的功能按钮,即坡度分析。左半边部分为加载的 DEM 数据的显示,右半部分界面显示加载的 DEM 数据。界面最后的设计如下:- 2 -(3)实现过程1.首先是要创建一个新的项目2.具体的实现过程- 3 -using System;using Sy

5、stem.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;usi

6、ng 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, 添加控件的步骤如下列几个截图所示:引用部分的代码- 4 -然后编写Form1的窗体的按钮的代码。第

7、一个 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.openFile

8、Dialog1.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 = pP

9、athName.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 = pRasterW

10、orkspace.OpenRasterDataset(fileName);- 5 -/pRasterDataset.OpenFromFile(pPath);pRasterLayer.CreateFromDataset(pRasterDataset);pLayer = pRasterLayer as ILayer;pScene.AddLayer(pLayer, true);/pScene.ExaggerationFactor = 6;pSceneGraph.RefreshViewers();然后是第二个button 名称为 坡度分析 。代码如下:/坡度分析private void button2

11、_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

12、.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 raste

13、rAnalysisEnveronment;rasterAnalysisEnveronment = surfaceOp as IRasterAnalysisEnvironment;rasterAnalysisEnveronment.OutWorkspace = workspace as IWorkspace;object zFactor = new object();IGeoDataset geoDataset, rasterGeoDataset;rasterGeoDataset = rasterDataset as IGeoDataset;geoDataset = surfaceOp.Slop

14、e(rasterGeoDataset, esriGeoAnalysisSlopeEnum.esriGeoAnalysisSlopePercentrise, ref zFactor);IRasterBandCollection rasterBandCollection = geoDataset as IRasterBandCollection;rasterBandCollection.SaveAs(podu.tif, workspace as IWorkspace, TIFF); - 6 -private void axSceneControl1_OnMouseDown(object sende

15、r, 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 集成开发环境,掌

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号