diff --git a/LibCarla/source/carla/road/Map.cpp b/LibCarla/source/carla/road/Map.cpp index c89ea29da..b620caf7c 100644 --- a/LibCarla/source/carla/road/Map.cpp +++ b/LibCarla/source/carla/road/Map.cpp @@ -343,6 +343,17 @@ namespace road { } else { distance_to_signal = waypoint.s - signal->GetDistance(); } + bool is_valid = false; + for (auto &validity : signal->GetValidities()) { + if (waypoint.lane_id > validity._from_lane && + waypoint.lane_id < validity._to_lane) { + is_valid = true; + break; + } + } + if(!is_valid){ + continue; + } if (distance_to_signal == 0) { result.emplace_back(SignalSearchData {signal, waypoint, @@ -368,6 +379,17 @@ namespace road { } else { distance_to_signal = waypoint.s - signal->GetDistance(); } + bool is_valid = false; + for (auto &validity : signal->GetValidities()) { + if (waypoint.lane_id > validity._from_lane && + waypoint.lane_id < validity._to_lane) { + is_valid = true; + break; + } + } + if(!is_valid){ + continue; + } if (distance_to_signal == 0) { result.emplace_back(SignalSearchData {signal, waypoint,