Skip to content

Commit

Permalink
Improve query to include buildings and relations.
Browse files Browse the repository at this point in the history
  • Loading branch information
jose1711 committed Feb 18, 2022
1 parent bebfecb commit d3f00c3
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 6 deletions.
10 changes: 8 additions & 2 deletions mass_edits/namestie_nam/README.md
Expand Up @@ -11,8 +11,14 @@ Overpass query (záber):
[out:json][timeout:25];
(
node["addr:housenumber"][~"name"~"[nN]ám\\."]({{bbox}});
way[highway][~"name"~"[nN]ám\\."]({{bbox}});
// adresne body/uzly
node["addr:housenumber"]["addr:street"~"[nN]ám\\."](area:3600014296);
// ulice
way[highway]["name"~"[nN]ám\\."](area:3600014296);
// adresy na budovach
way["addr:street"~"[nN]ám\\."](area:3600014296);
// adresy na relaciach
relation["addr:street"~"[nN]ám\\."](area:3600014296);
);
out body;
Expand Down
27 changes: 23 additions & 4 deletions mass_edits/namestie_nam/namestie.py
Expand Up @@ -18,8 +18,18 @@

# stiahne uzly a cesty z overpass
api = API(timeout=300)
query = '''( node["addr:housenumber"]["addr:street"~"[nN]ám\\\."](area:{rel});
way["highway"]["name"~"[nN]ám\\\."](area:{rel}););'''.format(rel=3600014296)
query = '''
(
// adresne body/uzly
node["addr:housenumber"]["addr:street"~"[nN]ám\\\."](area:{rel});
// ulice
way[highway]["name"~"[nN]ám\\\."](area:{rel});
// adresy na budovach
way["addr:street"~"[nN]ám\\\."](area:{rel});
// adresy na relaciach
relation["addr:street"~"[nN]ám\\\."](area:{rel});
);'''
query = query.format(rel=3600014296)

data = api.get(query=query, verbosity='meta', responseformat='xml')

Expand All @@ -31,13 +41,22 @@
for element in list(root_element):
# preskoci neuzitocne elementy
if element.tag in ('note', 'meta'): continue
name_tag = altname_tag = longname_tag = None

# adresa (addr:street) ako uzol
if element.tag == 'node':
name_tag = element.find('tag[@k="addr:street"]')
# adresa (addr:street) na budove
elif element.tag == 'way' and isinstance(element.find('tag[@k="addr:street"]'), ET.Element):
name_tag = element.find('tag[@k="addr:street"]')
# ulica s nazvom (name)
elif element.tag == 'way':
name_tag = element.find('tag[@k="name"]')
altname_tag = element.find('tag[@k="alt_name"]')
longname_tag = element.find('tag[@k="long_name"]')
# adresa ako relacia
elif element.tag == 'relation':
name_tag = element.find('tag[@k="addr:street"]')

# prida priznak action=modify
element.attrib['action'] = 'modify'
Expand All @@ -47,11 +66,11 @@
name_tag.set('v', name_tag.get('v').replace('Nám.', 'Námestie'))

if altname_tag is not None and name_tag.get('v') == altname_tag.get('v'):
print('Odstranujem altname kedze je rovnaky ako name po rozbaleni)')
print('Odstranujem altname kedze je rovnaky ako name po rozbaleni')
element.remove(altname_tag)

if longname_tag is not None and name_tag.get('v') == longname_tag.get('v'):
print('Odstranujem longname kedze je rovnaky ako name po rozbaleni)')
print('Odstranujem longname kedze je rovnaky ako name po rozbaleni')
element.remove(longname_tag)

with open('original.osm', 'w') as f:
Expand Down

0 comments on commit d3f00c3

Please sign in to comment.