电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

arcengine+开发之葵x宝典

242页
  • 卖家[上传人]:小**
  • 文档编号:89122258
  • 上传时间:2019-05-18
  • 文档格式:DOC
  • 文档大小:9.46MB
  • / 242 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、1. 基础篇1.1. 开发环境1.1.1. 如何在ArcMap的VBA环境中编程ArcMap是ArcGIS家族的成员之一,它内置了一种集成编程环境VBA(Visaul Basic for Apllications)。通过VBA编程,用户不但可以扩展ArcMap的菜单、工具条等,而且可以完成大多数用户的特定需求。ArcMap中VBA编程的方法有两种,一种是写VBA宏,另一种是创建UIControl并在其事件中写入实现用户需求的代码。下面列出两种方法的一般步骤。方法一:写VBA宏(直接在VBA编辑器中编辑函数和过程)1、如图1,单击菜单栏中的命令,选择的项, 直接启动ArcMap的VBA编辑器;或者选择的项,进入如图2所示Macro对话框,在“Macro Name”文本框中输入要创建的宏的名称,并点按钮,启动VBA编辑器。图1 启动Macro对话框/启动VBA编辑器图2 Macro对话框2、在图3所示的窗口中,用户可以根据实际选择在Normal节点或者Project节点的ThisDocument、Forms、Modules中编写宏(函数或过程),Normal节点下所写的宏系统自动保存,除非

      2、用户删除,否则它将始终存在并在任何工程中都有效;而在Project节点下所写得宏随工程保存(如不保存工程,则宏也将不被保存),并只在工程中有效。图3 VBA编辑器(VBE)3、运行VBA宏在VBA编辑器中写好VBA代码后,有两种方式运行:第一,点击VBA编辑器工具条中的(运行)按钮,可立即运行写好的代码;第二,退出VBA编辑器,重新启动Macro对话框,如图2,选择要运行的VBA宏名称,点击按钮即可运行相应的VBA宏。方法二:创建UIControl(交互式VBA编程) 1、用鼠标右击任何工具栏(条),在弹出的上托式菜单中选择菜单项,如图4,进入图5所示的Customize对话框。图4 启动“Customize”对话框2、切换到“Customize”对话框的“Commands”页,选中“UIControls”后点击按钮,进入图6所示的“New UIControl”对话框。3、在“New UIControl”对话框中,用户可根据需要选择UIControl类型:UIButtonControl:创建Button;UIToolControl:创建与Map交互的Tool;UIEditBoxCont

      3、rol:创建EditBox;UIComboBoxControl:创建ComboBox。最后点击按钮只创建UIControl或者点击按钮创建UIControl并进入VBA编辑器。与方法一不同,此时应在UIControl的事件中进行VBA编程。图5 Customize对话框图6 New UIControl对话框4、UIControl创建后,在图5所示的“Customize”对话框选中UIControl并将其拖置到任意工具条上,用户便可象使用系统已有的Control一样使用所创建的UIControl。1.1.2. 如何在VB环境中利用ArcObjects组件开发ActiveX DLL1.1.1节讨论了如何在ArcGis的VBA环境中编程,虽然通过这种方式可以完成大多数用户的定制需求,但是,在某些情况下,对于特殊的应用,用户需要脱离ArcGIS环境而在VB开发环境中开发外部独立的应用程序,这种外部独立的应用程序有两种形式: ActiveX DLL和Standard EXE。Standard EXE的开发将在1.1.4中讨论,本节将讨论ActiveX DLL的开发,其关键是引用ArcObject

      4、s对象库和实现ArcObjects接口(例如ICommand,ITool,IToolBar等)。下面介绍在VB环境利用ArcObjects组件开发ActiveX DLL的一般步骤。1、启动VB开发环境,在图7所示的“New Project”对话框中选择“ActiveX DLL”项,并点击按钮,进入VBE环境。图7 New Project对话框2、引用ArcObjects对象库:首先点击菜单中的项,如图8,进入对象库引用对话框,如图9。图8 启动对象库引用对话框图9 对象库引用对话框3、对象库引用对话框(图9)中选中“Esri ArcMap Object Library ”和“Esri Object Library” 两项,并点击按钮,返回VBE环境。4、一般在类模块中写入实现特定ArcObjects接口的代码,如图10,然后运行菜单中的项,生成DLL文件,如图11。(project1.dll随项目名改变)。图10 类模块编辑窗口图11 生成DLL文件1.1.3. 如何在ArcMap中加载利用ArcObjects组件开发的ActiveX DLL用户通过1.1.2中介绍的方法开发好一个Ac

      5、tiveX DLL程序后,便可根据实际需要,在ArcMap环境下加载这个ActiveX DLL程序。其一般步骤如下:1、用鼠标右击任何工具栏(条),点击弹出的上托式菜单中的菜单项(参见图4)。2、在Customize对话框中,根据被加载DLL的类型切换到“Toolbars”或者“Commands”页(参见图5),然后点击按钮。3、在“打开文件”对话框中(Windows通用“打开文件”对话框,图略),选择被加载的Dll文件,并点击按钮。4、如果加载是“Commands”,则在图5所示的对话框中显示加载的Command,并可以将其拖置于任何工具条上;如果加载是“ToolBars”,则在图12所示的对话框中显示加载的ToolBar,选中后即可在ArcMap中显示。图12 加载ToolBar1.1.4. 如何在VB环境中利用ArcObjects控件开发EXE利用ArcObjects控件开发EXE的前三步类似于1.1.2中开发“Acrtive Dll”的前三步,唯一不同的是在“New Project”对话框中选择“Standard EXE”。4、点击菜单项中的项,打开“Components”对话

      6、框,如图13。图13 打开Components对话框5、在“Components”对话框中,切换到Controls页,并选中“ESRI MapControl”项,点击或按钮,如图14。图14 Components对话框6、如图15所示,加载MapControl控件之后,在VBE的控件面板中出现了MapControl控件图标,用户便可以象在Form中添加Button一样在Form中添加MapControl控件,并利用它开发EXE。图15 添加MapControl控件1.2. 用户界面1.2.1. 如何创建定制的按钮(Button)本例要实现的是如何创建定制的按钮(Button)。l 要点用户通过在类模块中实现ICommand接口来创建定制的按钮(COM command)。ICommand接口包括 caption、 name、 category、 bitmap、 message(StatusBarr的提示信息)、 tooltip(微帮助)、 help context id 、help file、enabled以及checked等十个属性和OnCreate、OnClick两个事件。从Icom

      7、mand接口的OnCreate事件中获取的ArcMap的Application实例必须用一个公共变量保存,以便在其它事件中(或者其它接口的事件中甚至整个工程中)使用。OnCreate事件的参数hook传入的是一个Object,也就是ArcMAP的Application实例,可把它赋给一个IApplication接口的变量,便获得了ArcMAP的实例。在OnClick事件中写入相关代码,表示按下按钮时要实现的功能.l 程序说明程序在类模块中实现Icommand接口来创建自己的按钮(Button)l 代码Option Explicit实现Icommand接口Implements ICommandDim m_pPicture as PictureDim m_pApplication As IApplicationPrivate Sub Class_Initialize()调入.RES文件中ID为101的BitMap作为该按钮的显示图片Set m_pPicture = LoadResPicture(101, vbResBitmap)End SubPrivate Property Get ICo

      8、mmand_Bitmap() As esriCore.OLE_HANDLE ICommand_Bitmap = m_pPictureEnd PropertyPrivate Property Get ICommand_Caption() As String ICommand_Caption = Create ButtonEnd PropertyPrivate Property Get ICommand_Category() As String ICommand_Category = Create Button End PropertyPrivate Property Get ICommand_Checked() As BooleanEnd PropertyPrivate Property Get ICommand_Enabled() As Boolean ICommand_Enabled = TrueEnd PropertyPrivate Property Get ICommand_HelpContextID() As LongEnd PropertyPrivate Property Get ICommand_HelpFile() As StringEnd PropertyPrivate Property Get ICommand_Message() As StringEnd PropertyPrivate Property Get ICommand_Name() As StringICommand_Name = CreateButton End PropertyPrivate Sub ICommand_OnClick()加入按下按钮时实现的功能代码。在这里,按钮按下时显示ArcMap的Document的Tittle Dim pDocument As IDocument Set pDocument = m_pApplication.Document MsgBox pDocument.TitleEnd SubPrivate Sub ICommand_OnCreate(ByVal hook As Object)获取ArcMa

      《arcengine+开发之葵x宝典》由会员小**分享,可在线阅读,更多相关《arcengine+开发之葵x宝典》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.