欢迎来到天天文库
浏览记录
ID:17766078
大小:2.00 MB
页数:22页
时间:2018-09-05
《gis设计-07122869_吴玉环_gis设计与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、中国矿业大学2012级地信1班实验报告课程名称GIS设计与开发上机时间2015年6月18日学生姓名吴玉环学号07122869任课教师张海荣中国矿业大学环境与测绘学院【上机目的】熟悉VisualStudio开发环境,掌握ArcGISEngine的组件式开发方式,掌握GIS基本功能的开发方法。【上机内容】以ArcObjectsfor.NET为开发包,用C#高级程序设计语言二次开发一个包含GIS基本操作的应用程序,实现地图文档的打开、保存、地图缩放/漫游,属性查询,空间查询,建立并访问地理空间数据库,TOC控件的右键菜单,添加shape数据,栅格数据等。【上
2、机要求】1.完成代码的编写工作,通过对示例代码的学习,把这些分散的代码相互粘合起来,形成一个能实现常用GIS功能的应用程序。学会VisualStudio2010代码常用调试方法,学会QueryInterface。2.了解利用ComGIS进行应用型地理信息系统建设工作的基本思路。3.独立实验,认真、按时完成实验报告。代码编写过程中,同时思考以下问题:(1)数据源如何被加载访问的?ArcGIS数据组织方式?(2)ArcGISEngine开发中所涉及的面向对象知识中诸如类,继承,对象,接口等如何表达的?【详细步骤】1.使用控件创建第一个桌面应用程序(1)在开
3、始菜单中找到MicrosoftVisualStudio2010(简称VS),打开新建一个Windows窗体应用程序(2)在点了确定之后,在VS的工具箱中找到和ArcGISEngine相关的控件。其中,AxMapControl就是Map地图控件,AxTOCControl是目录控件,AxToolbarControl是GIS工具栏控件,AxPageLayouControl是布局地图控件,AxSceneControl是Scene三维场景控件,axGlobeControl是Globe控件,AxLicenseControl是许可控件,AxSymbologyCont
4、rol是符号选择器(3)然后添加TOC,Map,Toolbar控件。许可控件是首选的,否则无法使用。点击窗体的标题栏处选中窗体,拖动窗体至合适的大小。拖动工具箱容器里的Panel控件至窗体(默认Name为panel1),右键属性调整Dock为Top;拖动分栏控件SplitContainer至panel1下面,调整Dock属性为Fill。添加引用(3)添加地图文档(5)Toolbar控件和TOC控件与Map控件的关联(设置Buddy属性)。Toolbar控件和TOC控件需要一个伙伴控件协同工作,因此都有一个Buddy属性。伙伴控件可以是MapContro
5、l,PageLayoutControl,SceneControl或者globeControl控件。(6)添加工具命令(7)运行程序,出错。修改如下代码:staticvoidMain(){ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine);Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(newForm1());}}}(8)经修
6、改错误运行程序成功,如下图。2.地图打开与保存(1)从工具箱中的菜单和工具栏把MenuStrip工具条拖到panel1里,新建文件菜单,在子菜单里新建“打开mxd”项,修改属性Name为OpenMxd,。(2)在属性对话框中单击事件按钮,找到OpenMxd的Click,在蓝色区域双击,便建立了OpenMxd的Click事件的委托处理函数。添加如图所示代码。代码如下:privatevoidOpenMxd_Click(objectsender,EventArgse){OpenFileDialogopenFileDialog=newOpenFileDialo
7、g();openFileDialog.Title="打䨰开amxd文?档̦Ì";openFileDialog.Multiselect=false;openFileDialog.Filter="*.mxd
8、*.mxd";openFileDialog.RestoreDirectory=true;if(openFileDialog.ShowDialog()==DialogResult.OK){try{IMapDocumentmapDocument=newMapDocumentClass();boolisPasswordProtected=mapDocu
9、ment.get_IsPasswordProtected(openFileDialog.Fil
此文档下载收益归作者所有