ArcGIS应用与开发上机报告4_客户化ArcDesktop.doc_第1页
ArcGIS应用与开发上机报告4_客户化ArcDesktop.doc_第2页
ArcGIS应用与开发上机报告4_客户化ArcDesktop.doc_第3页
ArcGIS应用与开发上机报告4_客户化ArcDesktop.doc_第4页
ArcGIS应用与开发上机报告4_客户化ArcDesktop.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实 验 报 告 课程名称: ArcGIS应用与开发 系部名称: 测绘工程学院 专业班级: 地理信息系统10-2 学生姓名: 黄昕鑫 学 号: 20100367 指导教师: 梅晓丹 黑龙江工程学院教务处制实验项目客户化ArcDesktop实验日期2012.10.16实验地点实验楼606同组人数1实验类型 传统实验 现代实验 其 他 验证性 综合性 设计性 其 他 自立式 合作式 研究式 其 他一、 实验目的 1初步掌握AO的结构和功能; 2掌握客户化ArcGIS Desktop开发方式-基于VBA的GIS二次开发。二、 实验仪器设备1硬件环境:计算机一台;2软件环境:WindowsXP操作系统、ArcGIS9.3 Desktop平台。三、实验原理、内容及步骤 1实验原理: 通过ArcMap中VBA编程的两种方法:一种是写VBA宏,另一种是创建UIControl并在其事件中写入实现用户需求的代码,分别编写相应的程序。2实验内容:(1)使用定制对话框; (2)使用VB编辑器; (3)基于AO+VBA的程序示例。 3.实验步骤: (1)使用定制对话框 用鼠标右击任何工具栏(条),在弹出的上托式菜单中选择菜单项,进入Customize对话框;切换到“Customize”对话框的“Commands”页,选中“UIControls”后点击按钮,进入的“New UIControl”对话框;在“New UIControl”对话框中,用户可根据需要选择UIControl类型;UIControl创建后,在图5所示的“Customize”对话框选中UIControl并将其拖置到任意工具条上,用户便可象使用系统已有的Control一样使用所创建的UIControl。(2)使用VB编辑器单击菜单栏中的命令,选择的项, 直接启动ArcMap的VBA编辑器;或者选择的项,进入Macro对话框,在“Macro Name”文本框中输入要创建的宏的名称,并点按钮,启动VBA编辑器;用户可以根据实际选择在Normal节点或者Project节点的ThisDocument、Forms、Modules中编写宏(函数或过程),Normal节点下所写的宏系统自动保存,除非用户删除,否则它将始终存在并在任何工程中都有效;而在Project节点下所写得宏随工程保存(如不保存工程,则宏也将不被保存),并中有效;运行VBA宏。(3)基于AOVBA的程序示例启动ArcMap ,打开Visual Basic Editor;在 ArcMap中, select Tools - Macros - Visual Basic Editor;在Visual Basic 工程浏览器中,选择Normal- ArcMap 对象,并双击ThisDocument来打开代码窗口;在Normal.mxt 的ThisDouments代码窗口,选择MxDocument对象的NewDocument事件;添加代码到MxDocument_NewDocument 函数来设置默认的地图单位;关闭Visual Basic Editor;回ArcMap窗口,打开数据框窗口属性对话框,选择常规页注意地图单位;关闭对话框,并且单击新建地图按钮;再一次双击数据框打开数据框属性对话框,选择常规页,注意此时地图单位已经设为英尺。以后每一个新的地图文档创建时,地图单位都将被设置为英尺。 4.实验成果:(1)截图和关键代码:图1工具条填加图2获得当前地图文档信息图3获得当前地图文档信息代码图4添加图层到地图文档图5添加图层到地图文档代码图6最终成果设置默认的地图单位Dim pMxDoc as IMxDocument Set pMxDoc = ThisDocument Dim pMap as IMap Set pMap = pMxDoc.FocusMap pMap.MapUnits = esriFeet在ArcMap中用VBA获得当前地图文档信息Public Sub layer_loop()Dim pDoc As IMxDocumentDim pMap As IMapSet pDoc = Application.DocumentSet pMap = pDoc.FocusMapDim i As Integeri = pMap.LayerCountDim pLayer As ILayerDim pFeaturelayer As IFeatureLayerDim j As IntegerDim msg1, msg2, temp1, temp2 As Stringmsg1 = 所有图层 Layer: + vbCrLfmsg2 = 其中,要素图层Featurelayer + vbCrLfFor j = 0 To i - 1Set pLayer = pMap.Layer(j)temp1 = pLayer.Namemsg1 = msg1 + temp1 + vbCrLfIf TypeOf pLayer Is IFeatureLayer ThenSet pFeaturelayer = pMap.Layer(j)temp2 = pFeaturelayer.Namemsg2 = msg2 + temp2 + vbCrLfEnd IfNext jMsgBox msg1 + vbCrLf + msg2, vbInformationEnd Sub在ArcMap使用VBA添加图层到地图文档Public Sub addlayerfiletomap()Dim filepath As Stringfilepath = D:gis_ex09ex29Area.lyrDim pgxlayer As IGxLayerDim pgxfile As IGxFileSet pgxlayer = New GxLayerSet pgxfile = pgxlayerpgxfile.Path = filepathDim pmxdoc As IMxDocumentSet pmxdoc = ThisDocumentpmxdoc.FocusMap.AddLayer pgxlayer.LayerEnd Sub四、实验中存在的问题、解决方法及进一步的想法等 1实验中存在问题: 无法使用VBA添加图层到地图文档; 输入语句时出现错误; SQL不能实现功能。 2解决方法: 图层地址输入不正确,修改路径; 检查发现符号为中文,修改为英文符号正确; 用键盘输入容易发生错误,尽量用鼠标点击。 3进一步的想法:通过本次上机,我了解了ArcMap中VBA编程的两种方法:一种是写VBA宏,另一种是创建UIControl,并体验了语句的输入,发现非常易出错。虽然自己只是以一位实习者的身份对数据操作管理,但自己真正融入其中的时候就会产生角色变换的现象;不再把自己当做实习者或者练习者,而是把自己当做专业的制图者,从而对自己的要求就不是简单的按部就班把图做完,而是要做出自己的特点。不

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论