/// <summary> /// 获取id的gps信息 /// </summary> /// <param name="ids"></param> /// <returns></returns> private Dictionary <string, Point> LoadData(List <string> ids) { if (ids == null || ids.Count == 0) { return(null); } string vehicle_Num = ""; foreach (string s in ids) { vehicle_Num += "'" + s + "',"; } vehicle_Num = vehicle_Num.TrimEnd(','); Dictionary <string, Point> dic = new Dictionary <string, Point>(); GpsOrbitFilter filter = new GpsOrbitFilter(); filter.ActivityId = Obj.Activity.Guid; filter.PlateNumber = vehicle_Num; List <GpsOrbit> gpsInfo = GetGPSData(filter); if (gpsInfo != null && gpsInfo.Count > 0) { foreach (var item in gpsInfo) { MapUtiles.PointEx px = Obj.clientUtile.Correct(item.Latitude, item.Longitude); dic.Add(item.PlateNumber, new Point(px.X, px.Y)); } } return(dic); }
private void Track() { Obj.drawTrack.Reset(ucType); int speed = GetSpeed(); List <GpsOrbit> ps = LoadData(); if (ps == null || ps.Count == 0) { MessageBox.Show("没有查询到相关位置信息!"); btnBegin.Content = "查询"; return; } new Thread(() => { Obj.drawTrack.Drawing = true; foreach (var p in ps) { MapUtiles.PointEx pp = Obj.clientUtile.Correct(p.Latitude, p.Longitude); Obj.screenMap.MainMap.Dispatcher.BeginInvoke(new Action(() => { Obj.drawTrack.AddPoint(Obj.screenMap.GetMapPointEx(pp.X, pp.Y)); if (chkTrace.IsChecked == true) { Obj.screenMap.MainMap.Location(Obj.screenMap.GetMapPointEx(pp.X, pp.Y)); } })); Thread.Sleep(speed); if (stop) { break; } } Obj.drawTrack.Drawing = false; Obj.screenMap.MainMap.Dispatcher.BeginInvoke(new Action(() => { btnBegin.Content = "查询"; })); }).Start(); }