车辆位置追踪
Vehicle position tracking
我一直在尝试跟踪特定道路上的车辆速度,这条道路有停车场。这是我为跟踪特定人群中的每辆车而编写的代码,此代码在每 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
我一直在尝试跟踪特定道路上的车辆速度,这条道路有停车场。这是我为跟踪特定人群中的每辆车而编写的代码,此代码在每 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