分发工具的方法
共享工具的最简单方法就是发送包含工具的自定义工具箱 (.tbx) 副本(例如,通过电子邮件发送)。此方法仅适用于您的工具不使用其他任何资源(如数据集、地图文档中的地图图层、图层文件或外部脚本文件或库)的情况,也就是说,您的工具类似于系统工具,除了用户在工具参数中提供的数据之外,不依赖任何资源。无需任何资源的工具称为通用工具。
但更多时候,您的工具不属于通用工具,而是需要其他资源才能运行。在这种情况下,您可以采用两种方法来发布工具:
- 压缩并共享 - 将工具所需的全部资源合并到一个文件夹中,使用标准 ZIP 压缩工具将此文件夹打包成 zip 文件 (.zip),然后通过电子邮件发送该 .zip 文件或将其上传至地理处理资源中心的“模型和脚本”工具库中,即可进行共享。
- 发布至 ArcGIS Server - 通过 ArcGIS Server,您可以跨企业 (intranet) 和 Web (Internet) 共享服务。这些服务包括工具箱和地图。
压缩并共享结构清晰合理的系统文件夹
第一步是收集工具箱以及工具数据并将其放置到某个结构清晰合理的系统文件夹(即 ToolShare 文件夹)中。下图显示了 ToolShare 的结构。ToolShare 文件夹中的内容和结构只是一种建议,您可以随意使用任何文件夹结构。如果您要将工具上传至地理处理资源中心的“模型和脚本”工具库,则建议使用 ToolShare 文件夹结构。
收集完工具箱及其所需的资源后,您需要为该文件夹创建 .zip 文件。要在 Windows 中创建 .zip 文件:
- 右键单击文件夹,然后单击发送到 > 压缩(zipped)文件夹。以上图为例,您将右键单击 Thiessens 文件夹。
- 发送 .zip 文件(例如通过电子邮件发送)。收件人(您的用户)打开 .zip 文件并将其内容复制到他们的本地计算机上。
地图和图层包
在 ArcGIS10 中引入了地图和图层包。您可以在 ArcMap 中或通过使用打包工具集中的工具来打包地图和图层。创建的地图和图层包可在 ArcGIS Online 中共享。ArcGIS 10 不支持以打包地图和图层的方法来打包工具箱。
注意事项
在收集完工具所需的资源后,您需要解决一些问题,然后才能创建 .zip 文件。
数据
工具使用的所有数据必须位于 ToolShare 文件夹或其子文件夹中。在以上所示的 ToolShare 文件夹结构中,数据将被放置在 ToolData 文件夹中,并且每个工具都将选中存储相对路径名(不是绝对路径) 选项。
如果要共享地图文档 (.mxd),则地图中使用的所有数据必须与地图文档位于同一文件夹中。您可以自己复制数据,并确保选中存储相对路径名(不是绝对路径) 选项,也可以使用合并地图工具。
中间数据和临时数据
您的模型和脚本很可能需要一个位置来写入中间数据和临时数据。该位置将是用户本地磁盘上的某个文件夹或地理数据库。通常,您希望用户设置自己的临时工作空间环境,并将该环境设置作为写入中间数据和临时数据的位置。
许可问题
接收工具的用户可能不具备执行该工具所需的产品或许可。即使接收者安装了必要的扩展模块,他们也可能没有获得该扩展模块的使用许可,因此无法在当前会话中进行使用。如果用户没有许可,则工具将退出并显示一条错误消息,指明该扩展模块不可用。用户必须获得许可,方法是在其当前应用程序(如 ArcCatalog 或 ArcMap)的自定义菜单中单击扩展模块,然后启用所需的扩展模块。
如果未安装所需的扩展模块,则在工具箱中可能不会显示该工具。
当然,您应该说明所需的扩展模块,并采取相应措施以确保用户知道需要的扩展模块。这些办法可能无法满足某些用户的需要。一种极其糟糕的情况就是工具箱中的所有工具均依赖于某个未安装的扩展模块,如上文所述,这种情况下,用户打开此工具箱时将不显示任何内容。一种解决办法就是在提供的工具箱内加入脚本工具,该脚本工具可以检查所需的扩展模块,并在出现问题时输出消息。此脚本工具不依赖于任何扩展模块且始终会加载到工具箱中。这样,用户可运行此类扩展模块检查工具并查看信息性消息。
脚本
您要共享的任一脚本都应具有检查所需许可和产品级别的逻辑。
您可以在工具箱中嵌入脚本。通过嵌入脚本,您不必对单独的脚本文件进行共享。
但如果 Python 脚本导入您所创建的模块,或者您未将脚本嵌入到工具箱中,则需要确保这些脚本和模块都位于 ToolShare 文件夹中。
系统工具
在安装了 ArcGIS 的任意系统中,始终可以找到系统工具。您不必将系统工具复制到自定义工具箱中,也不必向脚本中添加系统工具箱(使用 arcpy.AddToolbox())。
发布到 ArcGIS Server
通过 ArcGIS Server,您可以跨企业 (intranet) 和 Web (Internet) 共享服务。这些服务包括工具箱和地图。通过 ArcGIS Server 共享 GIS 资源的主要优势与通过任意类型的服务器技术共享数据的优势相同,例如,可对数据进行集中管理、支持多个用户以及为客户端提供最新信息。另一个优势(特别是对于地理处理来说)在于,工具在服务器计算机上使用在上面查找到的资源(如许可)进行执行。