本文整理汇总了C#中OsmSharp.Osm.Way.ConvertTo方法的典型用法代码示例。如果您正苦于以下问题:C# Way.ConvertTo方法的具体用法?C# Way.ConvertTo怎么用?C# Way.ConvertTo使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OsmSharp.Osm.Way
的用法示例。
在下文中一共展示了Way.ConvertTo方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: WayUpdate
/// <summary>
/// Updates the given way by adding it's changes to the current changeset.
/// </summary>
/// <param name="way"></param>
public void WayUpdate(Way way)
{
if (_current_changeset == null)
{
throw new InvalidOperationException("No open changeset found!");
}
if (!way.Id.HasValue)
{
throw new ArgumentOutOfRangeException("Cannot update an object without an id!");
}
// build a new node.
way xml_way = way.ConvertTo();
xml_way.changeset = _current_changeset.id;
xml_way.changesetSpecified = true;
// encapsulate into an osm object.
OsmSharp.Osm.Xml.v0_6.osm osm = new Osm.Xml.v0_6.osm();
osm.way = new Osm.Xml.v0_6.way[1];
osm.way[0] = xml_way;
// 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.
this.DoApiCall(true, string.Format("api/0.6/way/{0}", way.Id.Value),
Method.PUT, put_data);
}
示例2: WayCreate
/// <summary>
/// Creates a new way by adding it to the current changeset.
/// </summary>
/// <param name="way"></param>
public Way WayCreate(Way way)
{
if (_current_changeset == null)
{
throw new InvalidOperationException("No open changeset found!");
}
// build a new node.
way xml_way = way.ConvertTo();
xml_way.changeset = _current_changeset.id;
xml_way.changesetSpecified = true;
// encapsulate into an osm object.
OsmSharp.Osm.Xml.v0_6.osm osm = new Osm.Xml.v0_6.osm();
osm.way = new Osm.Xml.v0_6.way[1];
osm.way[0] = xml_way;
// 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/way/create",
Method.PUT, put_data);
// get the id-response.
long id;
if (!long.TryParse(response_string, out id))
{ // invalid response!
throw new APIException(string.Format("Invalid response when creating a new way: {0}", response_string));
}
way.Id = id;
return way;
}