Skip to content

Commit 212aa34

Browse files
committed
add check if road id already exists
1 parent 385f95b commit 212aa34

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/OpenDriveMap.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,12 @@ OpenDriveMap::OpenDriveMap(const std::string& xodr_file,
147147
for (pugi::xml_node road_node : odr_node.children("road"))
148148
{
149149
/* make road */
150-
const std::string road_id = road_node.attribute("id").as_string("");
151-
std::string rule_str = std::string(road_node.attribute("rule").as_string("RHT"));
150+
std::string road_id = road_node.attribute("id").as_string("");
151+
CHECK_AND_REPAIR(this->id_to_road.find(road_id) == this->id_to_road.end(),
152+
(std::string("road::id already exists - ") + road_id).c_str(),
153+
road_id = road_id + std::string("_dup"));
154+
155+
std::string rule_str = std::string(road_node.attribute("rule").as_string("RHT"));
152156
std::transform(rule_str.begin(), rule_str.end(), rule_str.begin(), [](unsigned char c) { return std::tolower(c); });
153157
const bool is_left_hand_traffic = (rule_str == "lht");
154158

0 commit comments

Comments
 (0)