def load_hsnr_from_cad_file(fnadresses): xmladresses = ET.parse(fnadresses) dict_node_relations = {} for asso in xmladresses.iter('relation'): dtags = get_tags(asso) if not 'type' in dtags: continue if dtags['type'] != 'associatedStreet': continue if not 'name' in dtags: continue if len(dtags['name']) < 2: continue adresses.register(dtags['name']) adresses.add_voie(dtags['name'],'CADASTRE') for n in asso.iter('member'): if n.get('type') == 'node': if not n.get('ref') in dict_node_relations: dict_node_relations[n.get('ref')] = [] dict_node_relations[n.get('ref')].append(normalize(dtags['name'])) for n in xmladresses.iter('node'): dtags = get_tags(n) n_id = n.get('id') if 'addr:housenumber' in dtags and n_id in dict_node_relations: if is_valid_housenumber(dtags['addr:housenumber']): for v in dict_node_relations[n_id]: nd = Node({'id':n_id,'lon':n.get('lon'),'lat':n.get('lat')},{}) adresses.add_adresse(Adresse(nd,dtags['addr:housenumber'],adresses.a[v]['voies']['CADASTRE'],''),source) else: print('Numero invalide : {:s}'.format(dtags['addr:housenumber'].encode('utf8')))
def load_hsnr_from_cad_file(fnadresses): xmladresses = ET.parse(fnadresses) dict_node_relations = {} for asso in xmladresses.iter("relation"): dtags = get_tags(asso) if not "type" in dtags: continue if dtags["type"] != "associatedStreet": continue if not "name" in dtags: continue if len(dtags["name"]) < 2: continue adresses.register(dtags["name"]) adresses.add_voie(dtags["name"], "CADASTRE") for n in asso.iter("member"): if n.get("type") == "node": if not n.get("ref") in dict_node_relations: dict_node_relations[n.get("ref")] = [] dict_node_relations[n.get("ref")].append(normalize(dtags["name"])) for n in xmladresses.iter("node"): dtags = get_tags(n) n_id = n.get("id") if "addr:housenumber" in dtags and n_id in dict_node_relations: if is_valid_housenumber(dtags["addr:housenumber"]): for v in dict_node_relations[n_id]: nd = Node({"id": n_id, "lon": n.get("lon"), "lat": n.get("lat")}, {}) adresses.add_adresse( Adresse(nd, dtags["addr:housenumber"], adresses.a[v]["voies"]["CADASTRE"], ""), source ) else: print("Numero invalide : {:s}".format(dtags["addr:housenumber"].encode("utf8")))
def load_ways_from_xml_parse(xmlp,osm_key): for b in xmlp.iter('way'): a_n = [] for bn in b.iter('nd'): a_n.append(bn.get('ref')) g = WayGeom(a_n) dtags = get_tags(b) ways.add_way(Way(g,dtags,b.attrib,osm_key),b.get('id'),osm_key)
def load_ways_from_xml_parse(xmlp, osm_key): for b in xmlp.iter("way"): a_n = [] for bn in b.iter("nd"): a_n.append(bn.get("ref")) g = WayGeom(a_n) dtags = get_tags(b) ways.add_way(Way(g, dtags, b.attrib, osm_key), b.get("id"), osm_key)
def load_nodes_from_xml_parse(xmlp): for n in xmlp.iter('node'): dtags = get_tags(n) nodes.load_xml_node(n,dtags)