描述
返回适用于网络数据源的出行模式对象的字典。字典关键字是出行模式的名称,字典值是出行模式对象。出行模式对象可用于在求解特定分析前更新求解程序属性对象(RouteSolverProperties、ClosestFacilitySolverProperties、ServiceAreaSolverProperties、ODCostMatrixSolverProperties、VehicleRoutingProblemSolverProperties 或 LocationAllocationSolverProperties)。
讨论
可以对本地网络数据集,或者对来自 ArcGIS Enterprise 或 ArcGIS Online 门户的网络数据源定义一个或多个出行模式。此函数可使用给定网络数据源的可用出行模式填充值列表。例如,地理处理脚本工具可具有称为“出行模式”的字符串类型参数,在工具对话框中选择网络数据集后即可使用出行模式名称列表填充该参数。
如果网络数据源不支持出行模式,此函数将返回空字典。
要将 GetTravelModes 与门户 URL 配合使用,您必须登录到门户。
可将 ArcGIS Online 用户帐户配置为使用不同的语言,由此更改可用出行模式的名称。要启用脚本编写功能并使其在无需考虑用户帐户语言设置的情况下正常运行,则 GetTravelModes 函数返回的字典键应始终与出行模式的英文名称相对应。要得到出行模式的本地化名称,请使用出行模式对象的 name 属性。
语法
GetTravelModes (network_dataset_path)
参数 | 说明 | 数据类型 |
network_dataset_path | 此变量可用于引用网络数据集的目录路径、网络数据集图层对象或使用网络分析服务配置的门户的 URL。 网络数据集的目录路径可从网络数据集图层的 dataSource 属性或网络分析图层对象中获取。也可从网络数据集 Describe 对象的 catalogPath 属性中获取。 | String |
数据类型 | 说明 |
Dictionary | 关键字为出行模式名称且值是出行模式对象的字典。 |
代码示例
在网络数据集中获取出行模式并打印步行时间出行模式。
import arcpy
nds = 'C:/Data/SanDiego.gdb/Transportation/Streets_ND'
travel_modes = arcpy.na.GetTravelModes(nds)
print(travel_modes['Walking Time'])
在 ArcGIS Online 上创建出行模式名称的列表。可根据用户的帐户设置对这些名称进行本地化。
import arcpy
travel_modes = arcpy.na.GetTravelModes("https://www.arcgis.com/")
travel_mode_names = [travel_modes[mode].name for mode in travel_modes]
此示例展示了如何从网络获取出行模式并打印出行模式的部分属性。
import arcpy
network = r"C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
# Get all travel modes from the network dataset
travel_modes = arcpy.na.GetTravelModes(network)
# Print the impedance attribute and restrictions used for each travel mode
for travel_mode_name in travel_modes:
travel_mode = travel_modes[travel_mode_name]
print(travel_mode_name)
print("Impedance:", travel_mode.impedance)
print("Restrictions:", ", ".join(travel_mode.restrictions))
print("")
此示例展示了如何从网络克隆出行模式、更新其属性并在分析中使用。
import arcpy
network = r"C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
# Get all travel modes from the network dataset
travel_modes = arcpy.na.GetTravelModes(network)
# Construct a new TravelMode object from the existing Driving Time travel mode
new_travel_mode = arcpy.na.TravelMode(travel_modes["Driving Time"])
# Update the useHierarchy property to turn hierarchy off, and update the name
new_travel_mode.name = "Driving Time without Hierarchy"
new_travel_mode.useHierarchy = "NO_HIERARCHY"
# Use the new travel mode object when creating an OD cost matrix analysis layer
arcpy.na.MakeODCostMatrixAnalysisLayer(network, "OD Cost Matrix", new_travel_mode)