Files
iD/js/id/format/xml.js
John Firebaugh 76c108fc92 Remove unused
2013-01-27 21:50:08 -05:00

56 lines
1.8 KiB
JavaScript

iD.format.XML = {
// Generate Changeset XML. Returns a string.
changeset: function(tags) {
return (new XMLSerializer()).serializeToString(
JXON.unbuild({
osm: {
changeset: {
tag: _.map(tags, function(value, key) {
return { '@k': key, '@v': value };
}),
'@version': 0.3,
'@generator': 'iD'
}
}
}));
},
// Generate [osmChange](http://wiki.openstreetmap.org/wiki/OsmChange)
// XML. Returns a string.
osmChange: function(userid, changeset_id, changes) {
function nest(x) {
var groups = {};
for (var i = 0; i < x.length; i++) {
var tagName = Object.keys(x[i])[0];
if (!groups[tagName]) groups[tagName] = [];
groups[tagName].push(x[i][tagName]);
}
var order = ['node', 'way', 'relation'];
var ordered = {};
order.forEach(function(o) {
if (groups[o]) ordered[o] = groups[o];
});
return ordered;
}
function rep(entity) {
return entity.asJXON(changeset_id);
}
return (new XMLSerializer()).serializeToString(JXON.unbuild({
osmChange: {
'@version': 0.3,
'@generator': 'iD',
// TODO: copy elements first
create: nest(changes.created.map(rep)),
modify: changes.modified.map(rep),
'delete': changes.deleted.map(function(x) {
x = rep(x);
x['@if-unused'] = true;
return x;
})
}
}));
}
};