使用独立 ArcGIS Server 站点中的路径服务

可以在 arcpy.nax 模块中使用独立 ArcGIS Server 站点中的路径服务执行网络分析。 支持求解程序类(例如 Route)以及 GetTravelModesGetWebToolInfo 函数。

了解有关独立 ArcGIS Server 站点的详细信息

了解如何将路径服务发布到 ArcGIS Server 站点

在代码中指定独立 ArcGIS Server 站点

编写代码时,使用 Python 字典指定独立 ArcGIS Server 站点 URL 和身份验证信息,而不是网络数据集路径或 ArcGIS Enterprise 门户的 URL。

路径服务信息字典包含以下键:

  • url - 路径服务的 REST URL。 URL 应包含服务的名称,不应包含服务中工具的名称。 此键是 GetTravelModesGetWebToolInfo 函数的可选项,但是实例化求解程序类的必需项。
  • utilityUrl - 公共设施服务的 REST URL,该服务包含的诸多工具提供有关路径服务的辅助信息。 URL 不应包含工具名称。 此键为必需项。
  • authenticationInfo - Python 字典,其中包含对服务连接进行身份验证时使用的凭据。 下面提供了有关如何指定此字典的详细信息。 对于不安全的服务,不需要此键。

注:

对于以下示例中的路径服务 URL,假设独立 ArcGIS Server 站点使用 ArcGIS Web Adaptor

了解如何为其他配置构造适当的 URL

不安全的服务

对于不安全的服务,不需要 authenticationInfo 键。

下面是不安全服务的路径服务信息字典的示例。

{
    "url": "https://webadaptorhost.domain.com/webadaptorname/rest/services/Routing/NetworkAnalysis/GPServer",
    "utilityUrl": "https://webadaptorhost.domain.com/webadaptorname/rest/services/Routing/NetworkAnalysisUtilities/GPServer"
}

具有内置身份验证的安全服务

对于具有内置身份验证的安全服务,需要 authenticationInfo 键,其值可通过多种方式进行指定。

警告:

最安全的方式为使用连接文件存储凭据。 其他身份验证方法的安全性较低。

使用用户名和密码进行身份验证

要使用用户名和密码进行身份验证,authenticationInfo 字典需要 usernamepassword 键。 值为用于连接到服务的纯文本用户名和密码。

下面是使用用户名和密码进行内置身份验证的服务的路径服务信息字典示例。

{
    "url": "https://webadaptorhost.domain.com/webadaptorname/rest/services/Routing/NetworkAnalysis/GPServer",
    "utilityUrl": "https://webadaptorhost.domain.com/webadaptorname/rest/services/Routing/NetworkAnalysisUtilities/GPServer",
    "authenticationInfo": {
        "username": "my_username",
        "password": "my_password"
    }
}

使用连接文件进行身份验证

要使用连接文件 (.ags) 进行身份验证,authenticationInfo 字典需要 connectionFile 键。

了解如何创建连接文件

下面是使用连接文件进行内置身份验证的服务的路径服务信息字典示例。

{
    "url": "https://webadaptorhost.domain.com/webadaptorname/rest/services/Routing/NetworkAnalysis/GPServer",
    "utilityUrl": "https://webadaptorhost.domain.com/webadaptorname/rest/services/Routing/NetworkAnalysisUtilities/GPServer",
    "authenticationInfo": {
        "connectionFile": "C:\\data\\my_connection_file.ags"
    }
}