Пример #1
0
        /// <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);
        }
Пример #2
0
        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();
        }