首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得静脉中两个节点(如车辆)之间的距离或行程时间?

如何获得静脉中两个节点(如车辆)之间的距离或行程时间?
EN

Stack Overflow用户
提问于 2018-06-14 19:41:45
回答 2查看 1.3K关注 0票数 0

在静脉中,我可以用Coord.distance()函数计算出两个坐标之间的距离。然而,这个函数只是计算两点之间的笛卡尔距离。两辆车或一辆车与一个交叉口之间的实际距离取决于边缘形状(例如曲线边缘)。此外,它取决于边缘长度(SUMO参数)。它们在相扑或静脉中的作用是否考虑到了这些因素?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-10 19:11:37

我发现了我的错误!

为了获得车辆与另一个节点(特别是交通灯)之间的行驶距离,我必须估计一个有效的coord,它靠近交通灯,位于车辆路线上,与计算车辆与交通灯交界处的距离相反。

为了估计交通灯的有效交通信号灯,我使用了车辆将通过红绿灯的道路标识中任何车道的最后一个坐标。代码将如下所示:

代码语言:javascript
复制
// get traffic light controlled lanes
    Veins::TraCICommandInterface::Trafficlight traciTL = traci->trafficlight(trafficLightID);
    // controlled lanes
    std::list<std::string> lanes = traciTL.getControlledLanes();
    for(auto lane : lanes){
        // which controlled lane in the road_id
        if(traci->lane(lane).getRoadId() == road_id){  // found
            // return last Coord of this lane
            std::list<Coord> laneCoords = traci->lane(lane).getShape();
            return  getDistance(vehicle_Coord, laneCoords.back(),true); 
        }
    }
票数 0
EN

Stack Overflow用户

发布于 2018-06-15 12:59:28

您可以使用相扑的距离请求TraCI呼叫,它可以计算空气距离以及两个任意位置之间的驾驶距离。在静脉中,此调用在TraCICommandInterface::getDistance()中实现。

代码语言:javascript
复制
double getDistance(const Coord& position1, const Coord& position2, bool returnDrivingDistance);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50864775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档