Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Returns the current change.
 /// </summary>
 /// <returns></returns>
 private osmChange GetCurrentChange()
 {
     if (_current_changes == null)
     {
         _current_changes = new osmChange();
     }
     return _current_changes;
 }