为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. django+mysql的使用

    Django中每一个模型model都对应于数据库中的一张表,每个模型中的字段都对应于数据库表的列.方便的是,django可以自动生成这些create table, alter table, drop ...

  2. 最详细的Windows平台安装MongoDB教程

    一.MongoDB简介 MongoDB是一个基于分布式文件存储的数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB将数据存储为一个文档,数据结构由键值(ke ...

  3. ArrayList 和 LinkedList 源码分析

    List 表示的就是线性表,是具有相同特性的数据元素的有限序列.它主要有两种存储结构,顺序存储和链式存储,分别对应着 ArrayList 和 LinkedList 的实现,接下来以 jdk7 代码为例 ...

  4. MySQL查看数据库安装路径

    有时候在我们开发的过程中并不一定记得数据库的安装路径.比如要查看mysql 数据库的安装目录在哪里:我们可以通过mysql命令查看mysql的安装路径: # 以下两个sql任意一个可查询 select ...

  5. GIS大数据存储预研

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1. 背景 在实际项目运行中,时常会出现希望搜索周边所有数据的需求.但是 ...

  6. ArcGIS API for JavaScript 入门教程[6] 再讲数据——Map类之可操作图层

    [回顾]上篇交代了Map是各种图层(不管是实际上的图层还是由图层构成的对象)的容器,是数据的容器,并不作显示(由视图类绘制).并重点讲解了由图层构成的复杂图层——高程属性ground和底图属性base ...

  7. 自定义Json解析工具

    此博客为博主原创文章,转载请标明出处,维权必究:https://www.cnblogs.com/tangZH/p/10689536.html fastjson是很好用的json解析工具,只可惜项目中要 ...

  8. 阿里云对象存储OSS访问控制

    阿里云对象存储OSS的Android SDK提供了STS鉴权模式和自签名模式来保障移动终端的安全性. OSS可以通过阿里云STS (Security Token Service) 进行临时授权访问.交 ...

  9. kafka 幂等生产者及事务(kafka0.11之后版本新特性)

    1. 幂等性设计1.1 引入目的生产者重复生产消息.生产者进行retry会产生重试时,会重复产生消息.有了幂等性之后,在进行retry重试时,只会生成一个消息. 1.2 幂等性实现1.2.1 PID ...

  10. SpringCloud警告(Eureka):EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.

    警告!Eureka可能存在维护了错误的实例列表(当它们没有启动的时候,Eureka却把它当成启动的了):Renews值小于Threshold值,因此剩下未过期的都是安全的. 原因分析: 这个是Eure ...