ArcGIS桌面开发之Add-in模式

ArcGIS 10 为桌面的定制开发提供了一种全新的选择方式-Add-In

什么是Add-In

Add-In是一种能够快速扩展桌面应用程序功能的全新扩展方式

作为ArcGIS 10中全新定制方法,它有以下特点:

l容易创建:ArcGIS提供了很多创建Add-In模板,并提供了详细的接口以实现各种功能。

l更易共享:Add-In本质上是一个Zip压缩文件这个压缩文件里面包含了,易于网络、邮件传输、易于局域网内共享

l更加安全:可以对Add-In文件进行数字签名,使用的安全性得到保障

l更易安装管理:只要安装有桌面软件,系统就能自动识别Add-In文件,双击即可安装部署,同时desktop也有用于管理Add-In的管理工具.

ArcGIS Add-In支持的类型

按钮菜单按钮和工具

组合框

菜单和右键菜单

Multi-items

工具条

Tool palettes

可停靠窗体

Application extensions

Editor extensions

下面两个类型是ArcGIS 10.1 支持的

Editor Construction Tools

Server Object Extensions

Add-In文件结构

从文件结构来看,每个Add-In文件都包括了xml文件,程序集(对于java来说就是jar)及资源包,如下图

1.jpg

前面介绍了Add-In的特点、类型及其文件结构,下面我们来看看如何共享,当我们将Add-In制作好了之后,只需要双击就可以安装,这里的安装安装就是将Add-In文件部署到Well-Known文件目录里,当打开desktop时会自动将Add-In解压到desktop能自动识别的临时目录,执行时便是从该目录下读取资源。这两个目录是默认的,Well-Known目录里的文件可以移植到其它目录,或者网络共享目录,以实现共享。ArcGIS 10 Windows 7上的Well-Known目录的位置(目录跟操作系统有关XP的默认Well-Know目录位置就不是下面这个)

C:\Users\esri\Documents\ArcGIS\AddIns\Desktop10.0

解压目录:

C:\Users\<username>\AppData\Local\ESRI\Desktop10.1\AssemblyCache

Add-In与本地化

Add-In支持多语言显示,这里的多语言显示是指同一个的Add-In文件安装到不同的语言环境的桌面应用程序里,能够自动检测其语言环境,来选择最佳匹配的语言来显示。我们可以来看下这个Add-In文件,一般的Add-In文件里只有一个config.xml,这里有多个的xml文件,分别对应多个语言版本,那么桌面程序在使用这个Add-In时能选择最佳的config.xml进行显示 。这个功能在一个语言跨度比较大,需要不同语言版本的组织中比较有意义

自动检测您的桌面应用程序运行的语言环境,并选择最佳匹配的配置文件来显示语言

Config.<language>.xml Config.<language>-<CountryCode>.xml 如下图:

2.jpg


管理Add-In

ArcMap的菜单中有一个Add-In Manager 通过这个我们可以查看本机可以访问的Add-In,可以查看类型,以及是自己的Add-In还是共享的Add-in


3.jpg

开发并部署一个Add-InVS2008+ArcGIS 10

l
启动VS-新建项目-ArcGIS-Desktop Add-Ins(我们用ArcMap Add-In)

4.jpg


l
填写相关说明,这些信息都会出现在XML文件中

5.jpg


l
选择相关的Add-In类型,填写类名,类别等信息,这些信息都会出现在XML文件中

6.jpg


l
点击完成后生成的xml文件如下,里面包含我们上面的描述信息,如下图:


7.jpg

8.jpg

这是给我们生成的模板,我们需要再Onclick函数和OnUpdate函数或者构造函数填写相关信息,其中OnUpdate函数是系统自动调用如果我没记错的话应该是500毫秒调用一次用来检查这个Add-In是否可用,而Onclick函数是当我们点击的时候调用的,模板如下:


我们添加如下代码,其中ArcMap是自动生成一个静态类,代表了ArcMap,为什么是ArcMap?因为我们选择的是ArcMapAdd-In,这个对象就可以帮助我们获取ArcMap里的其他对象,可以说这个对象是我们进入ArcMap的入口,代码如下:


9.jpg

我们说了Add-In很容易使用,不用安装(实际是Copy),我们编译后可以看到一个esriAddin结尾的文件,我们双击就行了,这个时候这个Add-In就被放到Well-Known目录中,当ArcMap启动的时候从这个Well-Known中发现并解压到一个临时目录下,就可以使用了,如下双击安装:



10.jpg

11.jpg

打开ArcMap通过Customize界面找到这个Add-In,然后拖放到菜单上,如下图:


12.jpg

13.jpg



双击这个按钮出现如下效果:


14.jpg

下载 (40.25 KB)
2011-11-12 22:09

当我们将图层全部移除后,发现这个按钮成为灰色的了?为什么?这是因为ArcMap自动的调用OnUpdate函数,发现图层的个数小于1,就变成不可用,如下图:


15.jpg

posted @ 2014-03-07 10:14  奔跑的鸡丝  阅读(1922)  评论(0编辑  收藏  举报