Добавил модуль, который рендерит в файлы .osm при помощи движка шаблонов Django 1.3.
На входе - dict. На выходе - либо строка (.render(), .dumps()), либо в файловый поток (.dump())
import bz2
from osm2py import template
doc = {
'nodes': [{'id': ..., 'tags': {'highway': 'primary'}, ...}, {'id': ...}],
'ways': [...],
'relations': [...],
}
osmbz2 = bz2.BZ2File('mymap.osm.bz2', 'w')
template.dump(doc, osmbz2)
Также умеет сделать из точек путь:
>>> nodes = [{u'changeset': 5423505,
>>> u'id': 848517446,
>>> u'lat': 54.753465400000003,
>>> u'lon': 83.128522599999997,
>>> u'timestamp': u'2010-08-07T10:39:15Z',
>>> u'uid': 237049,
>>> u'user': u'siberiano',
>>> u'version': u'1'},
>>> {u'changeset': 7016890,
>>> u'id': 1109991376,
>>> u'lat': 54.753030099999997,
>>> u'lon': 83.134304200000003,
>>> u'timestamp': u'2011-01-19T03:13:30Z',
>>> u'uid': 237045,
>>> u'user': u'Magomogo',
>>> u'version': u'1'}]
>>> template.make_dummy_way(nodes, {'highway': 'motorway'})
{'nodes': [{u'changeset': 5423505,
u'id': 848517446,
u'lat': 54.753465400000003,
u'lon': 83.128522599999997,
u'timestamp': u'2010-08-07T10:39:15Z',
u'uid': 237049,
u'user': u'siberiano',
u'version': u'1'},
{u'changeset': 7016890,
u'id': 1109991376,
u'lat': 54.753030099999997,
u'lon': 83.134304200000003,
u'timestamp': u'2011-01-19T03:13:30Z',
u'uid': 237045,
u'user': u'Magomogo',
u'version': u'1'}],
'ways': [{'id': 1,
'nodes': [{'ref': 848517446},
{'ref': 1109991376}],
'tags': {'highway': 'motorway'}}]}
https://bitbucket.org/siberiano/osm2python