44 std::vector<LaneLink> lane_links;
52 std::vector<Connection> connections;
53 std::set<road::ContId> controllers;
59 std::vector<Junction> junctions;
62 junction.id = junction_node.attribute(
"id").as_int();
63 junction.name = junction_node.attribute(
"name").value();
66 for (
pugi::xml_node connection_node : junction_node.children(
"connection")) {
68 Connection connection;
69 connection.id = connection_node.attribute(
"id").as_uint();
70 connection.incoming_road = connection_node.attribute(
"incomingRoad").as_uint();
71 connection.connecting_road = connection_node.attribute(
"connectingRoad").as_uint();
74 for (
pugi::xml_node lane_link_node : connection_node.children(
"laneLink")) {
77 lane_link.from = lane_link_node.attribute(
"from").as_int();
78 lane_link.to = lane_link_node.attribute(
"to").as_int();
80 connection.lane_links.push_back(lane_link);
83 junction.connections.push_back(connection);
87 for (
pugi::xml_node controller_node : junction_node.children(
"controller")) {
88 const road::ContId controller_id = controller_node.attribute(
"id").value();
91 junction.controllers.insert(controller_id);
94 junctions.push_back(junction);
98 for (
auto &junction : junctions) {
99 map_builder.
AddJunction(junction.id, junction.name);
100 for (
auto &connection : junction.connections) {
104 connection.incoming_road,
105 connection.connecting_road);
106 for (
auto &lane_link : connection.lane_links) {