[fix] include all relation members from OSM in dependencies

This commit is contained in:
Al
2016-07-15 01:56:23 -04:00
parent e36629b6a9
commit 65b4755487
2 changed files with 6 additions and 8 deletions

View File

@@ -82,10 +82,8 @@ def parse_osm(filename, allowed_types=ALL_OSM_TAGS, dependencies=False):
attrs[e.attrib['k']] = e.attrib['v']
elif dependencies and item_type == 'way' and e.tag == 'nd':
deps.append(long(e.attrib['ref']))
elif dependencies and item_type == 'relation' and e.tag == 'member' and \
e.attrib.get('type') in ('way', 'relation') and \
'role' in e.attrib:
deps.append((long(e.attrib['ref']), e.attrib['role']))
elif dependencies and item_type == 'relation' and e.tag == 'member' and 'role' in e.attrib:
deps.append((long(e.attrib['ref']), e.attrib.get('type'), e.attrib['role']))
key = elem_id if single_type else '{}:{}'.format(item_type, elem_id)
yield key, attrs, deps