为ArcGIS桌面端建立Add In插件

平时以工作为主,有空时翻译一些文档,顺便练习英文,这个是因为用Add In来学习一下。

主要包括:

  • 关于Add In
  • 什么时候使用Add In
    • Python
    • Classic COM extensibility
  • Add In类型
  • 管理Add In
  • Add In 文件结构
  • 建立Add In

关于Add In

ArcGIS桌面端的Add In插件(中文版翻译为加载项模型)为你提供了一个基于声明的框架,用于创造一系列便于打包到单个压缩文件(.esriAddIn)的自定义集合。Add In 在用户之间便于共享,不需要安装程序或者组件对象模型(COM)注册;Add In 插件只需将其复制到well known文件夹中即可将其添加到系统中,并通过从该文件夹中删除对应文件来移除插件。Add In 也可以共享于使用集中式网络的多个用户。

Add In 支持使用.NET,Java或Python以及可扩展标记语言(XML)编写。 XML用于描述自定义,而.NET,Java或Python类提供自定义行为。 ArcObjects软件开发工具包(SDK)包括一个Add In 向导,该向导集成了多个开发环境(如Eclipse,Microsoft Visual Studio和Visual Studio的免费Express Edition),以简化开发。

备注:

注意:Add In 支持版本是10以上的,9.3啥的就不用尝试了。

网络上网友说,Well-Known文件目录:

  Vista/7: C:\Users\<username>\Documents\ArcGIS\AddIns\Desktop10.0

  XP: C:\Documents and Settings\<username>\MyDocuments\ArcGIS\AddIns\Desktop10.0

上面的目录我没找到,但是应该是在

C:\Users\Administrator\Documents\ArcGIS\AddIns\Desktop10.2类似的目录,反正就是在C盘的文档文件夹下面,有对应ArcGIS文件夹,里面有AddIns文件夹,其实不用那么麻烦去复制粘贴文件夹,.esriAddIn可以进行安装,可以参考我的对应Add In安装说明。

什么时候使用Add In

Add In 可以轻松构建和共享桌面自定义项; 但是,根据您正在构建的解决方案的目标和特征,以下选项之一可能更合适。

Python

在ArcGIS 10.1中,Python已添加到用于创作Add In的语言列表中,为您提供了一个易于使用的扩展桌面功能的解决方案。 有关使用Python构建Add In的详细信息,请参阅ArcGIS for Desktop帮助指南,使用Python为ArcGIS for Desktop构建Add In。

Classic COM extensibility

Add In框架不支持ArcGIS定义的每个扩展点; 例如,您无法将自定义一个渲染器,自定义一个工作空间或自定义一个要素作为Add In。 如果您的解决方案包含Add In框架中不支持的组件类型,则需要使用传统的COM可扩展方法。 此外,由于Add In的共享不涉及注册,因此请勿使用依赖于外部依赖项的基于Add In的解决方案,例如库,程序集和服务这些需要注册或管理干预的外部依赖项。

Add In类型

ArcGIS for Desktop应用程序支持一组固定的Add In类型插件,包括在以前版本的ArcGIS中引入的最常用的基于COM的可扩展性模型。当前版本支持以下Add In类型:

按钮和工具:

可以在工具栏上或者作为菜单栏按钮显示的简单控件。(类似于放大、缩小功能的按钮)

组合框:

提供下拉列表,并可选择地提供一个可编辑的输入区域。

菜单和上下文菜单:

包含按钮,子菜单和多项目等的菜单下拉列表。菜单可以来自内置源,Add In加载项源或两者的结合。菜单通常托管在工具栏上,但它们也可以独立显示为上下文(弹出)菜单和根菜单。

多项:

在运行时动态创建的菜单项集合。在运行前无法确定菜单上的项目或者需要根据系统状态修改项目时,多项目非常有用。

工具栏 :

可以托管按钮,工具,菜单,工具选项板和组合框。与菜单一样,工具栏上显示的控件可以来自内置源,Add In加载项源或两者结合。工具栏可以配置为在最初添加到应用程序时自动显示,以使其更加明显。

工具选项板:

提供一种紧凑的方法来对相关工具进行分组。在工具栏中最近使用的工具旁边有一个小的下拉按钮,可以用于访问组中的其他工具。与菜单一样,工具选项板上显示的工具可以来自内置源,Add In加载项源或两者结合。

可停靠窗口:

在ArcGIS for Desktop应用程序中显示的浮动或停靠窗口。你可以使用任何类型的内容填充可停靠窗口:图表,幻灯片,视频,迷你地图或包含其他控件的自定义控件 - 包括Esri控件。Add In插件开发人员可以控制可停靠窗口最初出现的位置以及是否将与其他可停靠窗口组合在一起。

应用程序扩展:

用于协调在一个Add In插件与其他组件,如按钮,工具和可停靠窗口等之间的活动。应用程序扩展通常负责存储与Add In插件相关联的状态,并且通常用于监听和响应主机应用程序公开的各种事件。应用程序扩展可以通过配置在需要时加载或在启动相关应用程序时自动加载;应用程序扩展也可以通过配置显示在标准ArcGIS扩展对话框中。

编辑器扩展 :

允许您通过直接插入编辑框架来自定义编辑工作流程。与应用程序扩展相反,编辑工具启动时会加载Add In插件(编辑器,开始编辑)。您可以通过创建编辑器Add In插件来自定义编辑会话的行为(例如,侦听编辑事件)。

管理Add In

Add In插件可以从各种来源获得,包括基于Web的存储库,通过电子邮件,或通过浏览文件系统或网络。只需双击在Windows资源管理器中的Add In插件文件即可安装Add In插件。 双击时,Esri提供的Add In插件安装程序会验证Add In插件并将其复制到相应的well known文件夹中。 在安装之前,用户有机会查看Add In插件的作者,描述,版本和数字签名信息。 此验证步骤可确保:将文件复制到适当的位置; 处理名称冲突; 并保证旧版本不会覆盖任何现有版本的Add In插件。 此程序还可以直接用于电子邮件附件和网页链接。 请参见以下屏幕截图:

也可以使用ArcGIS桌面端应用程序中的“自定义模式”,在自定义对话框中的“从文件添加”按钮来安装加载项。 如下:

你可以通过“自定义模式”菜单访问“自定义”对话框。通过双击或从文件中添加选项的方式安装的Add In插件都被归类为本地Add In插件。本地Add In插件位于本地计算机上指定的已知文件夹(Well-Known文件目录)/每个用户对应文件夹中。

虽然我们可以在不使用ESRI自带Add In安装插件的情况下,通过手动将Add In插件文件复制到对应文件夹的方式来加载,但这个过程中必须注意避免文件名冲突,版本覆盖等各种问题。这种复制的方式,通常在同一个网络下共享Add In插件时使用。

与传统的COM组件一样,单独的Add In插件可以通过“自定义”对话框访问获取。例如,Add In插件中定义的按钮的行为与COM命令的行为没有区别,它们都列出在“命令”选项卡上的指定类别中。从这个位置,可以拖动到任何工具栏或菜单上。

ArcGIS 桌面端应用程序在“自定义”菜单中提供了“加载项管理器”对话框。此对话框上的“加载项”选项卡中提供了有关当前正在运行的应用程序可用的已安装Add In插件的详细信息。例如,ArcGlobe的Add In插件就不会出现在ArcMap中。如图:

“加载项管理器”选项卡允许用户添加自定义的加载项文件夹。 每次启动应用程序时,加载项框架都会在这些指定的自定义文件夹中搜索加载项。 在使用中央网络的组织方式中共享Add In插件,这种方式就特别有用。 可以在指定的文件位置添加,删除和更新Add In插件,而无需干预任何客户端计算机;下次重新启动相关应用程序时,更新将自动反映在客户端上。 “加载项管理器”选项卡还可用于禁用所有加载项功能。 如图:

用户还可以从“加载项管理器”中选择卸载特定Add In插件。 卸载加载项会将选定的加载项文件移动到系统回收站,以后可以在必要时还原该文件。

“卸载”按钮仅对本地加载项启用。 要卸载来自自定义加载项文件夹的加载项,只需从共享中删除加载项,或使用“删除文件夹”按钮删除自定义加载项文件夹。

Add In 文件结构

建立Add In

Add In 简介(主要翻译于ESRI官方文档)的更多相关文章

  1. 谷歌字体(Google Font)初探 [翻译自Google官方文档]

    这个指南解释了如何使用Google Font的API,把网络字体添加到自己的页面上.你不需要任何的编码,你所要做的只是添加一个特定的CSS到HTML页面上,然后把字体关联到这个CSS样式. 一个快速的 ...

  2. GIS中的坐标系【Esri官方文档部分翻译】

    GCS 地理坐标系(GCS)使用椭圆体表面来定义地球上的位置.地理坐标系有三个部分: 基准面,是地球的椭圆体(椭球体)模型 本初子午线 角度单位 常见基准包括WGS84(用于GPS)和NAD83(用于 ...

  3. 【JAVA集合框架一 】java集合框架官方介绍 Collections Framework Overview 集合框架总览 翻译 javase8 集合官方文档中文版

    原文链接: https://docs.oracle.com/javase/8/docs/technotes/guides/collections/overview.html 原文内容也一并附加在本文最 ...

  4. [翻译]:Cinemachine 官方文档(0)

    目录 Overview : Installation and Getting Started :安装并开始 User Guide :用户指南 What is Cinemachine? : 什么是Cin ...

  5. Kryo官方文档-中文翻译

    Kryo作为一个优秀的Java序列化方案,在网上能找到不少测评,但未见系统的中文入门或说明文档.官方文档是最好的学习文档.虽然英文不差,但啃下来毕竟没母语来的舒服.这里抽出时间做些翻译,以方便大家查阅 ...

  6. 在 Ubuntu 上安装 TensorFlow (官方文档的翻译)

    本指南介绍了如何在 Ubuntu 上安装 TensorFlow.这些指令也可能对其他 Linux 变体起作用, 但是我们只在Ubuntu 14.04 或更高版本上测试了(我们只支持)  这些指令. 一 ...

  7. [翻译]PyMongo官方文档

    PyMongo官方文档翻译 周煦辰 2016-06-30 这是本人翻译的PyMongo官方文档.现在网上分(抄)享(袭)的PyMongo博客文章很多,一方面这些文章本就是抄袭的,谈不上什么格式美观,另 ...

  8. 【Java架构:基础技术】一篇文章搞掂:Spring Boot 官方文档解读

    本文篇幅较长,建议合理利用右上角目录进行查看(如果没有目录请刷新). 本文内容大部分是翻译和总结官方文档,可以到https://docs.spring.io/spring-boot/docs查看(此地 ...

  9. NHibernate官方文档——第八章 继承映射(Inheritance Mapping)

    本文翻译自NHibernate官方文档NHibernate Reference Documentation 4.1. 受限于个人知识水平,有些地方翻译可能不准确,但是我还是希望我的这些微薄的努力能为他 ...

随机推荐

  1. PdfReader按页将PDF切割成多个PDF

    private MemoryStream GetNewPdfByPageNum(PdfReader pdfReader, int pageNum) { MemoryStream memoryStrea ...

  2. Asp.Net Core对接钉钉群机器人

    钉钉作为企业办公越来越常用的软件,对于企业内部自研系统提供接口支持,以此来打通多平台下的数据,本次先使用最简单的钉钉群机器人完成多种形式的消息推送,参考钉钉开发文档中自定义机器人环节,此次尝试所花的时 ...

  3. SpringCloud-分布式链路跟踪配置详解

    SpringCloud-分布式链路跟踪 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 注:作者使用IDEA + Gradle 注:需要有一定的java SpringBoot and ...

  4. BugkuCTF~Mobile~WriteUp

    最近,开始记录一篇关于 Android 逆向分析的 WriteUp 方便有需要的人学习,也欢迎大家相互交流, 发现不 一样的世界. 一. signin 考点:反编译.静态分析 Topic Link:h ...

  5. 关于Vue.use()使用详解

    问题 相信很多人在用Vue使用别人的组件时,会用到 Vue.use() .例如:Vue.use(VueRouter).Vue.use(MintUI).但是用 axios时,就不需要用 Vue.use( ...

  6. oppo设备怎么样无需root激活XPOSED框架的教程

    在非常多部门的引流或业务操作中,基本上都需要使用安卓的强大XPOSED框架,近期,我们部门购来了一批新的oppo设备,基本上都都是基于7.0以上版本,基本上都不能够获得root的su超级权限,即使一部 ...

  7. python3 完全理解赋值,浅copy,深copy 通过地址详细理解~

    额...老规矩,先来一天NLP再说,也没几条了. 十,在任何一个系统里,最灵活的部分是最能影响大局的部分 灵活便是有一个以上的选择,选择便是能力,因此最灵活的人便是最有能力的人. 灵活来自减少只相信自 ...

  8. 前端性能优化之gzip

    前言: 如果你是个前端开发人员,你肯定知道线上环境要把js,css,图片等压缩,尽量减少文件的大小,提升响应速度,特别是对移动端,这个非常重要.常用的前端性能优化方法有如下几种 一.减少http请求 ...

  9. spring-boot-starter-mail技术总结

    1. spring-boot-starter-mail技术总结 1.1. 配置读取类SMTPTransport 在application中需要配置的信息,在此类中都可以看到,可以在此类打断点查看 1. ...

  10. 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之十一 || AOP自定义筛选,Redis入门 11.1

    代码已上传Github+Gitee,文末有地址 书说上文<从壹开始前后端分离[ .NET Core2.0 Api + Vue 2.0 + AOP + 分布式]框架之十 || AOP面向切面编程浅 ...