组件式GIS实习报告班级:地信122姓名:张开瑞时间:2014.6.9-6.20指导老师:尹涛1实习题目:数字长清校园………………………………………………………前言一、………………………………………………………………系统简要1、………………………………系统分析及其开发环境。2、………………………………校园截图及配准过程。3、………………………………矢量化及添加要素名称。二、………………………………………………………………窗口设计三、………………………………………………………………开发案例1、………………………………欢迎页面、浮动加载工具箱功能。2、………………………………量测功能。3、………………………………查询功能。4、………………………………鹰眼功能。5、………………………………不同的分析功能。6、………………………………数据和布局视图。7、………………………………鼠标跟随、坐标状态显示功能。7、………………………………北京54坐标转换。8、………………………………标签编辑和右击属性、快捷键设置四、………………………………………………………………代码加载五、………………………………………………………………运行截图六、………………………………………………………………发布安装七、………………………………………………………………结论2………………………………………………………………后记前言:改设计是由山东交通学院长清校区卫星地图运用桌面版GIS和AE共同设计的计算机软件,对于初学者具有较强的实习功能,体现出对AE初级程序的开发,对初学者具有较好的研究基础。一、1、系统分析:用户对象:各类用户。功能简介:结合桌面版GIS,设计对地图的浏览功能,数据及布局视图,进行网络、缓冲区等分析,进行空间和属性查询、进行坐标系的转换等功能。2、开发环境:VS2010、开发语言C#、ArcGISEngine组件、ArcGISDeskTop3、校园地图设计:地图范围:山东交通学院长清校区地图的坐标系:WGS84坐标系地图的现势性:最新的地图原始图像来源:34.地图配准:1、加载数据和影像配准工具2、输入控制点3、设定数据框的属性4、矫正并重采样栅格生成新的栅格文件。地图图层:在校园地图中分为点、线、面图层、还有一个地图图层。4校园地图:5二、功能设计:功能设置量测功能:距离量测、面积量测图层文字和右击打开属性浏览功能:打开数据、打开地图、放大、缩小、漫游、全幅显示、自由缩放、欢迎页面查询功能:图查属性、属性查图、点查询、线查询、矩形查询、圆形查询、多边形查询视图:数据视图、布局视图。快捷键设计、工具栏设计分析:网络分析、缓冲区分析。鹰眼功能加载地图、浮动加载坐标转换功能、比例尺、坐标设计62、页面布局设计(窗体分为多个)78三、程序设计代码:ShowInTaskbar-True(令窗口不在任务栏里显示)StartPosition-CenterScreen(让窗口运行时出现在屏幕最中间)FormBorderStyle-None(去掉窗体的边框和标题栏,这样才像欢迎界面嘛)BackgroundImage-(这个可以自己先做一副比较好的图片或者找一副都可以,最好是刚好和你的欢迎窗口相同大小的)或者你也可以在窗口上设置背景颜色写些文字之类的都可以,窗口大小就随便你啦。修改Program.cs文件里的Application.Run(newform1());将其改成Application.Run(newForm9());进入:Form1frm1=newForm1();frm1.MdiParent=this.MdiParent;frm1.Show();this.Hide();退出:DialogResultresult=MessageBox.Show(确定要退出吗,提示,MessageBoxButtons.YesNo,MessageBoxIcon.Question);if(result==DialogResult.Yes){Application.Exit();}滚动:设置Timer属性Enable改为true。Label中属性ATUsize改为False。添加代码:label1.Text=label1.Text.Substring(1,label1.Text.Length-1)+label1.Text.Substring(0,1);加载地图:1:许可:ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine)2:MapControl加载属性3:浮动加载:根据这个位置作为当前位置找到地图文档位置及文件名的命令为:boolblMxdFileOK;stringMxdPath;MxdPath=Application.StartupPath+@\..\..\..\..\..\data\无T标括?题琣.mxd;blMxdFileOK=axMapControl1.CheckMxFile(MxdPath);if(blMxdFileOK){axMapControl1.LoadMxFile(MxdPath);}else{9}2、浏览功能:保存:ICommandcommand=newControlsSaveAsDocCommandClass();command.OnCreate(axMapControl1.Object);command.OnClick();打开地图:privatevoidToolStripMenuItem_Click(objectsender,EventArgse){ICommandpMxd=newControlsOpenDocCommandClass();pMxd.OnCreate(axMapControl1.Object);pMxd.OnClick();}添加数据:privatevoidToolStripMenuItem_Click(objectsender,EventArgse){ICommandpAddData=newControlsAddDataCommandClass();pAddData.OnCreate(axMapControl1.Object);pAddData.OnClick();}放大:privatevoidToolStripMenuItem_Click(objectsender,EventArgse){ICommandpfangda=newControlsMapZoomInToolClass();pfangda.OnCreate(axMapControl1.Object);axMapControl1.CurrentTool=pfangdaasITool;}缩小:privatevoidToolStripMenuItem_Click(objectsender,EventArgse){ICommandpsuoxiao=newControlsMapZoomOutToolClass();psuoxiao.OnCreate(axMapControl1.Object);axMapControl1.CurrentTool=psuoxiaoasITool;}漫游:privatevoidToolStripMenuItem_Click(objectsender,EventArgse){ICommandpPan=newControlsMapPanToolClass();pPan.OnCreate(axMapControl1.Object);axMapControl1.CurrentTool=pPanasITool;10}全幅显示:privatevoidToolStripMenuItem1_Click(objectsender,EventArgse){ICommandFullExtent=newControlsMapFullExtentCommandClass();FullExtent.OnCreate(axMapControl1.Object);FullExtent.OnClick();}自由缩放:privatevoidToolStripMenuItem1_Click(objectsender,EventArgse){ICommandpziyou=newControlsMapZoomPanToolClass();pziyou.OnCreate(axMapControl1.Object);axMapControl1.CurrentTool=pziyouasITool;}前一视图:privatevoid前一视图ToolStripMenuItem_Click(objectsender,EventArgse){ICommandpCommand=newControlsMapZoomToLastExtentBackCommandClass();pCommand.OnCreate(this.axMapControl1.Object);pCommand.OnClick();}后一视图:privatevoid后一视图ToolStripMenuItem_Click(objectsender,EventArgse){ICommandpCommand=newControlsMapZoomToLastExtentForwardCommandClass();pCommand.OnCreate(this.axMapControl1.Object);pCommand.OnClick();}右键快捷菜单:Contextmenustrip快捷菜单工具在mousedonwn中添加if(e.button!=2)return;//else{contextMenuStrip1.Show(axMapControl1,e.x,e.y);//}3、查询图查属性11点选查询代码:privatevoidbutton2_Click(objectsender,EventArgse){ICommandpse=newControlsMapIdentifyToolClass();pse.OnCreate(axMapControl1.Object);axMapControl1.CurrentTool=pseasITool;}查询显示图层:在MapControl事件中的OnSelectionChangedprivatevoidaxMapControl1_OnSelectionChanged(objectsender,EventArgse){stringstringvalue;IMappMap;pMap=axMapControl1.Map;ISelectionselection=pMap.FeatureSelection;IEnumFeatureSetupenumFeatureSetup=selectionasIEnumFeatureSetup;enumFeatureSetup.AllFields=true;//这里很必要IEnumFeatureenumFeature=enumFeatureSetupasIEnumFeature;enumFeature.Reset();IFeaturefeature=enumFeature.Next();while(feature!=null){stringvalue=feature.get_Value(2).ToString();//字段的值MessageBox.Show(stringvalue,城市);feature=enumFeature.Next();}}矩形选择:privatevoidbutton1_Click(objectsender,EventArgse){ICommandpselect=newControlsSelectFeaturesToolClass();pselect.OnCreate(axMapControl1.Object);axMapControl1.CurrentTool=pse