有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将X&Y转换为Lat&Lon

我目前正在做一个学校项目,我们必须建立一个交通模拟。我们决定使用TraaS

TraaS有一种检索给定车辆当前X和Y坐标的方法(参见getPosition)。然而,这些X和Y坐标不是实际的地图坐标,而是相对于相扑网的

问题是:如何将这些相对坐标转换为地理坐标

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) 

共 (2) 个答案

  1. # 1 楼答案

    谢谢你的建议,迈克尔

    我已经联系了TraaS的创建者,他确认这是一个bug。该问题已在r48(https://sourceforge.net/p/traas/code/48/)中修复。convertGeo的参数也从(double,double,String)更改为(double,double,boolean)

  2. # 2 楼答案

    code来看,我认为该命令尚未在TraaS中实现。您可以使用TraCI4J或python客户机(推荐使用,因为它是最新的客户机),它已经与sumo和jython捆绑在一起(如果您需要坚持使用java)