/// <summary> /// Saves content of this GPXDocument to the output steam /// </summary> /// <param name="output">The output stram</param> public void Save(Stream output) { using (GPXXmlDataWriter writer = new GPXXmlDataWriter(output)) { foreach (GPXPoint waypoint in Waypoints) { writer.WriteWaypoint(waypoint); } foreach (GPXRoute route in Routes) { writer.WriteRoute(route); } foreach (GPXTrack track in Tracks) { writer.WriteTrack(track); } writer.Close(); } }
public void GPXXmlDataWriterWriteWaypointWritesWaypointWithAllAttributes() { MemoryStream ms = new MemoryStream(); GPXPoint waypoint = new GPXPoint(18.5, 50.1); waypoint.Elevation = 1600; waypoint.Time = new DateTime(2009, 12, 31, 23, 50, 0, DateTimeKind.Utc); waypoint.Name = "NAME"; waypoint.Description = "DESCRIPTION"; waypoint.Commenet = "COMMENT"; using (GPXXmlDataWriter target = new GPXXmlDataWriter(ms)) { target.WriteWaypoint(waypoint); } ms.Seek(0, 0); XElement gpxRoot = XDocument.Load(new StreamReader(ms)).Root; XElement waypointElement = gpxRoot.Element("wpt"); Assert.NotNull(waypointElement); Assert.Equal(waypoint.Latitude, double.Parse(waypointElement.Attribute("lat").Value, System.Globalization.CultureInfo.InvariantCulture)); Assert.Equal(waypoint.Longitude, double.Parse(waypointElement.Attribute("lon").Value, System.Globalization.CultureInfo.InvariantCulture)); Assert.Equal(waypoint.Elevation, double.Parse(waypointElement.Element("ele").Value, System.Globalization.CultureInfo.InvariantCulture)); Assert.Equal(waypoint.Time, DateTime.Parse(waypointElement.Element("time").Value, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AdjustToUniversal)); Assert.Equal(waypoint.Name, waypointElement.Element("name").Value); Assert.Equal(waypoint.Description, waypointElement.Element("desc").Value); Assert.Equal(waypoint.Commenet, waypointElement.Element("cmt").Value); }