GIS开发实习报告_第1页
GIS开发实习报告_第2页
GIS开发实习报告_第3页
GIS开发实习报告_第4页
GIS开发实习报告_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、实习报告GIS程序设计实习起止日期:2015年工_月生日至 2015 年7 月19 日学生 姓名吴馁班级12级地信2班成绩指导教师(签字)2015年7月20日GIS程序设计实习一、实习目的通过GIS程序设计实习,使学生了解需求分析、项目管理方案设计、系统总体设计以及系统详细设计、系统实施、运行和维护等阶段要完成的具体工作;掌握在C杯口ArcEngine环境下构建应用型地理信息系统的方法。二、实习内容 熟悉开发环境:Visual Studio 2010; C#; Arc Engine*功能需求分析申基于组件技术开发应用型地理信息系统组件式技术已成为当今软件技术的潮流之一。 组件式GIS软件的基本

2、思想是把GIS 各大功能模块划分为几个控件。各个 GIS控件之间,以及GIS控件与其他非GIS控件 之间,可以方便地通过可视化的软件开发工具集成起来,形成最终的GIS应用。重点完成的工作包括:1)建立ArcGIS Engine应用程序框架;2)实现对矢量 数据(Shape File格式)的访问;3)实现采用简单、唯一值、分类等多种方式对面 状矢量数据进行渲染(Render)。三、实习步骤:实习一:初识ArcGIS Engine开发环境1、新建一个Windows窗体应用程序2、在新建窗体中添加控件在工具箱中选择添加 toolbarcontrol , TOCControl, MapControl

3、控件在解决方案资源管理器中双击在主函数中添加);使得文件可以加载到MapControl 中。右击toolbarcontrol选择属性,如图选择 Items选项,添加如图控件右击MapControl属性,在 General的map document中添加要加载的地图文件通过以上步骤添加的控件还只是单独存在,而我们的程序需要各控件间协同工作,因此要进行控件绑定。分别右击ToolbarControl 、TOCControl控件,将Buddy设置为 axMapControl1。试运行一下如图可以看出基本框架已经搭建好了,但是还得调整一下布局在工具箱的所有 Windows窗体下选择 山 加"小

4、 控件,放在窗体里,如图分别选择窗体里 TOCControl, MapControl的属性,将其 Dock值设置为fill,如图调整窗体布局如图实习二:建立ArcGIS Engine应用程序框架地图浏览1、新建项目,添加控件新建windows窗体应用程序,选择工具箱中 StatusStrip( 状态栏),将其拖入 到窗体,再选择工具箱中的 ToolbarControl 控件拖入窗体,修改dock值为TOP 再将SplitContainer 控件拖入窗体,Dock设置为Fill ,将TabControl控件拖 入 Panell ,将 Alignment 属性设置为 Bottom , Dock属性

5、设置为 Fill 。点击 TabPages属性右边的按钮,弹出 TabPage集合编辑器,将tabPage1的Name® 置为“Layer" ,Text 设置为“图 层”;将tabPage2 的 Name设置为“Property ",Text 设置为“属性”。选择“图层”选项卡,拖入 TOCControl控件,设置Dock属性为Fill ,选择“属性”选项卡,拖入所有Windows窗体|PropertyGrid 控件,设置 Dock 属性为Fill 。拖入TabControl控件到Panel2,设置Dock属性为Fill 。结果如图所示:J Rcirrnl目回回S

6、 ifl.l Er&ame MapCaniFDl e: axMapContrall!,77 Irai同样 添加 地图 渲 染, 及其 下拉 选项 简单 渲 染、唯一 值渲染、分级渲染,如图:3、代 码处 理ffig 属任tG£ 1D_1 Erijinesine:trolllool 午dp5T 初 usLrMI】选中 文件 控件 下的 加入 矢量 数据 控 件, 双击事件并写入代码,在开始使用ArcGIS Engine进行编码前,首先需要添加ArcGIS 的引用,在解决方案管理器中右键点击“添加引用”,如图:usingusingusingusing usingusingusin

7、g/为SH瞰据功能 增加的类库usingusingusing ;键入的代码如图:实习三:矢量要素符号化1、 简 单渲染选中 “简单渲染”菜单, 在属性框中点击事件按钮,在事件列表中双击Click事件;或者双击“简单渲染”菜单,在方法内输入处理代码。部分代码如下:private void 简单渲染ToolStripMenuItem_Click( object sender, EventArgs e)IFeatureLayer pFLForRender = (0) as IFeatureLayer ;SimpleRender(pFLForRender, "");private

8、void SimpleRender( IFeatureLayer pFeatureLayer, string sFieldName)/ 设置用于渲染的颜色IRgbColor pColor = new RgbColor();= 255;= 0;= 0;/ 设置用于渲染的符号的基本属性(面状符号)ISimpleFillSymbol pSFSBase = new SimpleFillSymbol ();= ;/ 设置填充方式/ 设置边框的宽度= pColor as IColor ;/ 设置简单渲染的相关属性ISimpleRenderer pSR = new SimpleRenderer ();= p

9、SFSBase as ISymbol ;/ 接口转换,对渲染方式进行设置IGeoFeatureLayer pGFL = pFeatureLayer as IGeoFeatureLayer ;= pSR as IFeatureRenderer ; / 地图刷新();2、 唯 一值渲染private void 唯一值渲染ToolStripMenuItem_Click( object sender, EventArgs e)IFeatureLayer pFLForRender = (0) as IFeatureLayer ;DefineUniqueValueRender(pFLForRender,

10、"CONTINENT);" private void DefineUniqueValueRender( IFeatureLayer pFeatureLayer, string sFieldName) / 变量声明bool bValFound; / 判断要素值是否存在 int iFieldIndex; / 用于存储字段所在的索引值 / 设置颜色列表,用于随机生成颜色(用于填充面状要素)/设置颜色的基本属性,包括色调(H)、饱和度(S)以及亮度(V IRandomColorRamppRCR = new RandomColorRam(p);= 76;= 188;= 20;= 40

11、;= 85;= 100;= true ;= 43;/ 设置唯一值渲染的相关属性IUniqueValueRenderer pUVR = new UniqueValueRenderer ();= 1;(0, sFieldName);/ 遍历要素类的所有要素,并为每个要素设置基本的渲染形式/ 遍历要素类中的所有要素IFeatureClass pFC = ;IFeatureCursor pFCursor = ( null , false ); / 通过遍历,返回要素指针(FeatureCursor )IFeature pFeature = ();/ 获取当前第一个要素/ 获得指定字段的索引值IFiel

12、ds pFields = ;iFieldIndex = (sFieldName);/ 为不同的要素,设置不同的填充颜色= ( null ); / 获得应产生的颜色的数目 bool bOK;( out bOK); / 判断随机颜色生产是否成功? / 获得随机生成的颜色列表IEnumColors pEnumColors = ;();IColor pColorForFeature = ();/ 开始遍历,为每个要素设置基本的渲染信息 while (pFeature != null ) / 为每个要素设置基本的渲染符号 ISimpleFillSymbol pSFSForFeature = new Si

13、mpleFillSymbol ();= ;= pColorForFeature; / 获得当前要素中指定字段的名称 string sFeatureName; sFeatureName = (iFieldIndex)as string ;/ 设置唯一值渲染的相关属性 (sFeatureName, sFieldName, pSFSForFeatureas ISymbol );(sFeatureName, sFeatureName);(sFeatureName, pSFSForFeatureas ISymbol ); / 设置该值渲染信息/ 获得下一组要素和颜色pFeature = ();pColo

14、rForFeature = (); / 接口转换,对渲染方式进行设置 IGeoFeatureLayer pGFL = pFeatureLayer as IGeoFeatureLayer ;= pUVR as IFeatureRenderer ;/ 地图刷新 ();3、分级渲染先打开ArcMap讲要导入数据的属性表打开添加一个字段命名为X,并进行计算几何处理,分级渲染便以这个字段里的值分级,分为两级,最小值到90,和90 到最大值。代码如下:private void 分类渲染ToolStripMenuItem_Click( object sender, EventArgs e)IFeatureL

15、ayer pFLForRender = (0) as IFeatureLayer ;ClassBreakRender(pFLForRender, "x"); private void ClassBreakRender( IFeatureLayer pFL, string sFieldName) IRandomColorRamppRCR = new RandomColorRam(p);IClassBreaksRenderer pCBR = new ClassBreaksRenderer ();= 76;= 188;= 20;= 40;= 85;= 100;= true ;=

16、43;= sFieldName;= 2;IFeatureClass pFC = ;= 3;bool bOK;( out bOK);if (bOK = true )IEnumColors pEC = ;();IColor pColorForFeature = ();for ( int i = 0; i < ; i+)ISimpleFillSymbol pSFSForFeature = new SimpleFillSymbol ();ISimpleFillSymbol pSFSForFeature1 = new SimpleFillSymbol ();= ;= pColorForFeatur

17、e;switch (i)case 0:(i, 90);(i,"-92 - 90" );(i,"-92 - 90" );(i, pSFSForFeatureas ISymbol );break;case 1:(i, 153);(i,"-90 - 90" );(i,"-90 - 90" );(i, pSFSForFeatureas ISymbol );break;pColorForFeature = ();IGeoFeatureLayer pGFL = pFL as IGeoFeatureLayer ;=pCBRas IFeatureRenderer ;();四、实习结果1、实

温馨提示

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

评论

0/150

提交评论