我目前有一个openstreetmap转换为在相扑中使用10000辆汽车并且无限时间。作为学校的分配,我们需要做的是使用这些数据并将其加载到我们现有的应用程序中,以测试我们编写的代码的可伸缩性。 问题是我如何能够将每辆汽车生成的信息加载到单独的Java应用程序中。我已经尝试过寻找解决方案但到目前为止空洞。我希望我错过了一些东西,并且可以做到这一点。
答案 0 :(得分:1)
基本上有两种方法:
在使用套接字连接或命名管道写入时解析Sumo XML输出
使用TraCI4J或TraaS界面直接连接到Sumo。
对于第一种方法,您需要在Java端打开服务器套接字
200
然后运行Sumo将输出定向到套接字。假设您在同一台机器上运行并使用排放输出,则应调用
ServerSocket serverSocket = new ServerSocket(12345);
Socket clientSocket = serverSocket.accept();
BufferedReader in = new BufferedReader(
new InputStreamReader(clientSocket.getInputStream()));
(您当然可以选择与12345不同的端口,但它们必须匹配两个呼叫。)
然后你可以解析从BufferedReader读取的文件,你可能想读一些关于XML解析的东西。
第二种方法将涉及TraaS
sumo -c my.sumocfg --emission-output localhost:12345
有关可用的方法和输出,请参阅TraaS和Sumo outputs上的文档