void gMapControl1_OnMarkerClick(GMapMarker item, MouseEventArgs e) { //MessageBox.Show(item.ToolTipText); string data = item.ToolTipText.Replace("Click for more data", ""); if (!data.Contains("|")) { return; } string[] splitter = data.Split('|'); string truckNumber = splitter[0].Replace("Truck Number: ", ""); DateTime ts = Convert.ToDateTime(splitter[1].Replace("TimeStamp: ", "").Replace("\\r\\n", "")); playBackRow found = globalData.playbackData.Find(delegate(playBackRow find) { return(find.TruckNumber == truckNumber && find.timeStamp == ts); }); int rowHandle = gridView1.LocateByValue("timeStamp", found.timeStamp); if (rowHandle != DevExpress.XtraGrid.GridControl.InvalidRowHandle) { gridView1.FocusedRowHandle = rowHandle; gridView1.Appearance.FocusedRow.BackColor = Color.Red; } }
void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e) { playBackRow selRow = (playBackRow)gridView1.GetRow(e.FocusedRowHandle); gMapControl1.Position = new PointLatLng(selRow.Lat, selRow.Lon); gridView1.Appearance.FocusedRow.BackColor = Color.Red; }
private void PlaybackData(bool addCrumbs) { if (iCounter >= globalData.playbackData.Count) { mustStop = true; } else { playBackRow row = globalData.playbackData[iCounter]; putTruckOnMap(row); iCounter += 1; } }
private void putTruckOnMap(playBackRow row) { gMapControl1.Position = new PointLatLng(row.Lat, row.Lon); GMapOverlay overlay = new GMapOverlay(row.timeStamp.ToString()); //Image markerImage = Image.FromFile(currentDirectory + geticonName(row.Status)); Image markerImage = getImage(row.Status); markerImage = rotateImageByAngle(markerImage, row.Heading); GMapCustomImageMarker marker = new GMapCustomImageMarker(markerImage, new PointLatLng(row.Lat, row.Lon)); marker.Size = Size.Add(new System.Drawing.Size(markerImage.Height - 4, markerImage.Width - 4), new System.Drawing.Size(10, 10)); marker.ToolTipText = "Truck Number: " + row.TruckNumber + "|TimeStamp: " + row.timeStamp.ToString() + Environment.NewLine + "Click for more data"; overlay.Markers.Add(marker); gMapControl1.Overlays.Add(overlay); }
public void loadBeatPlayback(string Beat, DateTime dtStart, DateTime dtEnd) { string connS = string.Empty; TimeSpan ts = dtStart - DateTime.Now; int startDay = ts.Days; if (startDay < 0) { connS = connAcc; } else { connS = connStr; } try { globalData.playbackData.Clear(); using (SqlConnection conn = new SqlConnection(connS)) { conn.Open(); //List<playBackRow> thisTruck = new List<playBackRow>(); string SQL = "select TimeStamp, TruckNumber, Driver, CallSign, Contractor, Status, Schedule, Beat, BeatSegment, Speed, Lat, Lon," + "Heading, HasAlarm, AlarmInfo, RunID from playbackdata WHERE Beat = '" + Beat + "'" + " AND TimeStamp BETWEEN '" + dtStart + "' AND '" + dtEnd + "'" + " ORDER BY TimeStamp"; SqlCommand cmd = new SqlCommand(SQL, conn); SqlDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { playBackRow row = new playBackRow(); row.timeStamp = rdr.IsDBNull(0) ? Convert.ToDateTime("01/01/2001 00:00:00") : Convert.ToDateTime(rdr["TimeStamp"].ToString()); row.TruckNumber = rdr["TruckNumber"].ToString(); row.Driver = rdr.IsDBNull(2) ? "NO DRIVER" : rdr["Driver"].ToString(); row.CallSign = rdr.IsDBNull(3) ? "NO CS" : rdr["CallSign"].ToString(); row.Contractor = rdr.IsDBNull(4) ? "NO CO" : rdr["Contractor"].ToString(); row.Status = rdr.IsDBNull(5) ? "NO ST" : rdr["Status"].ToString(); row.Schedule = rdr.IsDBNull(6) ? "NO SC" : rdr["Schedule"].ToString(); row.Beat = rdr.IsDBNull(7) ? "NO BT" : rdr["Beat"].ToString(); row.BeatSegment = rdr.IsDBNull(8) ? "NO BS" : rdr["BeatSegment"].ToString(); row.Speed = rdr.IsDBNull(9) ? 999 : Convert.ToInt32(rdr["Speed"]); row.Lat = rdr.IsDBNull(10) ? 0.0 : Convert.ToDouble(rdr["Lat"]); row.Lon = rdr.IsDBNull(11) ? 0.0 : Convert.ToDouble(rdr["Lon"]); row.Heading = rdr.IsDBNull(12) ? 361 : Convert.ToInt32(rdr["Heading"]); int hasAlarms = rdr.IsDBNull(13) ? 0 : Convert.ToInt32(rdr["HasAlarm"]); if (hasAlarms == 0) { row.HasAlarms = false; } else { row.HasAlarms = true; } row.AlarmInfo = rdr.IsDBNull(14) ? "NA" : rdr["AlarmInfo"].ToString(); row.runID = rdr.IsDBNull(15) ? new Guid("") : new Guid(rdr["RunID"].ToString()); globalData.playbackData.Add(row); } conn.Close(); } } catch (Exception ex) { throw new Exception(ex.ToString()); } }