/// <summary> /// Converts an API v6 xml osmChange object to a SimpleChange object. /// </summary> /// <param name="osm_change"></param> /// <returns></returns> private ChangeSet Convertv6XmlChanges(OsmSharp.Osm.Xml.v0_6.osmChange osm_change) { List <Change> changes = new List <Change>(); if (osm_change.create != null) { for (int idx = 0; idx < osm_change.create.Length; idx++) { OsmSharp.Osm.Xml.v0_6.create create = osm_change.create[idx]; List <OsmGeo> changed_objects = new List <OsmGeo>(); if (create.node != null) { // change represents a change in a node. for (int node_idx = 0; node_idx < create.node.Length; node_idx++) { changed_objects.Add(this.Convertv6XmlNode(create.node[node_idx])); } } if (create.way != null) { // change represents a change in a way. for (int way_idx = 0; way_idx < create.way.Length; way_idx++) { changed_objects.Add(this.Convertv6XmlWay(create.way[way_idx])); } } if (create.relation != null) { // change represents a change in a relation. for (int relation_idx = 0; relation_idx < create.relation.Length; relation_idx++) { changed_objects.Add(this.Convertv6XmlRelation(create.relation[relation_idx])); } } if (changed_objects.Count > 0) { // there are actually changed objects. changes.Add(new OsmSharp.Osm.Change() { OsmGeo = changed_objects, Type = OsmSharp.Osm.ChangeType.Create }); } } } ChangeSet simple_change_set = new ChangeSet(); simple_change_set.Changes = changes; return(simple_change_set); }
/// <summary> /// Returns the current change. /// </summary> /// <returns></returns> private osmChange GetCurrentChange() { if (_current_changes == null) { _current_changes = new osmChange(); } return _current_changes; }