// ==================================================
        // Helpers

        public decimal GetMaxDOP(IGpxPoint point)
        {
            var h   = point.HDOP ?? 0;
            var v   = point.VDOP ?? 0;
            var p   = point.PDOP ?? 0;
            var dop = h;

            if (v > dop)
            {
                dop = v;
            }
            if (p > dop)
            {
                dop = p;
            }
            return(dop);
        }
예제 #2
0
 public TopoPointInfo(ITopoTrackInfo track, IGpxPoint point)
 {
     _track = track;
     _point = point;
 }
        // ==================================================
        // Internal

        private void SetPoint(XmlNode node, IGpxPoint p)
        {
            var lat = node.OwnerDocument.CreateAttribute("lat");

            node.Attributes.Append(lat);
            lat.Value = p.Latitude.ToString();

            var lon = node.OwnerDocument.CreateAttribute("lon");

            node.Attributes.Append(lon);
            lon.Value = p.Longitude.ToString();

            if (p.Timestamp.HasValue)
            {
                var time = node.OwnerDocument.CreateElement("time", Namespace);
                node.AppendChild(time);
                time.InnerText = p.Timestamp.Value.ToUniversalTime().ToString("s") + "Z";
            }

            if (p.Elevation.HasValue)
            {
                var ele = node.OwnerDocument.CreateElement("ele", Namespace);
                node.AppendChild(ele);
                ele.InnerText = p.Elevation.Value.ToString();
            }

            if (p.Course.HasValue)
            {
                var course = node.OwnerDocument.CreateElement("course", Namespace);
                node.AppendChild(course);
                course.InnerText = p.Course.Value.ToString();
            }

            if (p.Speed.HasValue)
            {
                var speed = node.OwnerDocument.CreateElement("speed", Namespace);
                node.AppendChild(speed);
                speed.InnerText = p.Speed.Value.ToString();
            }

            if (!String.IsNullOrWhiteSpace(p.Source))
            {
                var src = node.OwnerDocument.CreateElement("src", Namespace);
                node.AppendChild(src);
                src.InnerText = p.Source;
            }

            if (p.Sats.HasValue)
            {
                var sat = node.OwnerDocument.CreateElement("sat", Namespace);
                node.AppendChild(sat);
                sat.InnerText = p.Sats.Value.ToString();
            }

            if (p.HDOP.HasValue)
            {
                var hdop = node.OwnerDocument.CreateElement("hdop", Namespace);
                node.AppendChild(hdop);
                hdop.InnerText = p.HDOP.Value.ToString();
            }

            if (p.VDOP.HasValue)
            {
                var vdop = node.OwnerDocument.CreateElement("vdop", Namespace);
                node.AppendChild(vdop);
                vdop.InnerText = p.VDOP.Value.ToString();
            }

            if (p.PDOP.HasValue)
            {
                var pdop = node.OwnerDocument.CreateElement("pdop", Namespace);
                node.AppendChild(pdop);
                pdop.InnerText = p.PDOP.Value.ToString();
            }
        }