Ejemplo n.º 1
0
 public static List<WayPoint> initGPXFiles(IEnumerable<FileInfo> files)
 {
     List<WayPoint> list = new List<WayPoint>();
       // read gpx files in
       foreach (FileInfo fi in files) {
     var doc = new XPathDocument(fi.FullName);
     XPathNavigator navi = doc.CreateNavigator();
     var xman = new XmlNamespaceManager(navi.NameTable);
     xman.AddNamespace("g", "http://www.topografix.com/GPX/1/1");
     XPathNodeIterator nodes = navi.Select("/g:gpx/g:wpt", xman);
     while (nodes.MoveNext()) {
       var wp = new WayPoint();
       wp.Latitude = Convert.ToDouble(nodes.Current.GetAttribute("lat", string.Empty));
       wp.Longitude = Convert.ToDouble(nodes.Current.GetAttribute("lon", string.Empty));
       XPathNavigator eleNode = nodes.Current.SelectSingleNode("g:ele", xman);
       if (eleNode != null) {
     wp.Elevation = eleNode.ValueAsDouble;
       }
       XPathNavigator timeNode = nodes.Current.SelectSingleNode("g:time", xman);
       if (timeNode != null) {
     wp.Time = timeNode.ValueAsDateTime;
       }
       list.Add(wp);
     }
       }
       list.Sort((a, b) => a.Time.CompareTo(b.Time));
       return list;
 }
Ejemplo n.º 2
0
 public static void WriteGPSDateIntoImage(FileInfo fin, FileInfo fout, WayPoint wp)
 {
     BogenMass lon = Utils.ConvertToBogenMass(wp.Longitude);
       BogenMass lat = Utils.ConvertToBogenMass(wp.Latitude);
       WriteLongLat(fin.FullName, fout != null ? fout.FullName : string.Empty, lat.Grad, lat.Minuten, lat.Sekunden, lon.Grad, lon.Minuten, lon.Sekunden, !lon.Plus, lat.Plus);
 }