![GIS开发实习报告_第1页](http://file4.renrendoc.com/view/0f02f587acdc258cc57f40398c6d9c3e/0f02f587acdc258cc57f40398c6d9c3e1.gif)
![GIS开发实习报告_第2页](http://file4.renrendoc.com/view/0f02f587acdc258cc57f40398c6d9c3e/0f02f587acdc258cc57f40398c6d9c3e2.gif)
![GIS开发实习报告_第3页](http://file4.renrendoc.com/view/0f02f587acdc258cc57f40398c6d9c3e/0f02f587acdc258cc57f40398c6d9c3e3.gif)
![GIS开发实习报告_第4页](http://file4.renrendoc.com/view/0f02f587acdc258cc57f40398c6d9c3e/0f02f587acdc258cc57f40398c6d9c3e4.gif)
![GIS开发实习报告_第5页](http://file4.renrendoc.com/view/0f02f587acdc258cc57f40398c6d9c3e/0f02f587acdc258cc57f40398c6d9c3e5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学号 实习汇报GIS程序设计实习起止日期:年7月13日至年7月19日学生姓名吴馁班级12级地信2班成绩指导教师(签字)地质与测绘学院7月20日GIS程序设计实习一、实习目的通过GIS程序设计实习,使学生理解需求分析、项目管理方案设计、系统总体设计以及系统详细设计、系统实行、运行和维护等阶段要完毕的详细工作;掌握在C#和ArcEngine环境下构建应用型地理信息系统的措施。二、实习内容熟悉开发环境:VisualStudio;C#;ArcEngine10.1功能需求分析基于组件技术开发应用型地理信息系统组件式技术已成为当今软件技术的时尚之一。组件式GIS软件的基本思想是把GIS各大功能模块划分为几种控件。各个GIS控件之间,以及GIS控件与其他非GIS控件之间,可以以便地通过可视化的软件开发工具集成起来,形成最终的GIS应用。重点完毕的工作包括:1)建立ArcGISEngine应用程序框架;2)实现对矢量数据(ShapeFile格式)的访问;3)实现采用简朴、唯一值、分类等多种方式对面状矢量数据进行渲染(Render)。三、实习环节:实习一:初识ArcGISEngine开发环境1、新建一种Windows窗体应用程序2、在新建窗体中添加控件在工具箱中选择添加toolbarcontrol,TOCControl,MapControl控件在处理方案资源管理器中双击program.cs在主函数中添加ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine);使得文献可以加载到MapControl中。右击toolbarcontrol选择属性,如图选择Items选项,添加如图控件右击MapControl属性,在General的mapdocument中添加要加载的地图文献通过以上环节添加的控件还只是单独存在,而我们的程序需要各控件间协同工作,因此要进行控件绑定。分别右击ToolbarControl、TOCControl控件,将Buddy设置为axMapControl1。试运行一下如图可以看出基本框架已经搭建好了,不过还得调整一下布局在工具箱的所有Windows窗体下选择控件,放在窗体里,如图分别选择窗体里TOCControl,MapControl的属性,将其Dock值设置为fill,如图调整窗体布局如图实习二:建立ArcGISEngine应用程序框架2.1地图浏览1、新建项目,添加控件 新建windows窗体应用程序,选择工具箱中StatusStrip(状态栏),将其拖入到窗体,再选择工具箱中的ToolbarControl控件拖入窗体,修改dock值为TOP,再将SplitContainer控件拖入窗体,Dock设置为Fill,将TabControl控件拖入Panel1,将Alignment属性设置为Bottom,Dock属性设置为Fill。点击TabPages属性右边的按钮,弹出TabPage集合编辑器,将tabPage1的Name设置为“Layer”,Text设置为“图层”;将tabPage2的Name设置为“Property”,Text设置为“属性”。 选择“图层”选项卡,拖入TOCControl控件,设置Dock属性为Fill,选择“属性”选项卡,拖入所有Windows窗体|PropertyGrid控件,设置Dock属性为Fill。拖入TabControl控件到Panel2,设置Dock属性为Fill。成果如图所示:2、加shp数据 在工具箱中选择MenuStrip控件,添加到左上角,命名为文献,下拉选项为打开矢量数据和打开栅格数据,如图:同样添加地图渲染,及其下拉选项简朴渲染、唯一值渲染、分级渲染,如图:3、代码处理 选中文献控件下的加入矢量数据控件,双击事件并写入代码,在开始使用ArcGISEngine进行编码前,首先需要添加ArcGIS的引用,在处理方案管理器中右键点击“添加引用”,如图:usingESRI.ArcGIS.Carto;usingESRI.ArcGIS.Controls;usingESRI.ArcGIS.esriSystem;usingESRI.ArcGIS.Display;usingESRI.ArcGIS.Geometry;usingESRI.ArcGIS.SystemUI;usingESRI.ArcGIS.DataSourcesRaster;///////////////为SHP数据功能增长的类库usingESRI.ArcGIS.DataSourcesFile;usingESRI.ArcGIS.Geodatabase;usingSystem.IO;键入的代码如图:实习三:矢量要素符号化简朴渲染选中“简朴渲染”菜单,在属性框中点击事件按钮,在事件列表中双击Click事件;或者双击“简朴渲染”菜单,在措施内输入处理代码。部分代码如下:privatevoid简朴渲染ToolStripMenuItem_Click(objectsender,EventArgse){IFeatureLayerpFLForRender=axMapControl1.get_Layer(0)asIFeatureLayer;SimpleRender(pFLForRender,@"");}privatevoidSimpleRender(IFeatureLayerpFeatureLayer,stringsFieldName){//设置用于渲染的颜色IRgbColorpColor=newRgbColor();pColor.Red=255;pColor.Blue=0;pColor.Green=0;//设置用于渲染的符号的基本属性(面状符号)ISimpleFillSymbolpSFSBase=newSimpleFillSymbol();pSFSBase.Style=esriSimpleFillStyle.esriSFSSolid;//设置填充方式pSFSBase.Outline.Width=0.4;//设置边框的宽度pSFSBase.Color=pColorasIColor;//设置简朴渲染的有关属性ISimpleRendererpSR=newSimpleRenderer();pSR.Symbol=pSFSBaseasISymbol;//接口转换,对渲染方式进行设置IGeoFeatureLayerpGFL=pFeatureLayerasIGeoFeatureLayer;pGFL.Renderer=pSRasIFeatureRenderer;//地图刷新axMapControl1.Refresh();}唯一值渲染privatevoid唯一值渲染ToolStripMenuItem_Click(objectsender,EventArgse){IFeatureLayerpFLForRender=axMapControl1.get_Layer(0)asIFeatureLayer;DefineUniqueValueRender(pFLForRender,@"CONTINENT");}privatevoidDefineUniqueValueRender(IFeatureLayerpFeatureLayer,stringsFieldName){//变量申明boolbValFound;//判断要素值与否存在intiFieldIndex;//用于存储字段所在的索引值//设置颜色列表,用于随机生成颜色(用于填充面状要素)//设置颜色的基本属性,包括色调(H)、饱和度(S)以及亮度(V)IRandomColorRamppRCR=newRandomColorRamp();pRCR.StartHue=76;pRCR.EndHue=188;pRCR.MinSaturation=20;pRCR.MaxSaturation=40;pRCR.MaxValue=85;pRCR.MaxValue=100;pRCR.UseSeed=true;pRCR.Seed=43;//设置唯一值渲染的有关属性IUniqueValueRendererpUVR=newUniqueValueRenderer();pUVR.FieldCount=1;pUVR.set_Field(0,sFieldName);//遍历要素类的所有要素,并为每个要素设置基本的渲染形式//遍历要素类中的所有要素IFeatureClasspFC=pFeatureLayer.FeatureClass;IFeatureCursorpFCursor=pFC.Search(null,false);//通过遍历,返回要素指针(FeatureCursor)IFeaturepFeature=pFCursor.NextFeature();//获取目前第一种要素//获得指定字段的索引值IFieldspFields=pFCursor.Fields;iFieldIndex=pFields.FindField(sFieldName);//为不一样的要素,设置不一样的填充颜色pRCR.Size=pFC.FeatureCount(null);//获得应产生的颜色的数目boolbOK;pRCR.CreateRamp(outbOK);//判断随机颜色生产与否成功?//获得随机生成的颜色列表IEnumColorspEnumColors=pRCR.Colors;pEnumColors.Reset();IColorpColorForFeature=pEnumColors.Next();//开始遍历,为每个要素设置基本的渲染信息while(pFeature!=null){//为每个要素设置基本的渲染符号ISimpleFillSymbolpSFSForFeature=newSimpleFillSymbol();pSFSForFeature.Style=esriSimpleFillStyle.esriSFSSolid;pSFSForFeature.Outline.Width=0.4;pSFSForFeature.Color=pColorForFeature;//获得目前要素中指定字段的名称stringsFeatureName;sFeatureName=pFeature.get_Value(iFieldIndex)asstring;//设置唯一值渲染的有关属性pUVR.AddValue(sFeatureName,sFieldName,pSFSForFeatureasISymbol);pUVR.set_Label(sFeatureName,sFeatureName);pUVR.set_Symbol(sFeatureName,pSFSForFeatureasISymbol);//设置该值渲染信息//获得下一组要素和颜色pFeature=pFCursor.NextFeature();pColorForFeature=pEnumColors.Next();}//接口转换,对渲染方式进行设置IGeoFeatureLayerpGFL=pFeatureLayerasIGeoFeatureLayer;pGFL.Renderer=pUVRasIFeatureRenderer;//地图刷新axMapControl1.Refresh();}3、分级渲染 先打开ArcMap讲要导入数据的属性表打开添加一种字段命名为X,并进行计算几何处理,分级渲染便以这个字段里的值分级,分为两级,最小值到90,和90到最大值。代码如下:privatevoid分类渲染ToolStripMenuItem_Click(objectsender,EventArgse){IFeatureLayerpFLForRender=axMapControl1.get_Layer(0)asIFeatureLayer;ClassBreakRender(pFLForRender,@"x");}privatevoidClassBreakRender(IFeatureLayerpFL,stringsFieldName){IRandomColorRamppRCR=newRandomColorRamp();IClassBreaksRendererpCBR=newClassBreaksRenderer();pRCR.StartHue=76;pRCR.EndHue=188;pRCR.MinSaturation=20;pRCR.MaxSaturation=40;pRCR.MinValue=85;pRCR.MaxValue=100;pRCR.UseSeed=true;pRCR.Seed=43;pCBR.Field=sFieldName;pCBR.BreakCount=2;IFeatureClasspFC=pFL.FeatureClass;pRCR.Size=3;boolbOK;pRCR.CreateRamp(outbOK);if(bOK==true){IEnumColorspEC=pRCR.Colors;pEC.Reset();IColorpColorForFeature=pEC.Next();for(inti=0;i<pCBR.BreakCount;i++){ISimpleFillSymbolpSFSForFeature=newSimpleFillSymbol();ISimpleFillSymbolpSFSForFeature1=newSimpleFillSymbol();pSFSForFeature.Style=esriSimpleFillStyle.esriSFSSolid;pSFSForFeature.Outline.Width=0.4;pSFSForFeature.Color=pColorForFeature;switch(i){case0:pCBR.set_Break(i,90);pCBR.set_Label(i,"-92-90");pCBR.set_Description(i,"-92-90");pCBR.set_Symbol(i,pSFSForFeatureasISymbol);pSFSForFeature1.Color=pSFSForFeature.Color;br
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高性能铁氧体一次料合作协议书
- 五年级上册小数口算练习题
- 房屋合租协议书范本
- 换热站安装合同范本
- 新上海就业协议书范本
- 产品推广销售代理合同范本
- 2025年度泳池夜间开放免责条款协议
- 二零二五年度租房安全协议及租客行为规范合同
- 2025年度风机叶片售后服务采购合同
- 二零二五年度商业步行街门面店铺租赁服务协议
- 高校体育课程中水上运动的安全保障措施研究
- 城市基础设施修缮工程的重点与应对措施
- 油气勘探风险控制-洞察分析
- 2022年中考化学模拟卷1(南京专用)
- 医疗机构质量管理指南
- 【牛客网】2024秋季校园招聘白皮书
- 2024-2025银行对公业务场景金融创新报告
- 《医疗机构老年综合评估规范(征求意见稿)》
- 2025届郑州市高三一诊考试英语试卷含解析
- 《我国个人所得税制下税收征管问题研究》
- 建筑工程三通一平技术方案
评论
0/150
提交评论