diff --git a/LibCarla/source/carla/road/element/Waypoint.cpp b/LibCarla/source/carla/road/element/Waypoint.cpp index 860c9b302..cf2c19e0d 100644 --- a/LibCarla/source/carla/road/element/Waypoint.cpp +++ b/LibCarla/source/carla/road/element/Waypoint.cpp @@ -172,9 +172,14 @@ namespace element { } double Waypoint::GetLaneWidth() const { - const auto info = GetRoadSegment().GetInfo(_dist); - const auto lane_info = info != nullptr ? info->getLane(_lane_id) : nullptr; - return lane_info != nullptr ? lane_info->_width : 0.0; + const auto *road_segment = _map->GetData().GetRoad(_road_id); + const auto lane_width_info = road_segment->GetInfos(_dist); + for (auto &&lane : lane_width_info) { + if (lane->GetLaneId() == _lane_id) { + return lane->GetPolynomial().Evaluate(_dist); + } + } + return 0.0; } std::pair Waypoint::GetMarkRecord() const {