Part6 基于VBA的二次开发

上传人:慢*** 文档编号:233076284 上传时间:2022-01-01 格式:PPT 页数:44 大小:3.34MB
返回 下载 相关 举报
Part6 基于VBA的二次开发_第1页
第1页 / 共44页
Part6 基于VBA的二次开发_第2页
第2页 / 共44页
Part6 基于VBA的二次开发_第3页
第3页 / 共44页
Part6 基于VBA的二次开发_第4页
第4页 / 共44页
Part6 基于VBA的二次开发_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《Part6 基于VBA的二次开发》由会员分享,可在线阅读,更多相关《Part6 基于VBA的二次开发(44页珍藏版)》请在金锄头文库上搜索。

1、Wuhan University School of Remote Sensing and Information EngineeringGISGIS工程设计开发综合实习工程设计开发综合实习张张文、黄长长青武汉汉大学遥感信息工程学院基于C#.NET和AO/AE的GIS设计与开发Wuhan University School of Remote Sensing and Information Engineering2PART 6PART 6:基于:基于 VBAVBA的二次开发的二次开发ArcObjects是ArcGIS家族的应用,如ArcMap,ArcCatalog, ArcScene等应用程序

2、的开发平台。ArcObjects是ArcGIS Desktop的开发平台。 ArcObjects是利用微软的COM技术来建立的,因此,可以使用兼容COM技术的所有语言来进行开发,如VC、VB、Java、Delphi、.Net等等。 从而对ArcObjects的结构进行扩展。 6.1 概述 GIS设计与开发 3对象模型图GIS设计与开发 4在UML的图中,有三种类型的类,abstract classes , colasses, 和classes.(1)coclass代表在开发环境中可以使用对象定义语法直接创建的对象。在Visual Basic环境中,可以写为Dim pFoo As New Foo

3、Object(2)class不能直接创建新的对象,但是类的对象可以作为另一个类的属性进行创建。(3)abstract class不能用于创建新类,但是可以作为子类的一个说明。(1)类和对象GIS设计与开发 5在abstract classes, coclasses, 和classes之间具有多种可能的类之间的关系。如上图所示,一个Owner(主人)可能有一个或多个Land parcels(地块);一个Land parcel(地块)也可能有一个或多个Owners(主人)。Associations代表类之间的关系。(2)关系GIS设计与开发 6类的继承表示特殊类具有超类的所有属性和方法,同时具有一

4、些另外的属性和方法。右图表示:primary line和secondary line是line的子类。(3)类的继承GIS设计与开发 7详细说明请参考电子书:Exploring_ArcObjects.pdf,这里只对部分知识加以说明,起到一个入门的作用。 可以使用不同的开发语言来进行开发,但是最容易和最快的还是使用ArcGIS应用,VBA: Visual Basic Application。 1、启动ArcMap。 启动ArcMap,并添加一些图层。 2、使用定制对话框显示或隐藏工具条。 点击Tools菜单,点击Customize子菜单。 6.2 开始使用VBA和ArcObjects GIS设

5、计与开发 8在如上对话框中,可以选择或取消某些工具条。 GIS设计与开发 9点击New按钮,在弹出的对话框中创建新的工具条。注意:在Save下拉菜单中选择“无标题”,不要选择Normal.mxt3、创建新的工具条 GIS设计与开发 10 (1)右键点击刚才添加的工具条,点击右键,选择Customize子菜单。(2)点击Commands选项卡, (3)选择Pan/Zoom类,将需要的命令按钮利用鼠标拖动到工具条中。4、在工具条上添加按钮GIS设计与开发 11如下图所示,在Toolbars选项卡中,点击Rename,修改工具条的名称。 5、修改工具条的名称 GIS设计与开发 12(1)右键点击工具

6、条,选择Customize,(2)然后从工具条中,将相关的按钮从工具条中拖出,删除相关的按钮。 7、在工具条上添加菜单 如图所示,在Customize对话框中,选择Menus类,然后拖动Commands列表中的相关菜单到所创建的新的工具条中。 也可以直接修改ArcMap的菜单系统。6、从工具条中删除按钮GIS设计与开发 13(1)点击File菜单,点击Save As。(2)导航到Templates文件夹,保存成模板文件(*.mxt)。 8、将变化存储到模板中GIS设计与开发 14可以使用VBA的集成开发环境,创建宏用于帮助自动执行一些重复性的工作,扩展内置的嵌入函数。 (1)创建宏 使用VB编

7、辑器,可以编辑宏,将宏从一个模块拷贝到另外一个宏,改变存储宏的模块的名字,改变宏的名称。 点击Tools菜单,指向Macros,然后点击Macros。 9、在VBA中创建Macros(宏)GIS设计与开发 15 在如上图所示的对话框中,输入”MyZoomIn”,然后点击Create,调出如下图所示的VBA的开发环境。 GIS设计与开发 16GIS设计与开发 17代码解释:(1)第一行:Dim pDoc As IMxDocument定义一个表示ArcMap文档的变量。(2)第二行:Dim pEnv As IEnvelope定义一个矩形,确定数据的范围。(3)ThisDocument:预定义的变量

8、,代表当前的文档。(4)ActiveView:提供一个IActiveView接口,将文档数据连接到当前的屏幕显示数据。GIS设计与开发 18(2)关闭VBA开发环境,返回到ArcMap。GIS设计与开发 19在ArcMap环境中,点击菜单Tools,指向Macros,然后点击Macros。 选择Module1.MyZoomIn,然后点击Run,当前的图层将被放大显示。(3)运行宏GIS设计与开发 201)点击Tools菜单,点击Customize子菜单2)点击Commands选项卡,选择Project.Module1.MyZoomIn。 (4)将宏添加到工具条上GIS设计与开发 213)将Pr

9、oject.Module1.MyZoomIn拖动到My Own Tools工具条上。4)在Customize环境下,可以右键点击该按钮,修改其相关属性,如点击Change Button Image,改变图标的类型。5)关闭Customize对话框。6)点击刚才添加的宏按钮,运行相关的宏。练习:请按照同样的办法添加MyZoomOut宏。 区别在于:将 pEnv.Expand 0.5, 0.5, True 改为: pEnv.Expand 2.0, 2.0, TrueGIS设计与开发 22可以在代码中调用一些嵌入式命令,如Find命令。具体方法如下:(1)在ArcMap中,点击Tools,指向Mac

10、ros,然后点击Visual Basic Editor。10、调用嵌入命令GIS设计与开发 23 (2)在如图所示的Visual Basic Editor中,在Modules中添加一个模块,即Module2,然后添加如下图所示的代码。GIS设计与开发 24(3)返回到ArcMap。(4)右键点击需要添加命令的菜单,点击Customize,如图所示,将Commands中的宏拖动到菜单条上。GIS设计与开发 25(5)测试: 调入一个图层,将其放大或缩小,点击刚才添加的按钮,对程序进行测试。GIS设计与开发 26命令(command)类似于一个宏,但是允许有更多的定制。命令是UIControl的一

11、种类型。 在VBA中创建命令的具体方法如下:(1)在ArcMap环境中,点击菜单Tools,Customize。(2)在Customize对话框中,点击Commands选项卡,(3)在Save下拉框中,选择你的Project的名字,或者选择“无标题”11、在VBA中创建一个Command(命令)GIS设计与开发 27(4)在Categories列表框中,选择UIControls。(5)点击New UIControl。(6)在如图所示的New UIControl对话框中,选择UIButtonControl,然后点击Create and Edit.GIS设计与开发 28下面为UIButtonCon

12、trol的点击(Click)事件添加代码。 添加将图形恢复到数据集的范围。 添加如下代码:(6)为UIToolControl添加代码GIS设计与开发 29(7)下面为该Command添加ToolTip(工具提示)和message(消息)。 在Procedure(进程)组合框中,选择Message,并添加如下代码。GIS设计与开发 30(8)点击ToolTip进程,并输入下列代码GIS设计与开发 31(9)点击File,Close and Return to ArcMap (10)在ArcMap中,点击Tools, Customize, 然后点击Commands选项。(11)点击Save下拉框,

13、选择你的project名,或“无标题”(12)在Categories列表中,选择UIControls 并拖动UIButtonControl1到你所创建的工具条上,如图所示。然后关闭Customize对话框。(13)在ArcMap中打开一个图层,然后进行测试。GIS设计与开发 32(1)在ArcMap环境中,点击Tools,Customize;(2)点击Commands选项卡,在Save下拉组合框中选择“无标题”;(3)在Categories列表中选择UIControls;(4)点击New UIControl;(5)选择UIToolControl类型,点击Create and Edit。12、在

14、VBA中创建一个Tool(工具)GIS设计与开发 33(6)添加如下代码GIS设计与开发 34(7)在UIToolControl1的Enabled事件进程中添加如下代码:(8)在CursorID事件过程中添加如下代码,从而控制使用该工具时的光标的类型。GIS设计与开发 35(9)按照如同11创建一个Command类似的方法创建ToolTip和message。(10)点击File,Close and Return to ArcMap。(11)在ArcMap中,点击Tools,Customize,然后点击Commands选项。(12)在Commands列表中,选择UIControls,然后拖动UI

15、ToolControl到自己创建的工具条中,然后关闭Customize对话框。GIS设计与开发 36(14)点击刚才添加的工具按钮,然后在图层显示区画一个矩形,将执行放大处理。(15)如果删除了所有的图层,工具按钮将变为灰色,这是执行Enabled事件的结果。GIS设计与开发 37(1)右键点击工具条,在弹出菜单中选择Customize,这时可以对按钮进行修改。注意:如果没有打开Customize对话框,将不允许对按钮进行修改。(2)右键点击需要修改的按钮,选择Change Button Image,修改按钮的图像。 13、改变按钮的属性GIS设计与开发 38 通过建立一些定制的用户接口来安排

16、标准的用户界面以及添加新的定制命令。 AO的定制框架允许用户定制ArcMap, ArcCatalog, 以及其他的ArcGIS应用。可以通过管理用户接口元素:toolbars, menus, commands等等。 (1)文档(Documents)和模板(Templates) 当我们使用ArcMap时,打开了一个图形文档(.mxd),该文档中存储了图形的状态、定制的用户接口设置、以及VBA工程等。 理解文档和模板是理解使用ArcObjects对ArcGIS的应用进行定制的关键。 对于不同的应用,文档和模般的结构和功能是不同的。6.3 定制用户接口GIS设计与开发 39有多种定制ArcMap的方法:(1)通过给地理数据添加空间参考,以及定义数据的显示方式来定制;(2)通过创建具有空间参考和辅助值图要素的图形输出来定制。(3)通过添加、删除、重新安排标准用户接口中的元素来定制。(4)通过在VBA工程中添加代码来定制。对ArcMap的所有定制都存储在一个map文档,或者是一个map模板中。map文档的后缀名为: .mxd6.3.1 定制ArcMapGIS设计与开发 40 ArcMap缺省的模

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号