private void initData() { for (int i = 0; i < OgicPnts.Count; i++) { TrackPntInfo tPntInfo = new TrackPntInfo(); if (i <= 60) { tPntInfo.GetPntTime = new DateTime(2011, 4, 1, 0, 0, i); } else if (i <= 120 && i > 60) { tPntInfo.GetPntTime = new DateTime(2011, 4, 1, 0, 1, i - 60); } else if (i <= 180 && i > 120) { tPntInfo.GetPntTime = new DateTime(2011, 4, 1, 0, 2, i - 120); } else if (i <= 240 && i > 180) { tPntInfo.GetPntTime = new DateTime(2011, 4, 1, 0, 3, i - 180); } else if (i <= 300 && i > 240) { tPntInfo.GetPntTime = new DateTime(2011, 4, 1, 0, 3, i - 240); } else if (i <= 300 && i > 360) { tPntInfo.GetPntTime = new DateTime(2011, 4, 1, 0, 3, i - 300); } Point pnt = new Point(); pnt.X = OgicPnts[i].X; pnt.Y = OgicPnts[i].Y; tPntInfo.LocalPnt = pnt; trackTimePnts.Add(tPntInfo); } // 对trackPnt按时间进行排序,时间早的点排在前 trackTimePnts.Sort(); GetAllPntsOnLine(trackTimePnts); }
/// <summary> /// 为了在调用SORT时,按时间的先后顺序排序 /// </summary> /// <param name="obj"></param> /// <returns></returns> public int CompareTo(object obj) { int res = 0; try { TrackPntInfo sObj = (TrackPntInfo)obj; if (this.getPntTime.CompareTo(sObj.getPntTime) > 0) { res = 1; } else if (this.getPntTime.CompareTo(sObj.getPntTime) < 0) { res = -1; } } catch (Exception ex) { throw new Exception("排序异常", ex.InnerException); } return(res); }