Ejemplo n.º 1
0
        private void btnBatchJp_Click(object sender, EventArgs e)
        {
            double[]      latlng = new double[2];
            StringBuilder sbCar  = new StringBuilder();

            //批量将高德地图坐标转为GPS坐标
            string    sql      = "SELECT id,latitude,longitude FROM dw_stop";
            DbHelper  dbHelper = new DbHelper();
            DataTable dt       = dbHelper.Fill(sql);

            //循环处理每条坐标 记录
            foreach (DataRow dr in dt.Rows)
            {
                string sguid = dr[0].ToString();     //坐标标识
                string slat  = dr[1].ToString();     //纬度
                string slon  = dr[2].ToString();     //经度

                GpsCorrect.TransToGps(Convert.ToDouble(slat), Convert.ToDouble(slon), latlng);

                sql = "UPDATE dw_stop set latitude={0},longitude={1} where id='{2}';" + Environment.NewLine;
                sql = string.Format(sql, latlng[0], latlng[1], sguid);

                sbCar.Append(sql);
            }

            dbHelper.Add(sbCar.ToString());

            MessageBox.Show("数据处理完成");
        }
        private void ParseGPSData(ref byte[] data, int nStartPos, int nBodyLen, DeviceElement devData)
        {
            //if (nBodyLen - nStartPos < 36)
            //{
            //    return;
            //}
            string gpsData = Encoding.ASCII.GetString(data, nStartPos + 1, nBodyLen - nStartPos - 1);

            if (gpsData.StartsWith("+CIPGSMLOC:"))
            {
                string[] set = gpsData.Substring("+CIPGSMLOC:".Length).Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

                GPSElement ele = new GPSElement();
                ele.longtitude = Convert.ToDouble(set[1]);
                ele.latitude   = Convert.ToDouble(set[2]);
                ele.dataTime   = string.Format("{0} {1}", set[3], set[4]);

                devData.GpsElement.Add(ele);
            }
            else if (gpsData.StartsWith("+CENG:"))
            {
                string[] set = gpsData.Substring("+CENG:".Length).Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

                GPSElement ele = new GPSElement();
                double     lon = 0, lat = 0;
                if (GetGPSByLacCi(set[3], set[4], out lon, out lat))
                {
                    ele.longtitude = lon;
                    ele.latitude   = lat;
                    ele.dataTime   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                    devData.GpsElement.Add(ele);
                }
            }
            else
            {
                string[]   set = gpsData.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                GPSElement ele = new GPSElement();

                ele.longtitude = GpsCorrect.ConvertGPSDFMToData(Convert.ToDouble(set[2]));
                ele.latitude   = GpsCorrect.ConvertGPSDFMToData(Convert.ToDouble(set[0]));

                string gtcTime = "20" + set[4].Substring(4) + "-" + set[4].Substring(2, 2) + "-"
                                 + set[4].Substring(0, 2) + " " + set[5].Substring(0, 2) + ":"
                                 + set[5].Substring(2, 2) + ":" + set[5].Substring(4, 2);

                DateTime recvTime = DateTime.Now;
                if (DateTime.TryParse(gtcTime, out recvTime))
                {
                    recvTime = recvTime.AddHours(8);
                }
                ele.dataTime = recvTime.ToString("yyyy-MM-dd HH:mm:ss");
                devData.GpsElement.Add(ele);
            }
        }
Ejemplo n.º 3
0
        private void btnJP_Click(object sender, EventArgs e)
        {
            double[] latlng  = new double[2];
            string   FileDir = txtInDir.Text;                //待处理经纬度文件所在目录

            string[] arrFiles = Directory.GetFiles(FileDir); //目录内的所有经纬度文件
            string   SQL;

            StringBuilder sbCar = new StringBuilder();

            foreach (string doFileName in arrFiles)
            {
                //打开excel文件,放到数据表中
                DataTable dt = ExcelHelper.ReadExelToTable(doFileName, 0);

                //循环处理每条坐标 记录
                foreach (DataRow dr in dt.Rows)
                {
                    string sguid = dr[0].ToString();     //坐标标识
                    string slat  = dr[1].ToString();     //纬度
                    string slon  = dr[2].ToString();     //经度

                    GpsCorrect.TransToGps(Convert.ToDouble(slat), Convert.ToDouble(slon), latlng);

                    SQL = "UPDATE line_standinfo set slat={0},slon={1} where sguid='{2}';" + Environment.NewLine;
                    SQL = string.Format(SQL, latlng[0], latlng[1], sguid);

                    sbCar.Append(SQL);
                }
            }

            string savename = @"f:\临时文件\MapToGps.txt";

            if (File.Exists(savename))
            {
                File.Delete(savename);
            }
            StreamWriter sw = new StreamWriter(savename, true, System.Text.Encoding.Default);

            sw.Write(sbCar.ToString());
            sw.Close();
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 显示断层图层
        /// </summary>
        /// <param name="ftlist">数据列表</param>
        /// <param name="gMapCtrl">地图控件</param>
        public static void AddFaultMap(IEnumerable <FaultBean> ftlist, GMapControl gMapCtrl)
        {
            GMapOverlay faultOverlay = IsLayerExisted("faultlayer", gMapCtrl) ? GetOverlay("faultlayer", gMapCtrl) : new GMapOverlay("faultlayer");

            if (!IsLayerExisted("faultlayer", gMapCtrl))
            {
                gMapCtrl.Overlays.Add(faultOverlay);
            }

            //ObservableCollectionThreadSafe<GMapRoute> routelist = new ObservableCollectionThreadSafe<GMapRoute>();
            foreach (FaultBean fb in ftlist)
            {
                string[] lines = fb.Locations.Split(';');
                foreach (string line in lines)
                {
                    List <PointLatLng> ptEum  = new List <PointLatLng>();
                    string[]           points = line.Split(',');
                    foreach (string point in points)
                    {
                        string[] lalg = point.Split(' ');

                        try
                        {
                            double[]    correctlocation = GpsCorrect.transform(double.Parse(lalg[1]), double.Parse(lalg[0]));
                            PointLatLng pt = new PointLatLng(correctlocation[0], correctlocation[1]);
                            ptEum.Add(pt);
                        }
                        catch {
                            //continue;
                        }
                    }
                    if (fb.Newestactivetime == "N")
                    {
                        GMapRoute route = new GMapRoute(ptEum, fb.Name);
                        route.Stroke           = new Pen(Color.LightGreen, 2);
                        route.IsHitTestVisible = true;

                        faultOverlay.Routes.Add(route);
                    }
                    if (fb.Newestactivetime == "Q")
                    {
                        GMapRoute route = new GMapRoute(ptEum, fb.Name);
                        route.Stroke           = new Pen(Color.Blue, 2);
                        route.IsHitTestVisible = true;
                        faultOverlay.Routes.Add(route);
                    }
                    if (fb.Newestactivetime == "Q1" || fb.Newestactivetime == "Q2" || fb.Newestactivetime == "Q3" || fb.Newestactivetime == "Q2-Q3")
                    {
                        GMapRoute route = new GMapRoute(ptEum, fb.Name);
                        route.Stroke           = new Pen(Color.Orange, 2);
                        route.IsHitTestVisible = true;
                        faultOverlay.Routes.Add(route);
                    }
                    if (fb.Newestactivetime == "Q4")
                    {
                        GMapRoute route = new GMapRoute(ptEum, fb.Name);
                        route.Stroke           = new Pen(Color.Red, 2);
                        route.IsHitTestVisible = true;
                        faultOverlay.Routes.Add(route);
                    }
                }
            }
        }