コード例 #1
0
ファイル: addr_cad_2_db.py プロジェクト: GeorgeKaplan/bano
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')))
コード例 #2
0
ファイル: addr_cad_2_db.py プロジェクト: KalaallitNunaat/bano
 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))
コード例 #3
0
ファイル: addr_cad_2_db.py プロジェクト: KalaallitNunaat/bano
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')))
コード例 #4
0
ファイル: addr_cad_2_db.py プロジェクト: GeorgeKaplan/bano
	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))