从属性文件指定路径服务的高级属性。
其他服务属性
在从网络数据集配置路径服务时,您可以指定一个属性文件,其中包含路径服务其他设置,例如服务实例的最小和最大数量,或者服务的 REST API 支持的一个或多个参数的默认值。 例如,如果使用路线和路径服务的应用程序仅使用来自输出路线的行程时间和行程距离值,而不需要驾驶路线或路径几何,您可以使用属性文件配置路径和方向服务,以默认仅返回所需的输出。 这将优化路径和方向服务的性能,因为不必生成客户端应用程序无需使用的额外输出。
属性文件会以 JavaScript 对象标记法 (JSON) 格式存储设置。 本帮助主题假设用户熟悉 JSON 格式的基础知识。
可通过指定属性文件配置路径服务的高级属性。 默认属性文件称为 publishroutingservices.json。
该文件位于 ArcGIS Server 安装目录下的 <install folder>/framework/runtime/ArcGIS/Resources/ArcToolBox/Services/routingservices 内。
本部分将以默认文件为例介绍属性文件的结构。 要更改属性,可创建默认文件的副本,然后使用文本编辑器编辑副本。 调用配置路径过程时,将修改后的文件指定为输入。
属性文件的结构
属性文件包含一个调用 routingServices 的顶级对象,该对象具有 mapServices 和 gpServices 对象。 这些对象中的每一个都可以包含一个或多个表示特定路径服务的对象。 属性文件中的顶级 JSON 对象。 mapServices 对象定义 networkAnalysis 地图服务的属性,gpServices 对象定义 asyncNetworkAnalysis、syncNetworkAnalysis 和 routingUtilities 地理处理服务的属性。{
"routingServices": {
"mapServices": {
"networkAnalysis": {
}
},
"gpServices": {
"asyncNetworkAnalysis": {
},
"syncNetworkAnalysis": {
},
"routingUtilities": {
}
}
}
}
地图服务对象(例如 networkAnalysis)包含一个定义地图服务的服务级别属性的 serviceProperties 对象,以及定义地图服务所使用的一个或多个图层的属性的 layerProperties 对象。
地理处理服务对象(例如 asyncNetworkAnalysis)包含一个定义地理处理服务的服务级别属性的 serviceProperties 对象,以及定义地理处理服务所使用的一个或多个地理处理工具的属性的 toolProperties 对象。
服务 JSON 对象包含 serviceProperties、和 layerProperties 或 toolProperties。
{
"routingServices": {
"mapServices": {
"networkAnalysis": {
"serviceProperties": {
},
"layerProperties": {
}
}
},
"gpServices": {
"asyncNetworkAnalysis": {
"serviceProperties": {
},
"toolProperties": {
}
},
"syncNetworkAnalysis": {
"serviceProperties": {
},
"toolProperties": {
}
},
"routingUtilities": {
"serviceProperties": {
},
"toolProperties": {
}
}
}
}
}
服务对象中的 serviceProperties 对象定义一个或多个服务级别属性,例如每台计算机的最大服务实例数 (MaxInstances)或客户端可使用服务的最长时间(以秒为单位)(UsageTimeout)。
地图服务的 layerProperties 对象定义 route、closestFacility、serviceArea 和 odCostMatrix 图层的属性。 图层属性将定义为 defaultValues 对象的一部分。
地理处理服务的 toolProperties 对象定义地理处理工具的属性,例如 FindRoutes、FindClosestFacilities、GenerateServiceAreas、GenerateOriginDestinationCostMatrix、SolveLocationAllocation、SolveVehicleRoutingProblem 和 EditVehicleRoutingProblem。 工具属性将定义为 defaultValues 对象的一部分。 constantParameters 对象允许您列出工具的一个或多个参数,这些参数不应该在地理处理服务的 REST API 中可用。
地图服务中图层的 layerProperties 对象和地理处理服务中工具的 toolProperties 对象
{
"routingServices": {
"mapServices": {
"networkAnalysis": {
"serviceProperties": {
},
"layerProperties": {
"route": {
"defaultValues": {
}
},
"closestFacility": {
"defaultValues": {
}
},
"serviceArea": {
"defaultValues": {
}
},
"odCostMatrix": {
"defaultValues": {
}
}
}
}
},
"gpServices": {
"asyncNetworkAnalysis": {
"serviceProperties": {
},
"toolProperties": {
"FindRoutes": {
"defaultValues": {
},
"constantParameters": []
},
"FindClosestFacilities": {
"defaultValues": {
},
"constantParameters": []
},
"GenerateServiceAreas": {
"defaultValues": {
},
"constantParameters": []
},
"GenerateOriginDestinationCostMatrix": {
"defaultValues": {
},
"constantParameters": []
},
"SolveLocationAllocation": {
"defaultValues": {
},
"constantParameters": []
},
"SolveVehicleRoutingProblem": {
"defaultValues": {
},
"constantParameters": []
}
}
},
"syncNetworkAnalysis": {
"serviceProperties": {
},
"toolProperties": {
"EditVehicleRoutingProblem": {
"defaultValues": {
},
"constantParameters": []
}
}
},
"routingUtilities": {
"serviceProperties": {
}
}
}
}
}
编辑并上传属性文件
配置路径服务时,可上传包含您指定的属性的属性文件,例如最小或最大示例数。 属性文件位于 ArcGIS Server 安装目录下的 <install folder>/framework/runtime/ArcGIS/Resources/ArcToolBox/Services/routingservices/publishroutingservices.json 内。 要更改属性,请创建此文件的副本并使用文本编辑器进行编辑。
提示:
编辑该文件时,建议您使用理解 JSON 语法的文本编辑器(例如 Visual Studio Code)来编辑属性文件,以免在编辑属性文件时出现语法错误。 包含任何 JSON 语法错误的属性文件都将导致配置路径服务的过程失败。