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); } }
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(); }
/// <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); } } } }