/// <summary>
        /// Retrieves a list of track points for the provided route id.
        /// </summary>
        /// <param name="routeId">Route id for which track point should be returned.</param>
        /// <returns>A list of track points.</returns>
        private List<TrackPoint> GetTrackPointsForRoute(int routeId)
        {
            var result = new List<TrackPoint>();
            var inputParams = new Dictionary<string, object> { { "RouteFK", routeId } };

            var trackPointsTable = _dbhelper.Select("SELECT * FROM [TrackPoints] WHERE RouteFK = @RouteFK", inputParams);

            foreach (DataRow trackPointRow in trackPointsTable.Rows)
            {
                var trackPoint = new TrackPoint
                {
                    Id = (int)trackPointRow["TrackPointId"],
                    Elevation = Convert.ToSingle(trackPointRow["Elevation"], CultureInfo.InvariantCulture),
                    Latitude = Convert.ToDouble(trackPointRow["Latitude"], CultureInfo.InvariantCulture),
                    Longitude = Convert.ToDouble(trackPointRow["Longitude"], CultureInfo.InvariantCulture),
                    Time = trackPointRow["TrackTime"] is DBNull ? new DateTime() : (DateTime)trackPointRow["TrackTime"]
                };
                result.Add(trackPoint);
            }

            return result;
        }
        private List<TrackPoint> GetTrackPointsForRoute(int routeId)
        {
            aspnetdbDataContext aspdb = new aspnetdbDataContext();
            var result = new List<TrackPoint>();
            var trackPointsTable = from t in aspdb.TrackPointlinqs
                                   where t.RouteFK == routeId
                                   select t;
            foreach (var trackPointRow in trackPointsTable)
            {
                var trackPoint = new TrackPoint
                {
                    Id = (int)trackPointRow.TrackPointId,
                    Elevation = Convert.ToSingle(trackPointRow.Elevation),
                    Latitude = Convert.ToDouble(trackPointRow.Latitude),
                    Longitude = Convert.ToDouble(trackPointRow.Longitude),
                    Time = trackPointRow.TrackTime is DBNull ? new DateTime() : (DateTime)trackPointRow.TrackTime
                };
                result.Add(trackPoint);
            }

            return result;
        }
Example #3
0
        /// <summary>
        /// Gets track points (or their equialents) from the GPX document and sets their properties.
        /// </summary>
        /// <returns>
        /// List of TrackPoints.
        /// </returns>
        private List<TrackPoint> ExtractTrackPoints()
        {
            var result = new List<TrackPoint>();
            float tempFloat;
            double tempDouble;
            var tempDateTime = new DateTime();

            var trackElement = (from a in _xdoc.Descendants(_ns + _pointBlockName) select a).SingleOrDefault();

            if (trackElement != null)
            {
                var trackPointElements = (from a in trackElement.Descendants(_ns + _pointElementName) select a).ToList<XElement>();
                foreach (var trackPointElement in trackPointElements)
                {
                    var trackPoint = new TrackPoint();

                    double.TryParse(trackPointElement.Attribute("lat").Value, NumberStyles.Any, CultureInfo.InvariantCulture, out tempDouble);
                    trackPoint.Latitude = tempDouble;

                    double.TryParse(trackPointElement.Attribute("lon").Value, NumberStyles.Any, CultureInfo.InvariantCulture, out tempDouble);
                    trackPoint.Longitude = tempDouble;

                    float.TryParse(ExtractSingleValue("ele", trackPointElement), NumberStyles.Any, CultureInfo.InvariantCulture, out tempFloat);
                    trackPoint.Elevation = tempFloat;

                    DateTime.TryParse(ExtractSingleValue("time", trackPointElement), out tempDateTime);
                    trackPoint.Time = tempDateTime;

                    result.Add(trackPoint);
                }
            }

            return result;
        }