如何通过编程启用或禁用AnyLogic道路交通库中的特定道路
在AnyLogic道路交通库中编程启用/禁用道路
完全可以通过编程方式控制道路交通库中道路的启用状态,关联参数实现场景验证的步骤如下:
创建控制参数
在模型中添加一个布尔型参数(比如命名为useTargetRoad),默认值设为true,用来标记是否启用目标道路。命名目标道路
在路网中选中需要控制的道路,在属性面板的「Name」字段给它设置一个明确的名称,比如targetRoad——这是后续代码调用的关键标识。编写启用/禁用逻辑
AnyLogic的Road对象内置了setEnabled(boolean)方法,直接调用即可切换状态:- 若要在模型启动时就应用状态,把代码放在
Main代理的「On startup」事件中:targetRoad.setEnabled(useTargetRoad); - 若需要在模拟运行中动态切换(比如通过按钮触发或参数变更自动响应),可以给参数
useTargetRoad添加「On change」事件,同样执行上述代码;或者给UI按钮的「On click」事件绑定这段代码。
- 若要在模型启动时就应用状态,把代码放在
场景验证
修改参数useTargetRoad的值(true为启用,false为禁用)后运行模型:- 启用状态下,车辆会正常规划并使用该道路;
- 禁用状态下,后续路径规划的车辆会自动避开该道路,已在道路上的车辆会继续行驶至路段终点。
注意事项
- 代码中使用的道路名称必须和属性面板设置的完全一致,否则会出现编译错误;
- 禁用道路前需确认路网存在替代路径,避免车辆因无法规划路径而停滞。
内容的提问来源于stack exchange,提问作者Mohammad Hasan N.
相关产品推荐
相关产品推荐

