def load_hsnr_from_cad_file(fnadresses,source): 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 # if 'ref:FR:FANTOIR' in dtags: # adresses.add_fantoir(normalize(dtags['name']),dtags['ref:FR:FANTOIR'],source) 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')] = [] # print(dtags['name']) # print(normalize(dtags['name'])) 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) # adresses.add_adresse(Adresse(nd,dtags['addr:housenumber'],v,''),source) else: print('Numero invalide : {:s}'.format(dtags['addr:housenumber'].encode('utf8')))
def add_adresse(self, ad, source): """ une adresses est considérée dans la commune si sans Fantoir ou avec un Fantoir de la commune""" if (ad.fantoir == '' or (is_valid_fantoir(ad.fantoir) and ad.fantoir[0:5] == code_insee)) and is_valid_housenumber(ad.numero): cle = normalize(ad.voie) self.add_voie(ad.voie, source) self.a[cle]['numeros'][ad.numero] = ad if ad.fantoir != '': self.a[cle]['fantoirs']['OSM'] = ad.fantoir else: print(u'adresse rejetée : {:s} {:s}'.format(ad.numero, ad.fantoir))
def load_hsnr_from_cad_file(fnadresses, source): 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 # if 'ref:FR:FANTOIR' in dtags: # adresses.add_fantoir(normalize(dtags['name']),dtags['ref:FR:FANTOIR'],source) 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')] = [] # print(dtags['name']) # print(normalize(dtags['name'])) 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) # adresses.add_adresse(Adresse(nd,dtags['addr:housenumber'],v,''),source) else: print('Numero invalide : {:s}'.format( dtags['addr:housenumber'].encode('utf8')))
def add_adresse(self,ad,source): """ une adresses est considérée dans la commune si sans Fantoir ou avec un Fantoir de la commune""" if (ad.fantoir == '' or (is_valid_fantoir(ad.fantoir) and ad.fantoir[0:5] == code_insee)) and is_valid_housenumber(ad.numero): cle = normalize(ad.voie) self.add_voie(ad.voie,source) self.a[cle]['numeros'][ad.numero] = ad if ad.fantoir != '': self.a[cle]['fantoirs']['OSM'] = ad.fantoir else: print(u'adresse rejetée : {:s} {:s}'.format(ad.numero,ad.fantoir))