/// <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; }
/// <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; }