车辆位置追踪

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