车辆位置跟踪

  • 本文关键字:跟踪 位置 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

最新更新