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')))
예제 #2
0
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")))
예제 #3
0
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)
예제 #4
0
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)
예제 #5
0
def load_nodes_from_xml_parse(xmlp):
	for n in xmlp.iter('node'):
		dtags = get_tags(n)
		nodes.load_xml_node(n,dtags)