您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > GIS软件设计与实现实验报告
GIS软件设计与实现实验报告姓名:王兴平班级:测绘1103班学号:0145110620指导老师:李光强2015/1/5实验一数据加载与图层控制一、实验目的1.了解组件ArcEngine9.3开发环境的构建,以及相关软件的安装;2.掌握AE组件实现数据加载、缩放、平移等简单的功能;3.掌握程序代码实现数据加载、缩放、平移、拉窗放大等功能;4.掌握使用程序代码控制图层可视性、图层移动、图层移除等操作。二、实验准备完成时间:2学时预备知识:实验的操作系统环境为WindowsXP以上操作系统,要基于ArcEngine进行应用开发,系统中需要安装有:ArcGIS9.3、ArcEngine9.3和C#2005以上版本相应软件。实验数据:文件夹“中国地图”三、实验步骤及方法1.创建C#工程,添加窗体及相关AE组件,窗体设计如下图所示:运行程序,并点击工具栏上按钮,记录各功能按钮的操作。2.利用程序代码添加SHP文件,并完成SHP加载、地图缩放、全图、平移、拉窗放大等操作,设计界面如下图所示:要求:1)工具栏上的“打开”按钮,功能是通过打开文件对话框,允许一次加载多个SHP文件,而且在对话框中仅显示SHP文件;2)平移、放大、缩小功能按钮的操作顺序过程必须是用户先点击按钮,然后再点击地图时才完成相应功能操作;3)工具栏上的最后一个按钮为拉窗放大,即用户点击该按钮时,在地图可以画出一个矩形,然后将矩形内的地图放大。3.使用程序代码控制图层可见性及移动图层,界面设计如下图所示:注意:1)工具栏后四个按钮依次为:上移选中图层、下移选中图层、移除选中图层操作;2)图层列表里,依据图层是否选中而设置图层的可见性。4.为地图添加右键菜单,在右键菜单中实现全图、平移、放大、缩小、信息(identity)功能,使用鼠标中键实现地图平移。五.实验主要代码privatevoidLoadFile_Click(objectsender,EventArgse){OpenFileDialogdlg=newOpenFileDialog();dlg.Filter=Shapefile(*.shp)|*.shp;dlg.Title=打开Shape数据文档;dlg.Multiselect=true;//定义存放打开IFeatureClass的字符串数组string[]FilePath;if(dlg.ShowDialog()==DialogResult.OK){FilePath=newstring[dlg.FileNames.Length];FilePath=dlg.FileNames;if(FilePath.Length0){stringWorkSpacePath=System.IO.Path.GetDirectoryName(FilePath[0]);string[]ShapeFilePath=newstring[FilePath.Length];//获得打开IFeatureClass的字符串数组for(inti=0;iFilePath.Length;i++){ShapeFilePath[i]=System.IO.Path.GetFileName(FilePath[i]);}IWorkspaceFactorypWorkspaceFactory=newShapefileWorkspaceFactoryClass();IWorkspacepWorkspace=pWorkspaceFactory.OpenFromFile(WorkSpacePath,0);IFeatureWorkspacepFeatureWorkspace=pWorkspaceasIFeatureWorkspace;for(inti=0;iShapeFilePath.Length;i++){IFeatureClasspFeatureClass=pFeatureWorkspace.OpenFeatureClass(ShapeFilePath[i]);IDatasetpDataset=pFeatureClassasIDataset;IFeatureLayerpFeatureLayer=newFeatureLayerClass();pFeatureLayer.FeatureClass=pFeatureClass;pFeatureLayer.Name=pDataset.Name;ILayerpLayer=pFeatureLayerasILayer;this.axMapControl1.Map.AddLayer(pLayer);this.axMapControl2.Map.AddLayer(pLayer);}}}}实验2地图符号化与专题制图一、实验目的1.掌握图层的符号化操作;2.掌握专题制图的常用方法以及基本算法。二、实验准备完成时间:2学时预备知识:实验的操作系统环境为WindowsXP以上操作系统,要基于ArcEngine进行应用开发,系统中需要安装有:ArcGIS9.3、ArcEngine9.3和C#2005以上版本相应软件。学习C#中的ListView控件的使用方法和颜色拾取对话框的使用,以及ArcEngine中的颜色定义的方法。实验数据:文件夹“中国地图”三、实验步骤及方法2.利用程序代码实现点状要素图层的符号化,界面如图1所示:图1要求:1)点击“点符号化”按钮时需要判断当前选中的图层是否为点状图层;2)选中的图层为点状图层以后,弹出如图2所示符号设置对话框:图2提示:符号列表框为ListView控件,点击颜色按钮时,弹出颜色拾取对话框,如图3:图33)在符号选择器中,点击确定后,将根据设置完成点图层的符号化。2.在图1所示的界面中,点击“面符号化”,完成所选择面状要素图层的符号化。要求:1)在点击事件中,需要判断当前选择的图层是否为面图层;2)在程序代码中实现指定符号填充和颜色设定。3.完成单值渲染操作,如图4。图44.完成分级渲染操作,如图5。图55.选做:在TOC控件中添加快捷菜单,并在其中添加“图层属性”选项,在点击该选项时,弹出如图6所示的图层属性对话框,并在其中的Symbol选项卡中完成专题制图设置工作。四.实验主要代码MapOperationsmapOp;privateIBasicMappBasicMap=newMap()asIBasicMap;privateILayerpLayer=newFeatureLayer();objectoLegendGroup=newobject();objectoIndex=newobject();esriTOCControlItempTocItem=newesriTOCControlItem();publicForm1(){InitializeComponent();}privatevoidtoolStripButton1_Click(objectsender,EventArgse){IWorkspaceFactorypWorkspaceFactory;IFeatureWorkspacepFeatureWorkspace;IFeatureLayerpFeatureLayer;//获取当前路径和文件名OpenFileDialogdlg=newOpenFileDialog();dlg.Filter=*.SHP|*.shp;dlg.Multiselect=true;dlg.ShowDialog();stringstrFullPath;this.lblInfor.Text=正在加载数据...;this.statusStrip1.Refresh();for(inti=0;idlg.FileNames.Length;i++){strFullPath=dlg.FileNames[i];if(strFullPath==)return;intIndex=strFullPath.LastIndexOf(\\);stringfilePath=strFullPath.Substring(0,Index);stringfileName=strFullPath.Substring(Index+1);//打开工作空间并添加shp文件pWorkspaceFactory=newShapefileWorkspaceFactory();//注意此处的路径是不能带文件名的pFeatureWorkspace=(IFeatureWorkspace)pWorkspaceFactory.OpenFromFile(filePath,0);pFeatureLayer=newFeatureLayer();//注意这里的文件名是不能带路径的pFeatureLayer.FeatureClass=pFeatureWorkspace.OpenFeatureClass(fileName);pFeatureLayer.Name=pFeatureLayer.FeatureClass.AliasName;axMapControl1.Map.AddLayer(pFeatureLayer);}axMapControl1.ActiveView.Refresh();this.lblInfor.Text=已加载了+dlg.FileNames.Length.ToString()+个图层!;}#region图层操作privatevoidtoolStripButton2_Click(objectsender,EventArgse){this.axMapControl1.Extent=this.axMapControl1.FullExtent;}privatevoidtoolStripButton3_Click(objectsender,EventArgse){this.mapOp=MapOperations.Pan;}privatevoidtoolStripButton4_Click(objectsender,EventArgse){IEnvelopepEnvelope;pEnvelope=axMapControl1.Extent;pEnvelope.Expand(0.5,0.5,true);axMapControl1.Extent=pEnvelope;axMapControl1.Refresh();}privatevoidtoolStripButton5_Click(objectsender,EventArgse){IEnvelopepEnvelope;pEnvelope=axMapControl1.Extent;pEnvelope.Expand(1.5,1.5,true);axMapControl1.Extent=pEnvelope;axMapControl1.Refresh();}privatevoidtoolStripButton6_Click(objectsender,EventArgse){this.mapOp=MapOperations.ZoomRectangle;}IEnvelopepEnvelope;privatevoidaxMapControl1_OnMouseDown(objectsender,IMapControlEvents2_OnMouseDownEvente){if(mapOp==MapOperations.ZoomRectangle){pEnvelope=this.axMapControl1.TrackRectangle();axMapControl1.Extent=pEnvelope;axMapControl1.Refresh();}elseif(mapOp==MapOperations.Pan)this.axMapControl1.Pan();}#endregion///summary///点符号化////summary///paramname=sender/param///paramname=e/paramprivatevoidtoolStripButton7_C
本文标题:GIS软件设计与实现实验报告
链接地址:https://www.777doc.com/doc-2874169 .html