地理参考网络#
SUMO 网络始终以笛卡尔坐标(米)编码,并包含地理参考信息,以便转换为经纬度。默认情况下,笛卡尔坐标使用 UTM 投影,原点经过偏移,使得网络的左下角位于 (0,0)。
Note
投影信息编码在 .net.xml 文件顶部的 <location> 元素中。
- 当从 OSM 导入网络时,生成的 .net.xml 文件中会自动包含地理参考信息。
- 当从 plain-xml 文件导入网络时,坐标可以以经纬度形式给出,并使用投影选项(如 --proj.utm)进行导入。
- 当从 Shapefile 导入网络时,地理参考的可用性取决于源数据的格式。
osmWebWizard 与航空/卫星影像#
互联网上投影背景图层的实际标准是 Web Mercator Projection。在 osmWebWizard.py 中激活 Satellite background 设置时,默认投影将从 UTM 更改为 Web-Mercator(投影字符串 +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs),以避免网络与下载的图像图层之间的投影不匹配。请注意,坐标原点 (0,0) 仍会偏移至网络的左下角。
检查地理坐标#
在 sumo-gui 和 netedit 中,当在包含地理参考的网络中右键单击任何位置时,选项 Show cursor geo-position in 允许打开子菜单以启动 Web 浏览器,直接在 maps.google.com、openstreetmap.org 或 geohack 中显示该位置。
此外,还可使用选项 Copy cursor geo-position to clipboard。生成的 lat,lon 坐标适合粘贴到任何地图引擎中,例如 maps.google.com 或 maps.bing.com。
同时,窗口右下角会显示网络坐标以及光标位置的地理坐标。
执行坐标转换#
- 使用 TraCI,可以在网络坐标 (m,m) 和地理坐标 (lon,lat) 之间进行转换,反之亦然。
- 使用 sumolib,可以在网络坐标 (m,m) 和地理坐标 (lon,lat) 之间进行转换,反之亦然。同时也支持在经纬度和原始 UTM (m,m) 之间来回转换。
在 XML 输入中使用地理坐标#
duarouter 和 sumo 应用程序支持属性 fromLonLat, toLonLat, viaLonLat,以便将行程直接映射到给定坐标最近的网络路段或路口。
获取包含地理坐标的输出#
- 可以使用 netconvert 命令将网络以地理坐标导出为 plain-xml:
netconvert --sumo-net-file myNet.net.xml --plain-output-prefix plain --proj.plain-geo
- 通过添加选项 --fcd-output.geo,可以获取地理坐标形式的 FCD-output。
- duarouter 支持选项 --write-trips.geo 以创建包含地理坐标的行程定义(见上文)。
映射地理坐标#
通常需要在地理坐标 (lon,lat) 和道路坐标 (laneID, offset) 之间进行转换。这通常通过一个两步过程完成:首先将 lon,lat 转换为 x,y 网络坐标(以米为单位),然后将这些坐标匹配到最近的车道。以下资源对此任务很有帮助:
- 如何匹配轨迹
- traci.moveToXY 将车辆移动到合适的网络位置
- 使用 sumolib 将地理坐标转换为路段
- TraCI 在坐标 (x,y 或 lon,lat) 和路段之间进行转换
