SUMO - 添加车辆的出发和到达边缘并使用 Dijkstra 算法找到最短路径
SUMO- Adding a vehicle's depart and arrival edges and finding the shortest path using Dijkstra's Algorithm
我从 OpenStreetMap 导入了一张地图,并在 SUMO 上使用 randomTrips.py 创建了一个随机旅行模拟。我生成了以下 xml 文件:trips.trips、map.edg、map.nod、map.typ、map.con、map.rou、map.net等
在我的map.rou文件中,随机路由是这样的:
<routes>
<vehicle id="1" depart="1.00">
<route edges="-96032438#1 -503206455#0 -158581488#10 -158581488#9 -158581488#8 -158581488#7 -158581488#6 -158581488#5 -158581488#4 -158581488#3 -158581488#2 -158581488#1 -158581488#0 -509940347#1 -509940347#0"/>
</vehicle>
...
</routes>
车辆(道路上的随机车辆)通过这些边,模拟工作正常。
但我想创建一个只有起始边(我将输入医院边)和结束边(我将输入事故点边)的车辆(紧急救护车),SUMO 找到最好的边通过 Dijkstra 算法。
我如何不预写所有边缘?
到目前为止,我有这个:
<routes>
<vType id="emergency" vClass="emergency" accel="0.8" decel="4.5" maxSpeed="70" guiShape="emergency">
<param key="has.bluelight.device" value="true"/>
</vType>
<vehicle id="2" type="emergency" depart="2.00">
<route edges="503206454#3 28890299#1 28890299#2 28890299#3 28890299#4 503507632#3 503507632#4 503507632#5 -509972419 28845613 498408593 498408592#0 498408592#1 498408592#2 498404785#2"/>
</vehicle>
</routes>
注意:当我在 cmd 中执行“sumo -c map.sumo.cfg”时,它 returns“Step #10000.00 (0ms ?*RT. ?UPS, vehicles TOT 994 ACT 0 BUF 0) " 但是当我在 sumo-gui 中打开网络时,它工作正常。
我在哪里输入救护车的出发和到达边缘?我是否必须为它创建一个特定的流程,或者我是否将它输入到没有边缘的 .rou 文件中?
请帮忙。谢谢。
SUMO 可以直接在您的路线文件中处理行程(无需使用 duarouter)。所以放
<trip id="976" type="emergency" depart="976.00" from="498404785#2" to="28890312#14"/>
直接在路线中应该可行。
我从 OpenStreetMap 导入了一张地图,并在 SUMO 上使用 randomTrips.py 创建了一个随机旅行模拟。我生成了以下 xml 文件:trips.trips、map.edg、map.nod、map.typ、map.con、map.rou、map.net等
在我的map.rou文件中,随机路由是这样的:
<routes>
<vehicle id="1" depart="1.00">
<route edges="-96032438#1 -503206455#0 -158581488#10 -158581488#9 -158581488#8 -158581488#7 -158581488#6 -158581488#5 -158581488#4 -158581488#3 -158581488#2 -158581488#1 -158581488#0 -509940347#1 -509940347#0"/>
</vehicle>
...
</routes>
车辆(道路上的随机车辆)通过这些边,模拟工作正常。
但我想创建一个只有起始边(我将输入医院边)和结束边(我将输入事故点边)的车辆(紧急救护车),SUMO 找到最好的边通过 Dijkstra 算法。 我如何不预写所有边缘?
到目前为止,我有这个:
<routes>
<vType id="emergency" vClass="emergency" accel="0.8" decel="4.5" maxSpeed="70" guiShape="emergency">
<param key="has.bluelight.device" value="true"/>
</vType>
<vehicle id="2" type="emergency" depart="2.00">
<route edges="503206454#3 28890299#1 28890299#2 28890299#3 28890299#4 503507632#3 503507632#4 503507632#5 -509972419 28845613 498408593 498408592#0 498408592#1 498408592#2 498404785#2"/>
</vehicle>
</routes>
注意:当我在 cmd 中执行“sumo -c map.sumo.cfg”时,它 returns“Step #10000.00 (0ms ?*RT. ?UPS, vehicles TOT 994 ACT 0 BUF 0) " 但是当我在 sumo-gui 中打开网络时,它工作正常。
我在哪里输入救护车的出发和到达边缘?我是否必须为它创建一个特定的流程,或者我是否将它输入到没有边缘的 .rou 文件中?
请帮忙。谢谢。
SUMO 可以直接在您的路线文件中处理行程(无需使用 duarouter)。所以放
<trip id="976" type="emergency" depart="976.00" from="498404785#2" to="28890312#14"/>
直接在路线中应该可行。