本文档中介绍的基本概念能够帮助您了解如何通过 Python 创建加载项。
Python 加载项向导
要简化加载项的开发,建议使用 Python 加载项向导 来声明自定义内容的类型。通过创建加载项正常工作所需的文件和文件夹,Python 加载项向导 可以缩短开发时间并避免此过程中可能发生的错误。
下载 Python 加载项向导。
下载的是包含支持向导运行的所有必要文件的 ZIP 文件 (.zip)。要使用该向导,请将下载内容解压到一个文件夹中并在 bin 文件夹中找到名为 addin_assistant.exe 的可执行文件;双击该文件启动向导。有关创建加载项的主题中提供了使用 Python 加载项向导 的示例。
文件及文件夹结构
加载项是文件和文件夹的集合,可以很方便的打包到一个扩展名为 .esriaddin 的压缩文件中,用户和 ESRI ArcGIS 加载项安装工具 可轻松识别这些文件和文件夹。例如,如果在 Windows 资源管理器、网站或电子邮件中双击某加载项,加载项安装工具可自动将加载项自动安装到您的计算机中,并将其部署到已知文件夹中。
加载项将在加载项存档的根级别生成一个 config.xml 文件。此文件对加载项进行描述并声明其自定义设置。单击保存按钮后,Python 加载项向导 即可创建该文件,文件中包含用于描述加载项的所有信息,如 ArcGIS 产品、标题、工具提示、帮助信息、图像和布局详细信息。
加载项也具有安装文件夹。安装文件夹的主要用途是保存加载项的 Python 脚本(活动部分)。例如,在配置文件中声明一个按钮,但是其自定义行为则由相关的 Python 脚本定义。
可在安装文件夹中另外创建文件夹和文件。如果要将数据作为加载项的一部分发送,此功能尤其有用。此类数据包括图层文件、工具箱和 .xml 文件等。要访问位于安装位置中的数据,可利用内置功能 __file__。此示例演示的是如何访问位于安装文件夹中数据文件夹内的图层文件:
eq_layer = os.path.join(os.path.dirname(__file__), r'data\earth_quakes.lyr')
大多数声明的加载项类型都具有与之关联的图形。所有通过向导输入的图形均将在配置文件中被引用,并将被复制到存档文件根级别的图像文件夹中。
下图展示的是加载项文件 (.esriaddin) 的文件和文件夹结构:
makeaddin.py
Python 文件 makeaddin.py 是由 Python 加载项向导 创建的工具脚本,用于将项目文件夹内的文件和文件夹打包到压缩的加载项文件中。双击此文件创建加载项文件。每次更改加载项时都必须运行此脚本,将最新更新的加载项文件重新打包。
已知文件夹的位置
ArcGIS Desktop 启动时,将在每个用户/每个 desktop 版本的已知文件夹中自动找到加载项。例如:
- Vista/7:C:\Users\<用户名>\Documents\ArcGIS\AddIns\Desktop10.1
- XP:C:\Documents and Settings\<用户名>\My Documents\ArcGIS\AddIns\Desktop10.1
使用 ESRI ArcGIS 加载项安装工具 和加载项管理器 对话框可自动添加和删除加载项。ArcGIS Desktop 中的加载项管理器 对话框还允许您自行添加已知文件夹,并将其在网络中共享。
此外,加载项可自动将其安装文件夹的内容解包到临时文件夹。例如:
- Vista/7:C:\Users\<用户名>\AppData\Local\ESRI\Desktop10.1\AssemblyCache
- XP:C:\Documents and Settings\<用户名>\Local Settings\Application Data\ESRI\Desktop10.1\AssemblyCache
如果加载项框架检测到系统中不再安装有加载项,将自动删除此数据。