예제 #1
0
        /// <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);
        }