26 std::vector<JunctionInternal>* junctions) {
27 const tinyxml2::XMLElement* junction_node =
28 xml_node.FirstChildElement(
"junction");
29 while (junction_node) {
31 std::string junction_id;
34 if (checker != tinyxml2::XML_SUCCESS) {
35 std::string err_msg =
"Error parse junction id";
40 const tinyxml2::XMLElement* sub_node =
41 junction_node->FirstChildElement(
"outline");
43 std::string err_msg =
"Error parse junction outline";
48 junction.mutable_id()->set_id(junction_id);
49 PbPolygon* polygon = junction.mutable_polygon();
53 junction_internal.
junction = junction;
56 sub_node = junction_node->FirstChildElement(
"objectOverlapGroup");
58 sub_node = sub_node->FirstChildElement(
"objectReference");
60 std::string object_id;
63 if (checker != tinyxml2::XML_SUCCESS) {
64 std::string err_msg =
"Error parse junction overlap id";
69 overlap_with_juntion.
object_id = object_id;
71 overlap_with_juntion);
73 sub_node = sub_node->NextSiblingElement(
"objectReference");
77 junctions->push_back(junction_internal);
78 junction_node = junction_node->NextSiblingElement(
"junction");