1 进入OSM,下载地图
OSM链接地址
https://www.openstreetmap.org/#map=15/23.0446/113.3897
我这里将输出的地图命名为map.osm
2 将.osm格式转化成为sumo所接纳的.net.xml格式
将从osm上下载下来的map.osm文件放置在一个文件夹下(不一定在sumo下载路径的文件夹),然后在其路径上直接输入cmd,回车,进入到命令行:
输入命令,对应代码如下:
netconvert --osm-files map.osm -o map.net.xml
点击回车,出现success即为创建成功(有警告暂时不用理)
这样,我们发现在刚刚存放map.osm的文件夹下就多出了一个map.net.xml文件
3 生成路由文件.rou.xml(利用randomTrips.py)
randomTrips.py存在的路径为:找到你下载的sumo位置进去:sumo/tools/randomTrips.py
找到其所在路径后,我们需要把刚刚的map.net.xml文件复制到该目录下,然后跟前面一样,在其路径上输入cmd,敲回车,进入命令行:
对应代码如下:
tools>randomTrips.py -n map.net.xml -r map.rou.xml -e 50 -l
出现success,代表成功创建路由文件,进入randomTrips.py的同级目录下,可看到产生了如下的文件:
4 生成仿真文件.sumocfg
将这3个文件复制出来,在桌面创建一个文件夹map(或任意位置),将这三个文件以及一开始生成的map.net.xml,一同放进去map文件夹中。并且新创建一个map.sumocfg文件:
如下图:
接下来我们需要在map.sumocfg文件夹中引入我们前面所生成的路网信息以及路由信息,并设置仿真时间:
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<input>
<net-file value="GDUTmap.net.xml" />
<route-files value="GDUTmap.rou.xml" />
</input>
<time>
<begin value="0" />
<end value="2000" />
</time>
</configuration>
5 预期结## 标题果
以上工作都完成后,直接双击GDUTmap.sumocfg文件,进入到sumoGUI界面:
设置仿真时间等,即可出现预期的仿真效果: