0
A
回答
1
这是一个常见问题,但可能以前没有回答过。不幸的是,答案在很大程度上取决于您输入数据的质量,主要取决于您的位置更新的频率/距离(如果每个数据有时间戳,这也会有所帮助),以及这些位置的精确度与您的街道网络相匹配。在最好的情况下,街道网络中每条路线的边缘都会有位置更新,您可以通过将位置映射到街道来简单地读取路线。这种映射可以使用Python sumolib与相扑来完成:
import sumolib
net = sumolib.net.readNet("myNet.net.xml")
route = []
radius = 1
for x, y in coordinates:
minDist, minEdge = min([(dist, edge) for edge, dist in net.getNeighboringEdges(x_coordinate, y_coordinate, radius)])
if len(route) == 0 or route[-1] != minEdge.getID():
route.append(minEdge.getID())
也http://sumo.dlr.de/wiki/Tools/Sumolib#locate_nearby_edges_based_on_the_geo-coordinate有关附加地理转换。
这时候有在路线的边缘上没有得到一个数据点击中或失败,如果你有一个不匹配(例如匹配它出现在“错误”的方向上的边缘)。在前一种情况下,您可以使用相扑的duarouter轻松修复路线。
> duarouter -n myNet.net.xml -r myRoutesWithGaps.rou.xml -o myRepairedRoutes.rou.xml --repair
后一种情况很难检测和修复,因为它很大程度上取决于您对错误边缘的定义。有几乎明确的例子突然打到相反的方向(这仍然可能发生在实际交通中)以及许多难以确定的小弯路,并且应该有单独的答案。
由于您要求连续输入,因此您可能也有兴趣使用TraCI以及此FAQ on constant input flow生活。
相关问题
- 1. Sumo模拟器netConvert
- 2. Sumo模拟术语
- 3. Nettiers模拟场景
- 4. 模拟器SUMO和Matlab之间的关系通过Traci4Matlab
- 5. 模拟Cocos2D替换UIKit中的场景
- 6. 使用Matlab模拟CoMP(Coorinated Multipoint)场景
- 7. 交通VHDL模拟问题
- 8. Haskell线程通信模式场景
- 9. 模拟竞技场
- 10. 线程交互场景
- 11. 交通灯模拟和xbee通讯
- 12. SUMO交通建模:如何使用左手驾驶规则创建网络?
- 13. SUMO:更改模拟时间步长和输出选项
- 14. 在macOS Sierra上安装SUMO模拟器(2017)
- 15. 在道路网络的子图上运行SUMO模拟
- 16. 在SUMO上模拟真实世界的汽车
- 17. 交通灯模拟器错误
- 18. 计时器在交通灯模拟
- 19. 虚拟场编辑模型
- 20. 如何模拟静脉中的两个简单场景?
- 21. 在NBehave中使用多种场景的模拟
- 22. 如何模拟不同的网络场景? (Java)
- 23. 如何模拟Beanutils.setProperty的测试用例异常场景
- 24. 如何把模拟屏幕控制到主场景?
- 25. 为不同场景配置模拟对象的状态
- 26. 模拟一个简单的物理相关场景
- 27. 是否可以模拟Silverlight UI线程(重现死锁场景)?
- 28. 模拟真实生活场景中的活动和代表
- 29. Web应用程序中的事务处理场景模拟
- 30. Windows模拟器不同于统一场景的结果
TBH,我还是这个新手。有时间戳。那么它将如何改变这种状况呢?谢谢。 – skw1990
时间戳和速度有助于估计行进距离,因此您知道搜索下一个边缘时的最大范围(假设您的最后猜测是正确的) – Michael