def __init__(self): # Dictionary containing a street object for each street name (key) self.streets = dict() self.corresponding_intersections = dict() self.adjacent_street_names = dict() street_config_root = XmlParser.parse("streetconfig.xml").getroot() xml_street_list = street_config_root[0] for xml_street in xml_street_list: street = Street() street.street_name = xml_street.attrib['name'] street.traffic_light_number = int( xml_street.attrib['trafficLightNumber']) for xml_street_child in xml_street.iter('RoadComponent'): start_point = MapPoint(int(xml_street_child[0].attrib['x']), int(xml_street_child[0].attrib['y'])) end_point = MapPoint(int(xml_street_child[1].attrib['x']), int(xml_street_child[1].attrib['y'])) road_component = RoadComponent( heading=MapHeading[xml_street_child.attrib['heading']], start=start_point, end=end_point) street.road_component_list.append(road_component) # Insert adjacent streets self.adjacent_street_names[street.street_name] = list() for xml_adjacent_street in xml_street.iter('AdjacentStreet'): self.adjacent_street_names[street.street_name].append( xml_adjacent_street.attrib['streetName']) # Append street to dictionary self.streets[street.street_name] = street self.build_intersections()