ArcGIS Desktop Add-in插件开发系列二

来源:互联网 发布:win10禁止安装软件 编辑:程序博客网 时间:2024/05/18 01:32
 

Add-in的开发流程

使用VisualStudio的新建工程向导,选择ESRI提供的ArcGIS Add-in模板,这些Add-in模板针对ArcGIS Desktop所包含的每一个应用程序。选择完模板后,系统就会要求我们立即选择第一个添加到Add-in里的对象类型。之后,如果我们有需要往Add-in里添加更多其它的对象类型的话,可以通过添加新项目向导来创建新对象。

Add-in的工程结构十分简单明了。工程里包含一个Config.esriaddinx的XML文件,以及已经添加到工程里的对象代码文件,如Command对象、Tool对象,这里需要注意的是,其中Dockable Windows对象是自定义的UI对象,所以除了可以看到它的代码文件外,还可以看到它的设计时节目,编程体验和WinForm一致。除了上述的这些,还包括一个Images的文件夹,用来保存工程里所使用到的图片,例如Command的图标。

在编写代码,实现自定义对象的逻辑时,有一些内置对象我们是必须要知道的,这些内置对象能够辅助我们编写出安全的代码。

其中一个内置对象就是和我们工程相对应的ArcGIS Desktop程序对象,例如假如我们目前开发的是一个ArcMap Add-in,那么在我们的个工程中就会内置有一个命名为ArcMap的静态类,该静态类包含一些静态对象,如Application、Document、DockableWindowManager、Events,通过这些对象我们就很容易在代码里获得包含Add-in的地图文档实例,继而获得类似Map这些核心编程对象。

另一个内置对象就是ThisAddin,通过该对象,我们可以获得插件的一些元数据信息,例如插件的名称、描述,除此之外,该对象还包含了一个IDs的对象,该对象记录了当前工程所包含的所有对象的ProgID,通过这些ProgID,我们就能方便地创建或查找相对应的对象。这个机制其实和COM的创建对象机制是一致的。

程序在编译后,会生成一个后缀名为esriaddin的文件,该文件是一个zip文件,解压后,我们知道其内部包含一个Config.xml文件、一个Install的文件夹(里面就是我们插件的dll文件)和一个Images的文件夹。默认如果在VisualStudio的运行工程,插件会自动安装到相对应的ArcGIS Desktop应用程序,并启动。如果没有,则手动设置工程属性的调试选项,使用启动外部程序即可,路径设置如C:\Program Files\ArcGIS\Desktop10.0\Bin\ArcMap.exe。

Add-in的部署也十分简单,你可以把编译好的esriaddin文件复制到需要部署的已经安装好ArcGIS Desktop的机器上,又或者把它作为邮件附件发送给别人。在部署电脑上双击esriaddin文件,就要弹出Add-in安装界面,让用户查看该插件的一些元信息,例如作者,是否具有数字签名,然后让用户决定是否安装该插件,安装插件是不需要重启任何ArcGIS Desktop应用程序的。安装完之后,就可以通过相应ArcGIS Desktop应用程序的Add-in Manager来查看已安装的Add-in,也可以通过它来卸载。

一些Add-in所包含的对象,例如Command、Tool、Toolbar,是需要用户通过Customize窗口定制添加到界面上的。Extension对象,则需要用户通过Extensions窗口勾选加载。