AnyLogic道路交通库:基于空闲车位选停车场失效问题求助
解决AnyLogic中通过集合选择空闲停车场的问题
核心修复步骤
正确初始化集合
确保parkingSpaces集合在模型启动时已包含两个停车场实例。在Main的On startup事件中添加代码:parkingSpaces.add(parkinglot1); parkingSpaces.add(parkinglot2);注意集合类型需设置为
Collection<ParkingLot>,避免类型不匹配。修改CarSource的目的地选择逻辑
替换原集合直接选择方式,改用代码筛选空闲停车场并选择:// 筛选所有有空闲车位的停车场 List<ParkingLot> availableParks = parkingSpaces.stream() .filter(park -> park.getNumberOfFreeSpaces() > 0) .collect(Collectors.toList()); // 随机选一个空闲停车场(无空闲时返回null,需根据业务处理) availableParks.isEmpty() ? null : availableParks.get(randomIndex(availableParks.size()))验证导航逻辑
确保CarSource生成的车辆能正确导航到选中的停车场:使用MoveTo模块时,直接绑定上述代码返回的停车场对象,AnyLogic会自动关联其入口点。
常见错误排查
- 集合未初始化:运行时
parkingSpaces为空,导致无停车场可选 - 筛选条件错误:误将
getNumberOfFreeSpaces() > 0写成getNumberOfOccupiedSpaces() == 0(仅选择全空停车场) - 未处理无空闲场景:若所有停车场满位,代码返回null会触发错误,需添加等待逻辑或车辆销毁机制
内容的提问来源于stack exchange,提问作者Jahidul Hasan Razib
相关产品推荐
相关产品推荐

