Exemple #1
0
        /// <summary>
        /// Creates a new changeset by opening one.
        /// </summary>
        /// <param name="comment"></param>
        /// <param name="created_by"></param>
        /// <returns></returns>
        public long ChangeSetOpen(string comment, string created_by)
        {
            if (created_by == null || created_by.Length == 0)
            { // a created by tag always has to exist and have a usefull value.
                throw new ArgumentOutOfRangeException("A created by tag always has to exist and have a usefull value.");
            }

            // build a new changeset.
            OsmSharp.Osm.Xml.v0_6.osm osm = new Osm.Xml.v0_6.osm();
            osm.changeset = new Osm.Xml.v0_6.changeset[1];
            OsmSharp.Osm.Xml.v0_6.changeset changeset = new Osm.Xml.v0_6.changeset();
            changeset.tag      = new OsmSharp.Osm.Xml.v0_6.tag[1];
            changeset.tag[0]   = new Osm.Xml.v0_6.tag();
            changeset.tag[0].k = "created_by";
            changeset.tag[0].v = created_by;
            osm.changeset[0]   = changeset;

            // serialize the changeset.
            XmlSerializer serializer = new XmlSerializer(typeof(OsmSharp.Osm.Xml.v0_6.osm));
            MemoryStream  mem_stream = new MemoryStream();
            Stream        stream     = mem_stream;

            serializer.Serialize(stream, osm);
            stream.Flush();
            mem_stream.Flush();
            byte[] put_data = mem_stream.ToArray();

            // do the api call.
            string response_string = this.DoApiCall(true, "api/0.6/changeset/create", Method.PUT, put_data);

            _current_changeset    = changeset;
            _current_changeset.id = long.Parse(response_string);
            return(_current_changeset.id);
        }
Exemple #2
0
        public long ChangeSetOpen(string comment, string created_by)
        {
            if (created_by == null || created_by.Length == 0)
            {
                throw new ArgumentOutOfRangeException("A created by tag always has to exist and have a usefull value.");
            }
            osm osm1 = new osm();

            osm1.changeset = new changeset[1];
            changeset changeset = new changeset();

            changeset.tag      = new tag[1];
            changeset.tag[0]   = new tag();
            changeset.tag[0].k = "created_by";
            changeset.tag[0].v = created_by;
            osm1.changeset[0]  = changeset;
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(osm));
            MemoryStream  memoryStream  = new MemoryStream();
            Stream        stream1       = (Stream)memoryStream;
            Stream        stream2       = stream1;
            osm           osm2          = osm1;

            xmlSerializer.Serialize(stream2, (object)osm2);
            stream1.Flush();
            memoryStream.Flush();
            string s = this.DoApiCall(true, "api/0.6/changeset/create", APIConnection.Method.PUT, memoryStream.ToArray());

            this._current_changeset    = changeset;
            this._current_changeset.id = long.Parse(s);
            return(this._current_changeset.id);
        }
Exemple #3
0
        private ChangeSetInfo Convertv6XmlChangeSet(changeset xml_changeset)
        {
            ChangeSetInfo changeSetInfo = new ChangeSetInfo();

            if (xml_changeset.idSpecified)
            {
                changeSetInfo.Id = new long?(xml_changeset.id);
            }
            if (xml_changeset.closed_atSpecified)
            {
                changeSetInfo.ClosedAt = new DateTime?(xml_changeset.closed_at);
            }
            if (xml_changeset.closed_atSpecified)
            {
                changeSetInfo.CreatedAt = xml_changeset.created_at;
            }
            if (xml_changeset.max_latSpecified)
            {
                changeSetInfo.MaxLat = xml_changeset.max_lat;
            }
            if (xml_changeset.max_lonSpecified)
            {
                changeSetInfo.MaxLon = xml_changeset.max_lon;
            }
            if (xml_changeset.min_latSpecified)
            {
                changeSetInfo.MinLat = xml_changeset.min_lat;
            }
            if (xml_changeset.min_lonSpecified)
            {
                changeSetInfo.MinLon = xml_changeset.min_lon;
            }
            if (xml_changeset.openSpecified)
            {
                changeSetInfo.Open = xml_changeset.open;
            }
            if (xml_changeset.tag != null)
            {
                changeSetInfo.Tags = new Dictionary <string, string>();
                foreach (tag tag in xml_changeset.tag)
                {
                    changeSetInfo.Tags.Add(tag.k, tag.v);
                }
            }
            if (xml_changeset.uidSpecified)
            {
                changeSetInfo.UserId = xml_changeset.uid;
            }
            changeSetInfo.User = xml_changeset.user;
            return(changeSetInfo);
        }