zoukankan      html  css  js  c++  java
  • 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:UsersesriDocumentsArcGISAddInsDesktop10.0

    解压目录:

    C:Users<username>AppDataLocalESRIDesktop10.1AssemblyCache

    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

  • 相关阅读:
    neo4j命令
    prometheus使用四(alertmanager&grafana告警及服务发现)
    prometheus使用三(自定义监控指标实现)
    prometheus使用二(export与grafana接入)
    prometheus使用一
    一次修改域名解析引发的问题
    微信小程序支付,看这一篇就够了
    常用命令
    常见报错与问题注意
    redis迁移复制数据,主从关系建立实践
  • 原文地址:https://www.cnblogs.com/giser-whu/p/3707046.html
Copyright © 2011-2022 走看看