30 std::vector<LaneLink> lane_links;
36 std::vector<Connection> connections;
37 std::set<road::ContId> controllers;
43 std::vector<Junction> junctions;
46 junction.id = junction_node.attribute(
"id").as_int();
47 junction.name = junction_node.attribute(
"name").value();
50 for (
pugi::xml_node connection_node : junction_node.children(
"connection")) {
52 Connection connection;
53 connection.id = connection_node.attribute(
"id").as_uint();
54 connection.incoming_road = connection_node.attribute(
"incomingRoad").as_uint();
55 connection.connecting_road = connection_node.attribute(
"connectingRoad").as_uint();
58 for (
pugi::xml_node lane_link_node : connection_node.children(
"laneLink")) {
61 lane_link.from = lane_link_node.attribute(
"from").as_int();
62 lane_link.to = lane_link_node.attribute(
"to").as_int();
64 connection.lane_links.push_back(lane_link);
67 junction.connections.push_back(connection);
71 for (
pugi::xml_node controller_node : junction_node.children(
"controller")) {
72 const road::ContId controller_id = controller_node.attribute(
"id").value();
75 junction.controllers.insert(controller_id);
78 junctions.push_back(junction);
82 for (
auto &junction : junctions) {
83 map_builder.
AddJunction(junction.id, junction.name);
84 for (
auto &connection : junction.connections) {
88 connection.incoming_road,
89 connection.connecting_road);
90 for (
auto &lane_link : connection.lane_links) {