ImageVerifierCode 换一换
格式:DOCX , 页数:42 ,大小:8.82MB ,
资源ID:6822519      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-6822519.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(GIS设计与开发实验报告Word文件下载.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

GIS设计与开发实验报告Word文件下载.docx

1、本次实验主要为了认识ArcGIS Engine开发环境,并学习简单的窗口搭建、控件绑定以及添加引用。实验二:建立 ArcGIS Engine应用程序框架搭建Windows应用程序窗口,实现打开shapefile文件功能。1.1、新建项目启动VS2010,选择“文件|新建|项目”,在项目类型中选择VisualC#,再选择Windows应用程序模板,输入名称“mymap2”,点击确定。1.2、添加控件选择工具箱中的“菜单和工具栏|StatusStrip(状态栏)”,将其拖入到窗体。选择工具箱中的“ArcGIS Windows Forms”节,将“AxToolbarControl”控件拖入窗体,并将

2、其属性中的Dock设置为Top。选择工具箱中的“容器|SplitContainer(容器)”拖入窗体,并将其属性中的Dock设置为fill。将TabControl 控件拖入Panel1, 将Alignment属性设置为Bottom, Dock 属性设置为Fill。点击 TabPages 属性右边的按钮,弹出 TabPage 集合编辑器,将 tabPage1 的 Name 设置为 “Layer”,Text 设置为“图层”;将tabPage2 的Name设置为“Property”,Text设置为“属性”。如下所示:1.3、控件绑定通过以上步骤添加的控件还只是单独存在,而我们的程序需要各控件间协同工

3、作,因此要进行控件绑定。分别右击ToolbarControl、TOCControl 控件,将Buddy设置为axMapControl1,如下图所示:1.4、添加工具右击ToolbarControl,选择“属性|Items”,点击Add,选择Commands选项卡中的Generic,双击Open、SaveAs、Redo、Undo将相应工具添加到工具条。1.5、编译运行按F5即可编译运行程序。2.1、添加shp数据在VS2010的工具箱中,展开菜单和工具栏,双击MenuStrip控件,这样就在窗体上添加了一个菜单控件;同样双击添openFileDialog控件,置于窗体任何位置。在菜单上点击,输入

4、“添加SHP数据”作为菜单的标题,输入“AddShpData”作为菜单的名称。2.2、代码处理选中“添加SHP数据”菜单,在属性框中点击事件按钮,在事件列表中双击Click事件;或者双击“添加SHP数据”菜单自动生成的事件处理方法如下图所示,我们将在方法内输入处理代码。private void 添加SHP数据ToolStripMenuItem_Click(object sender, EventArgs e) /使用openFileDialog获取shapefile文件 openFileDialog1.Filter = shapefile 文件(*.shp)|*.shp; /不允许openFi

5、leDialog同时选择多个文件 openFileDialog1.Multiselect = false; /返回值为openFileDialog所打开文件的窗体 DialogResult pDialogResult = openFileDialog1.ShowDialog(); /如果弹出窗口点击的不是确定的话就return if (pDialogResult != DialogResult.OK) return; string pPath = openFileDialog1.FileName; string pFolder = System.IO.Path.GetDirectoryName

6、(pPath); string pFileName = System.IO.Path.GetFileName(pPath); /新建一个Shapefile的工作空间工厂 IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactory(); /打开Shapefile的工作空间 IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(pFolder, 0); IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatu

7、reWorkspace;/QI 跳转 /打开要素类 IFeatureClass pFC = pFeatureWorkspace.OpenFeatureClass(pFileName);/可实例化类 /创建要素图层 IFeatureLayer pFLayer = new FeatureLayerClass(); /关联图层和要素类 pFLayer.FeatureClass = pFC; pFLayer.Name = pFC.AliasName; ILayer pLayer = pFLayer as ILayer; /将图层和要素类添加到地图控件中 IMap pMap = axMapControl

8、1.Map; pMap.AddLayer(pLayer); /刷新axMapControl1的视图 axMapControl1.ActiveView.Refresh(); 2.3、编译运行在键盘上按 F5 键,运行调试,点击“添加SHP数据”菜单,在弹出的对话框中,选中任意一个shp文件,点击确定,即可把shp文件加载到地图控件中。本次实验目的主要在于使用工作空间打开shapefile文件,之后也可以将其引申到打开栅格数据等功能!实验三:代码加载 Mxd 文档使用代码加载Mxd文档。1、添加事件按照实验二的方式添加菜单“打开Mxd文档”,菜单的Name属性为OpenMxdDoc.添加Click

9、事件。在菜单的Click事件处理方法中添加如下代码:首先在头部定义IMapDocument pMapDocument,如下图所示:代码如下:private void OpenMxdDoc_Click(object sender, EventArgs e) /使用openFileDialog获取mxd文件地图文档(*.mxd)|*.mxd /将数据加载入 pMapDocument 并与 map 控件联系起来 pMapDocument = new MapDocumentClass(); pMapDocument.Open(pPath, ); for (int i = 0; i pMapDocume

10、nt.MapCount; i+) /遍历可能的 Map 对象 axMapControl1.Map = pMapDocument.get_Map(i); /刷新地图 axMapControl1.Refresh();2、编译运行按F5即可编译运行程序,你可以通过菜单“打开Mxd文档”打开地图文档,浏览地图.熟悉帮助文档的使用和对象模型图的使用对基于ArcGIS Engine的开发有很大帮助。实验四:调用新创建类封装方法实现Mxd文档操作新建自定义类,封装对Mxd文档的各类操作,提高代码重用性与程序安全性。1、新建类库1.1打开实验2-3所建项目,在解决方案管理器中右击选择“mymap2|添加|新建

11、项”;1.2 在弹出对话框中点击“Visual C#模板”,选择“类”命名为“MyMaxDocClass1.cs”.2、用新创建类封装方法2.1双击“MyMaxDocClass.cs”类,在代码框中导入命名空间.2.2将新建类改为静态变量,并对文档命令进行封装.namespace mymap2 /静态变量 public static class MyMxDocClass /定义公有静态IMapDocument对象,并实例化 public static IMapDocument pMapDocument = new MapDocumentClass(); private static Syste

12、m.Windows.Forms.OpenFileDialog OpenFileDialog2; private static System.Windows.Forms.SaveFileDialog SaveFileDialog2; /新建地图文档 public static void NewMapDoc(AxMapControl axMapControl1) /选择新建地图文档的位置 SaveFileDialog2 = new SaveFileDialog(); SaveFileDialog2.Title = 新建地图文档 SaveFileDialog2.Filter = Mxd文档(*.mx

13、d)|*.mxd /显示新建的地图文档 SaveFileDialog2.ShowDialog(); string sFilePath = SaveFileDialog2.FileName; /保证新建的文档命名不为空 if (sFilePath != ) /创建并打开新的地图文档 pMapDocument.New(sFilePath); pMapDocument.Open(sFilePath, /MapControl1显示的地图为MapDocument中的第一张 axMapControl1.Map = pMapDocument.get_Map(0); else /打开地图文档 public s

14、tatic void OpenMapDoc(AxMapControl axMapControl1) /选择要打开的地图文档的路径 OpenFileDialog2 = new OpenFileDialog(); OpenFileDialog2.Title = 打开地图文档 OpenFileDialog2.Filter = /显示新打开的地图文档 OpenFileDialog2.ShowDialog(); string sFilePath = OpenFileDialog2.FileName; /判断选中的地图文档是否有效 if (pMapDocument.get_IsMapDocument(sF

15、ilePath) /添加地图文档到MapControl1中 /刷新窗口 /保存地图文档 public static void SaveMapDoc() /判断MapDocument中的地图文档是否为只读 if (pMapDocument.get_IsReadOnly(pMapDocument.DocumentFilename) MessageBox.Show(地图文档只读! pMapDocument.Save(pMapDocument.UsesRelativePaths, true); /相对路径保存保存成功! /另存为 public static void SaveAsMapDoc() /选

16、择地图文档保存位置地图文档另存为 string pFilePath = SaveFileDialog2.FileName; /判断路径是否为空 if (pFilePath = null) /如果保存路径和当前文档路径相同,就替换原文件保存 if (pFilePath = pMapDocument.DocumentFilename) SaveMapDoc(); /否则另存为 else pMapDocument.SaveAs(pFilePath, true, true); /对话框显示保存成功 3、封装方法的调用3.1同实验三中,在菜单上点击,依次输入“新建Mxd文档、另存Mxd文档、”作为菜单的

17、标题,分别修改Name属性“NewMxdDoc、SaveAsMxdDoc”作为菜单的名称.3.2双击菜单,在自动生成的事件处理方法中加载方法调用代码./保存Mxd文档 private void SaveMxdDoc_Click(object sender, EventArgs e) MyMxDocClass.SaveMapDoc(); /新建Mxd文档 private void NewMxdDoc_Click(object sender, EventArgs e) MyMxDocClass.NewMapDoc(axMapControl1); /另存Mxd文档 private void Save

18、AsMxdDoc_Click(object sender, EventArgs e) MyMxDocClass.SaveAsMapDoc();4、调试运行点击“生成|生成解决方案”,然后点击运行按钮或在键盘上按 F5 键,运行调试.该实验主要是实现使用封装类方法实现对Mxd文档的操作,提高代码重用性。实验五:ArcGIS Engine 实现视窗联动使用ArcGIS Engine代码实现视窗联动。1、新建一个Windows窗体应用程序启动VS2010,选择“文件|新建|项目|Windos 窗体应用程序”,在项目类型中选择Visual C#,再选择Windows应用程序模板,输入名称“FormsL

19、inks”,点击确定。1.2添加控件:选择工具箱中的“容器|SplitContainer(容器)”拖入窗体,并将其属性中的Dock设置为Fill;拖入MapControl控件,设置Dock属性为Fill;拖入PageLayoutControl控件,设置Dock属性为Fill。;最后将LicenseControl(许可控件)拖入窗体任意位置.2、新建类和加载代码在解决方案管理器中右击选择“FormsLinks |添加|新建项”,在弹出对话框中点击“Visual C#模板”,选择“类”命名为“MapAndPage”;双击“MapAndPage”类,在代码框中导入命名空间,在代码框里引用类库,并加载

20、代码:namespace FormsLinks public class MapAndPage /将 MapControl 中的地图 复制 到 PageLayoutControl 中去 public void MapToPage(AxMapControl axMapControl1,AxPageLayoutControl axPageLayoutControl1) IObjectCopy pObjectCopy = new ObjectCopyClass(); Object pSourceMap = (Object)axMapControl1.Map; Object pOverwritedMa

21、p = (Object)axPageLayoutControl1.ActiveView.FocusMap; pObjectCopy.Overwrite(pSourceMap, ref pOverwritedMap);3、添加相应的代码打开Form1.cs的代码框,在代码框里引用类库,并加载代码: public partial class Form1 : Form /调用MapAndPage类 实例化对象 MapAndPage MapAndPage1 = new MapAndPage(); public Form1() InitializeComponent(); private void Fo

22、rm1_Load(object sender, EventArgs e) /加载MXD文档 openMapDoc(); private void openMapDoc() /实例化 OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.Title = 打开地图文档 Open Mxd Document地图文档 Map Document(*.mxd)|*.mxd /显示openFileDialog所打开的文件 openFileDialog1.ShowDialog(); string filePath = ope

23、nFileDialog1.FileName; /检查文件路径下的文件是否为有效的地图文档并加载 if (axMapControl1.CheckMxFile(filePath) axMapControl1.LoadMxFile(filePath); /否侧显示对话框文件路径和不是有效的地图文档 MessageBox.Show(filePath + 不是有效的地图文档! /调用MapAndPage private void axMapControl1_OnMapReplaced(object sender, IMapControlEvents2_OnMapReplacedEvent e) MapA

24、ndPage1.MapToPage(axMapControl1, axPageLayoutControl1); private void axMapControl1_OnAfterScreenDraw(object sender, IMapControlEvents2_OnAfterScreenDrawEvent e) /QI 方式通过焦点地图获得对象 IActiveView pPageLayoutView = axPageLayoutControl1.ActiveView.FocusMap as IActiveView; /控制显示范围 pPageLayoutView.ScreenDisplay.DisplayTransformation.VisibleBounds = axMapControl1.Extent; /刷新视图 axPageLayoutControl1.ActiveView.Refresh(); /根据 MapControl 的视图范围,确定 PageLayoutControl 的视图范围4、编译运行按F5即可编译运行程序,即可实现窗口联动.通过实验五了解到视窗联动的功能,在以后实习过程中要实现鹰眼功能提供了编程基础和熟悉了部分最基础的功能。实验六:ArcGIS Engine实现标签编辑与右

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2