- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ArcGIS应用与开发上机报告4_客户化ArcDesktop
实 验 报 告
课程名称: ArcGIS应用与开发
系部名称: 测绘工程学院
专业班级: 地理信息系统10-2
学生姓名: 黄昕鑫
学 号:
指导教师: 梅晓丹
黑龙江工程学院教务处制
实验项目 客户化ArcDesktop 实验日期 2012.10.16 实验地点 实验楼606 同组人数 1 实验类型 □ 传统实验 □ 现代实验 □ 验证性 □ 综合性 □ 设计性 □ 其 他 □ 自立式合作式研究式 实验目的
1.初步掌握AO的结构和功能;
2.掌握客户化ArcGIS Desktop开发方式--基于VBA的GIS二次开发
实验仪器设备
1.硬件环境:计算机一台
2.软件环境WindowsXP操作系统、三原理、及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。
VB编辑器
单击菜单栏中的命令,选择的项, 直接启动ArcMap的VBA编辑器;或者选择的项,进入Macro对话框,在“Macro Name”文本框中输入要创建的宏的名称,并点按钮,启动VBA编辑器用户可以根据实际选择在Normal节点或者Project节点的ThisDocument、Forms、Modules中编写宏(函数或过程),Normal节点下所写的宏系统自动保存,除非用户删除,否则它将始终存在并在任何工程中都有效;而在Project节点下所写得宏随工程保存(如不保存工程,则宏也将不被保存),并中有效运行VBA宏①启动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窗口,打开数据框窗口属性对话框,选择常规页注意地图单位⑧关闭对话框,并且单击新建地图按钮⑨再一次双击数据框打开数据框属性对话框,选择常规页,注意此时地图单位已经设为英尺。以后每一个新的地图文档创建时,地图单位都将被设置为英尺。获得当前地图文档信息
图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 IMxDocument
Dim pMap As IMap
Set pDoc = Application.Document
Set pMap = pDoc.FocusMap
Dim i As Integer
i = pMap.LayerCount
Dim pLayer As ILayer
Dim pFeaturelayer As IFeatureLayer
Dim j As Integer
Dim msg1, msg2, temp1,
文档评论(0)