我目前正在开展一个学校项目,我们必须设置交通模拟。我们决定使用TraaS。
TraaS有一种方法可以检索给定车辆的当前X和Y坐标(参见getPosition)。但是,这些X和Y坐标不是实际的地图坐标,而是相对于SUMO网。
问题是:如何将这些相对坐标转换为地理坐标?
TraaS有一个名为convertGeo的方法,可将X和Y坐标转换为地理坐标,但该方法会抛出异常。据我所知,我将正确的参数传递给方法;两个双打和一个字符串,表示您是从地理坐标转换到还是。该方法抛出以下异常:
命令171的SUMO错误:不支持源位置类型
//Get a random vehicle from the list of current vehicles in the simulation.
String vehicle = getRandomVehicle(); //Retrieves a random ID of an existing vehicle in the simulatio, don't worry about it,
SumoPosition2D pos = (SumoPosition2D) conn.do_job_get(Vehicle.getPosition(vehicle)); //Retrieves the last X and Y coordinates of the vehicle (example -> X: 6997.111901690444, Y: 7564.062169389001)
Object obj = conn.do_job_get(Simulation.convertGeo(pos.x, pos.y, "False")); //Throws an exception -> SUMO error for command 171: Source position type not supported)
答案 0 :(得分:1)
答案 1 :(得分:0)
谢谢你的建议,迈克尔。
我已联系过TraaS的创建者,他确认这是一个错误。该问题已在r48(https://sourceforge.net/p/traas/code/48/)中修复。 convertGeo的参数也从(double,double,String)变为(double,double,boolean)。