Guest User

Untitled

a guest
Oct 22nd, 2017
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. from overpy import Overpass
  4. from osmapi import OsmApi
  5.  
  6. # Récupère les ids des objets memorial=plaque à Paris:
  7. overpass = Overpass()
  8. res_nodes = overpass.query("""
  9. [out:json];
  10. area[name = "Paris"]->.a;
  11. (
  12. node(area.a)[memorial=plaque];
  13. );
  14. out;""").nodes
  15.  
  16. # Filtre les objets selon que le nom contien "histoire de paris" et qu'il
  17. # n'a pas déjà été taggé avec les nouveaux attributs :
  18. rame_hdp = []
  19. for n in res_nodes:
  20. if n.tags.get('name', None):
  21. if 'histoire de paris' in n.tags['name'].lower() \
  22. and not n.tags.get('tourism', None) == 'information':
  23. rame_hdp.append(n)
  24.  
  25. osma = OsmApi(username='***', password='***')
  26. osma.ChangesetCreate(
  27. {u"comment": u"Corrections on some 'histoire de paris' information boards"})
  28.  
  29. rval = []
  30. for node in rame_hdp:
  31. current_data = osma.NodeGet(node.id)
  32. # Copie des infos 'id', 'lat', 'lon', 'version' et 'tags':
  33. new_data = {}
  34. new_data['id'] = current_data['id']
  35. new_data['lon'] = current_data['lon']
  36. new_data['lat'] = current_data['lat']
  37. new_data['version'] = current_data['version']
  38. new_data['tag'] = current_data['tag']
  39.  
  40. # Modif. des tags:
  41. new_data['tag']['tourism'] = 'information'
  42. new_data['tag']['operator'] = 'Mairie de Paris'
  43. new_data['tag']['title'] = 'Histoire de Paris'
  44. new_data['tag']['name'] = \
  45. new_data['tag']['name'].replace('Histoire de Paris ', '')
  46.  
  47. # Le noeud mis à jour est retourné:
  48. r = osma.NodeUpdate(new_data)
  49. rval.append(r)
  50.  
  51. osma.ChangesetClose()
Add Comment
Please, Sign In to add comment