anylogic - 车辆位置跟踪
问题描述
我一直在尝试跟踪特定道路上车辆的速度,这条道路有停车场。这是我为跟踪特定人群中的每辆车而编写的代码,该代码在每 15 秒运行一次的事件块中运行。
for (i = 0 ;i < car.size(); i++){
if(car(i).isCarOn(road1)){
car(i).id.setText(String.valueOf(i));
vCar = autos(i).getSpeed();
text = text + System.lineSeparator() + "Car (" + i + "):" + vCar;
}else if (car(i).isCarOn(road)){
car(i).id.setText(String.valueOf(i));
vCar = car(i).getSpeed();
text2 = text2 + System.lineSeparator() + "Car (" + i + "):" + vCar;
}
}
问题是,当汽车从道路换到停车场时,它会抛出 NullPointerException 错误,有没有办法解决这个问题跟踪这些车辆的速度?如果对此错误有解释,那就太好了。
提前致谢
解决方案
好的,在您的澄清之后,几乎可以肯定会发生错误,因为汽车进入道路的速度太快并且一直在 carSource 的队列中。
当汽车在这个队列中时,即使它们存在于汽车群体中,它们也不能作为汽车被访问......这可能很奇怪,但事情就是这样。
现在,如果您想知道特定道路上的速度,您应该让汽车在该道路上行驶:
for (Car c : road.getCars(true)){//true means forward lane
vCar=c.getSpeed();
}
for (Car c : road.getCars(false)){//false means backwards lane
vCar=c.getSpeed();
}
尽管如此,为了继续做你正在做的事情,我很久以前就这个话题做了一个视频。不幸的是,这个视频有点长(7 分钟)而且很无聊(我正在测试我的 youtube 能力),但这与你有关问题...这是避免此 carSource 队列出现问题的技巧: https ://www.youtube.com/watch?v=EgYqraEibD4
推荐阅读
- batch-file - 批处理文件中的字符串替换问题
- android - 是否有任何插件可以忽略以flutter中的小部件开头的大写字母?(android studio)
- python - 无法用pywin32打开excel文件
- javascript - 带有静态查询的盖茨比图像
- oracle-sqldeveloper - 在 Oracle SQL Developer 中单击表时将默认选项卡设置为数据
- python - 如何在 macOS 10.15.4 Catalina 上卸载 python 2.7.16?
- java - Maven Surefire 正确使用 Exclude
- python - Python 中的同时赋值与一对一赋值
- javascript - 使用响应式图像转到页面中的锚标记
- sql - 如何避免使用 concat