Esempio n. 1
0
    /// <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;
    }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        /// <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
        }