/// <summary> /// Load GPX Object from string. /// </summary> /// <param name="content">A string containing GPX content.</param> /// <returns>Instance of GPX Object</returns> public static OnlineMapsGPXObject Load(string content) { OnlineMapsGPXObject instance = new OnlineMapsGPXObject(); try { OnlineMapsXML xml = OnlineMapsXML.Load(content); instance.version = xml.A("version"); instance.creator = xml.A("creator"); foreach (OnlineMapsXML n in xml) { if (n.name == "wpt") instance.waypoints.Add(new Waypoint(n)); else if (n.name == "rte") instance.routes.Add(new Route(n)); else if (n.name == "trk") instance.tracks.Add(new Track(n)); else if (n.name == "metadata") instance.metadata = new Meta(n); else if (n.name == "extensions") instance.extensions = n; else Debug.Log(n.name); } } catch (Exception exception) { Debug.Log(exception.Message + "\n" + exception.StackTrace); } return instance; }
/// <summary> /// Creates a new GPX object. /// </summary> private void CreateNewGPX() { // Creates a new GPX object. OnlineMapsGPXObject gpx = new OnlineMapsGPXObject("Infinity Code"); // Creates a meta. OnlineMapsGPXObject.Meta meta = gpx.metadata = new OnlineMapsGPXObject.Meta(); meta.author = new OnlineMapsGPXObject.Person { email = new OnlineMapsGPXObject.EMail("support", "infinity-code.com"), name = "Infinity Code" }; // Creates a bounds meta.bounds = new OnlineMapsGPXObject.Bounds(30, 10, 40, 20); // Creates a copyright meta.copyright = new OnlineMapsGPXObject.Copyright("Infinity Code") { year = 2016 }; // Creates a links meta.links.Add(new OnlineMapsGPXObject.Link("http://infinity-code.com/products/online-maps") { text = "Product Page" }); // Creates a waypoints gpx.waypoints.AddRange(new[] { new OnlineMapsGPXObject.Waypoint(31, 12) { description = "Point 1", }, new OnlineMapsGPXObject.Waypoint(35, 82) { description = "Point 2" } }); // Creates a waypoints extensions foreach (OnlineMapsGPXObject.Waypoint wpt in gpx.waypoints) { OnlineMapsXML ext = wpt.extensions = new OnlineMapsXML("extensions"); ext.Create("myField", wpt.description + "_1"); } // Log GPX XML object Debug.Log(gpx); }
/// <summary> /// Load GPX data from the file. /// </summary> private void LoadData() { #if !UNITY_WEBPLAYER && !UNITY_WEBGL string filename = "test.gpx"; if (File.Exists(filename)) { // Load data string string data = File.ReadAllText(filename, Encoding.UTF8); // Trying to to load GPX. OnlineMapsGPXObject gpx = OnlineMapsGPXObject.Load(data); // Log GPX XML object Debug.Log(gpx); } #endif }