自定义路径服务是具有自定义功能的地理处理服务。 标准路径服务仅通过一组默认的选项执行特定的网络分析工作流,如果您需要更多功能,或需要使分析工作流更具灵活性,则可以发布自定义路径服务。 例如,您可以查找两个停靠点之间的路径,为该路径生成高程剖面图,或将多个不同的网络分析组合至单个 Web 服务中。 对于此类分析,您可以创建一个自定义路径服务。 自定义路径服务是具有自定义功能的地理处理服务。 地理处理服务允许您在 ArcGIS Server (ArcGIS Enterprise 的组成部分)中共享自定义分析工具。 地理处理服务通常作为在 ArcGIS Enterprise 门户中托管的 Web 工具运行。 在共享至服务器之前,这些工具作为脚本工具在 ArcGIS Pro 中创作和运行。
创建自定义路径服务(地理处理服务)是一个包含三个步骤的过程,以下各部分中将进行介绍。
创作脚本工具
创建路径服务的第一步是基于 arcpy 和 arcpy.nax Python 模块创建并存档地理处理脚本工具,然后编写 Python 代码,此代码将实现运行脚本工具的逻辑。 该工具在工具箱中创建。
发布服务
创作工具之后,在 ArcGIS Pro 中运行工具以确保工具成功运行完成。 工具运行完成后,您可以在地理处理历史记录中通过 ArcGIS Pro 将结果共享为 Web 工具。 共享操作将在服务器连接中创建地理处理服务项目。 可在发布期间将已运行的多个工具添加到同一地理处理服务。 您可以使用管理员连接将地理处理服务从 ArcGIS Pro 发布到独立服务器(未与 ArcGIS Enterprise 门户联合的服务器)。 如果您正在使用与 ArcGIS Enterprise 门户联合的服务器站点,则可以改为将 Web 工具共享到您的 ArcGIS Enterprise 门户。
使用服务
在将地理处理服务发布到 ArcGIS Server 后,或将 Web 工具共享到具有联合服务器站点的门户后,授权用户可以使用 ArcGIS REST API 中的各种操作直接在服务器站点上访问该服务,以及将该服务用于 ArcGIS Pro、ArcGIS Web AppBuilder 地理处理微件、ArcGIS API for JavaScript 自定义 Web 应用程序等。
注:
无法在 ArcGIS Pro 中通过网络分析功能区使用自定义路径服务。
创作地理处理服务的提示
要改进地理处理服务的性能,请考虑以下提示:
- 定义脚本工具中的网络数据集参数时,对于数据类型,请使用 网络数据集图层而非网络数据集或网络数据源。 将其发布为 Web 工具之前,运行脚本工具并提供一个地图中的网络数据集。 因为与网络数据集的连接将在启动服务时建立,您无需通过服务器请求打开网络数据集,这样可以节省时间。
- 读取脚本工具中的网络数据集参数时,使用 GetParameterAsText 方法而非 GetParameter 方法,因为 GetParameterAsText 方法可以更快地访问网络数据集图层。
- 使用 arcpy.nax Python 模块编写地理处理脚本工具。 相比通过地理处理模型工具创建的服务,以及使用 arcpy.na 通过基于图层的工作流从脚本工具创建的服务,上述方式创建的服务运行速度更快。
- 为脚本工具定义要素输入参数时,使用要素集数据类型。 当您使用要素集类型并将默认值设置为一个图层文件时,该图层文件会内部引用定义要素集方案的要素类。 发布服务时,将明确定义好输出的方案。
- 将输出写入基于内存的工作空间,而非文件地理数据库。
- 避免通过脚本工具编写过多的消息。
- 将分析结果共享为 Web 工具或地理处理服务时,将网络数据集参数的输入模式设置为常量。 由于服务始终使用相同的网络数据集,将网络数据集设置为常量可确保其无法用于工具创建的服务。
- 对于短期请求,请选择同步模式以获得最佳性能。
- 如果为地理处理服务选择同步模式,则可以通过将 reusejobdir 属性设置为 true 来进一步提高地理处理服务的性能。 设置此属性时需要注意限制条件,因为将 reusejobdir 设置为 true 会使每个作业使用相同的作业文件夹。 因此,如果要将输出写入作业目录,必须确保每次运行的输出具有唯一名称,这样它们才不会相互影响。