public GpxReader(string xml) { if (xml.Equals("")) { return; } _gpx.LoadXml(xml); if (_gpx.DocumentElement == null || !_gpx.DocumentElement.Name.Equals("gpx")) { return; } var gpxNodes = _gpx.GetElementsByTagName("gpx")[0].ChildNodes; foreach (XmlNode node in gpxNodes) { switch (node.Name) { case "name": Name = node.InnerText; break; case "desc": Description = node.InnerText; break; case "author": Author = node.InnerText; break; case "email": EMail = node.InnerText; break; case "time": Time = node.InnerText; break; case "keywords": KeyWords = node.InnerText; break; case "bounds": Bounds = new GpsBoundary(); if (node.Attributes != null) { foreach (XmlAttribute att in node.Attributes) { switch (att.Name) { case "minlat": Bounds.Min.Lat = att.Value; break; case "minlon": Bounds.Min.Lon = att.Value; break; case "maxlat": Bounds.Max.Lat = att.Value; break; case "maxlon": Bounds.Max.Lon = att.Value; break; } } } break; case "wpt": var newWayPoint = new Wpt(node); WayPoints.Add(newWayPoint); break; case "rte": var newRoute = new Rte(node); Routes.Add(newRoute); break; case "trk": var track = new Trk(node); Tracks.Add(track); break; case "url": Url = node.InnerText; break; case "urlname": UrlName = node.InnerText; break; case "topografix:active_point": case "topografix:map": break; default: Logger.Write("Unhandled data in GPX file, attempting to skip.", LogLevel.Info); break; } } }
public GpxReader(string xml, ISession session) { _ctx = session; if (xml.Equals("")) { return; } _gpx.LoadXml(xml); if (_gpx.DocumentElement == null || !_gpx.DocumentElement.Name.Equals("gpx")) { return; } var gpxNodes = _gpx.GetElementsByTagName("gpx")[0].ChildNodes; foreach (XmlNode node in gpxNodes) { switch (node.Name) { case "name": Name = node.InnerText; break; case "desc": Description = node.InnerText; break; case "author": Author = node.InnerText; break; case "email": EMail = node.InnerText; break; case "time": Time = node.InnerText; break; case "keywords": KeyWords = node.InnerText; break; case "bounds": Bounds = new GpsBoundary(); if (node.Attributes != null) { foreach (XmlAttribute att in node.Attributes) { switch (att.Name) { case "minlat": Bounds.Min.Lat = att.Value; break; case "minlon": Bounds.Min.Lon = att.Value; break; case "maxlat": Bounds.Max.Lat = att.Value; break; case "maxlon": Bounds.Max.Lon = att.Value; break; } } } break; case "wpt": var newWayPoint = new Wpt(node); WayPoints.Add(newWayPoint); break; case "rte": var newRoute = new Rte(node); Routes.Add(newRoute); break; case "trk": var track = new Trk(node); Tracks.Add(track); break; case "url": Url = node.InnerText; break; case "urlname": UrlName = node.InnerText; break; case "topografix:active_point": case "topografix:map": break; default: session.EventDispatcher.Send(new WarnEvent() { Message = session.Translation.GetTranslation(TranslationString.UnhandledGpxData) }); break; } } }