public static bool Add(Model.OFormerCoorSysPars model) { string strSql = "insert into FormerCoorSysPars (YSZBXM, MDZBXM, X, Y, Z, aa, bb, cc, m, YSMajorAxis, YSe2, MDMajorAxis, MDe2,YSRemarkName,MDRemarkName,YSDAlpha,MDDAlpha,CMeridian,ProjElevation,IsFormer,StartTime,EndTime,OriginNorth,OriginEast)values(@YSZBXM, @MDZBXM, @X, @Y, @Z, @aa, @bb, @cc, @m, @YSMajorAxis, @YSe2, @MDMajorAxis, @MDe2,@YSRemarkName,@MDRemarkName,@YSDAlpha,@MDDAlpha,@CMeridian,@ProjElevation,@IsFormer,@StartTime,@EndTime,@OriginNorth,@OriginEast)"; SqlParameter YSZBXM = new SqlParameter("YSZBXM", SqlDbType.NVarChar); YSZBXM.Value = model.YSZBXM; SqlParameter MDZBXM = new SqlParameter("MDZBXM", SqlDbType.NVarChar); MDZBXM.Value = model.MDZBXM; SqlParameter X = new SqlParameter("X", SqlDbType.NVarChar); X.Value = AES.AESEncrypt(model.X.ToString()); SqlParameter Y = new SqlParameter("Y", SqlDbType.NVarChar); Y.Value = AES.AESEncrypt(model.Y.ToString()); SqlParameter Z = new SqlParameter("Z", SqlDbType.NVarChar); Z.Value = AES.AESEncrypt(model.Z.ToString()); SqlParameter aa = new SqlParameter("aa", SqlDbType.NVarChar); aa.Value = AES.AESEncrypt(model.aa.ToString()); SqlParameter bb = new SqlParameter("bb", SqlDbType.NVarChar); bb.Value = AES.AESEncrypt(model.bb.ToString()); SqlParameter cc = new SqlParameter("cc", SqlDbType.NVarChar); cc.Value = AES.AESEncrypt(model.cc.ToString()); SqlParameter m = new SqlParameter("m", SqlDbType.NVarChar); m.Value = AES.AESEncrypt(model.m.ToString()); SqlParameter YSMajorAxis = new SqlParameter("YSMajorAxis", SqlDbType.Float); YSMajorAxis.Value = model.YSMajorAxis; SqlParameter YSe2 = new SqlParameter("YSe2", SqlDbType.Float); YSe2.Value = model.YSe2; SqlParameter MDMajorAxis = new SqlParameter("MDMajorAxis", SqlDbType.Float); MDMajorAxis.Value = model.MDMajorAxis; SqlParameter MDe2 = new SqlParameter("MDe2", SqlDbType.Float); MDe2.Value = model.MDe2; SqlParameter YSRemarkName = new SqlParameter("YSRemarkName", SqlDbType.NVarChar); YSRemarkName.Value = model.YSRemarkName; SqlParameter MDRemarkName = new SqlParameter("MDRemarkName", SqlDbType.NVarChar); MDRemarkName.Value = model.MDRemarkName; SqlParameter YSDAlpha = new SqlParameter("YSDAlpha", SqlDbType.Float); YSDAlpha.Value = model.YSDAlpha; SqlParameter MDDAlpha = new SqlParameter("MDDAlpha", SqlDbType.Float); MDDAlpha.Value = model.MDDAlpha; SqlParameter CMeridian = new SqlParameter("CMeridian", SqlDbType.NVarChar); CMeridian.Value = AES.AESEncrypt(model.CMeridian.ToString()); SqlParameter ProjElevation = new SqlParameter("ProjElevation", SqlDbType.NVarChar); ProjElevation.Value = AES.AESEncrypt(model.ProjElevation.ToString()); SqlParameter IsFormer = new SqlParameter("IsFormer", SqlDbType.Int); IsFormer.Value = model.IsFormer; SqlParameter StartTime = new SqlParameter("StartTime", SqlDbType.DateTime); StartTime.Value = model.StartTime; SqlParameter EndTime = new SqlParameter("EndTime", SqlDbType.DateTime); EndTime.Value = model.EndTime; SqlParameter OriginNorth = new SqlParameter("OriginNorth", SqlDbType.NVarChar); OriginNorth.Value = AES.AESEncrypt(model.OriginNorth.ToString()); SqlParameter OriginEast = new SqlParameter("OriginEast", SqlDbType.NVarChar); OriginEast.Value = AES.AESEncrypt(model.OriginEast.ToString()); return(DBHelperSQL.GetNums(strSql, new SqlParameter[] { YSZBXM, MDZBXM, X, Y, Z, aa, bb, cc, m, YSMajorAxis, YSe2, MDMajorAxis, MDe2, YSRemarkName, MDRemarkName, YSDAlpha, MDDAlpha, CMeridian, ProjElevation, IsFormer, StartTime, EndTime, OriginNorth, OriginEast }, connectionString) == 1 ? true : false); }
private bool AddData() { try { Model.CoorSysPars mcs = GetModelFromRequest(); if (!ValidateCoorPara(mcs)) { return(false); } mcs.YSMajorAxis = 6378137; mcs.YSDAlpha = 298.257223563; mcs.YSe2 = 0.00669438000426083; if (Request["DesEllip"] == "84") { mcs.MDMajorAxis = 6378137; mcs.MDDAlpha = 298.257223563; mcs.MDe2 = 0.00669438000426083; } else if (Request["DesEllip"] == "54") { mcs.MDMajorAxis = 6378245; mcs.MDDAlpha = 298.3; mcs.MDe2 = 0.00669342161454287; } else if (Request["DesEllip"] == "80") { mcs.MDMajorAxis = 6378140; mcs.MDDAlpha = 298.257; mcs.MDe2 = 0.00669438498631463; } else if (Request["DesEllip"] == "0") { mcs.MDMajorAxis = Convert.ToDouble(Request["MDMajorAxis"].Trim()); double a = mcs.MDMajorAxis; double f = Convert.ToDouble(Request["MDDAlpha"].Trim()); mcs.MDDAlpha = f; double b = a - a / f; double e12 = (Math.Pow(a, 2) - Math.Pow(b, 2)) / Math.Pow(a, 2); mcs.MDe2 = e12; } //if (Regex.IsMatch(TextBox_AddMDMajorAxis.Text.Trim(), @"^(-?[0-9]*[.]*[0-9]{0,20})$")) //{ // mcs.MDMajorAxis = Convert.ToDouble(TextBox_AddMDMajorAxis.Text.Trim()); //} //else //{ // ExtAspNet.Alert.Show("输入有误,请慎重修改", "提示", ExtAspNet.MessageBoxIcon.Information); // return; //} //if (Regex.IsMatch(TextBox_AddMDe2.Text.Trim(), @"^(-?[0-9]*[.]*[0-9]{0,20})$")) //{ // mcs.MDe2 = Convert.ToDouble(TextBox_AddMDe2.Text.Trim()); //} //else //{ // ExtAspNet.Alert.Show("输入有误,请慎重修改", "提示", ExtAspNet.MessageBoxIcon.Information); // return; //} mcs.AreaID = Convert.ToInt32(Request["WorkArea"]); DAL.CoorSysPars.Add(mcs); //加入OFormerCoorSysPars Model.OFormerCoorSysPars mofcsp = new Model.OFormerCoorSysPars(); mofcsp.aa = mcs.aa; mofcsp.bb = mcs.bb; mofcsp.cc = mcs.cc; mofcsp.CMeridian = mcs.CMeridian; mofcsp.EndTime = DateTime.Now; mofcsp.IsFormer = 0; mofcsp.m = mcs.m; mofcsp.MDDAlpha = mcs.MDDAlpha; mofcsp.MDe2 = mcs.MDe2; mofcsp.MDMajorAxis = mcs.MDMajorAxis; mofcsp.MDRemarkName = mcs.MDRemarkName; mofcsp.MDZBXM = mcs.MDZBXM; mofcsp.ProjElevation = mcs.ProjElevation; mofcsp.StartTime = DateTime.Now; mofcsp.X = mcs.X; mofcsp.Y = mcs.Y; mofcsp.YSDAlpha = mcs.YSDAlpha; mofcsp.YSe2 = mcs.YSe2; mofcsp.YSMajorAxis = mcs.YSMajorAxis; mofcsp.YSRemarkName = mcs.YSRemarkName; mofcsp.YSZBXM = mcs.YSZBXM; mofcsp.Z = mcs.Z; mofcsp.OriginEast = mcs.OriginEast; mofcsp.OriginNorth = mcs.OriginNorth; DAL.FormerCoorSysPars.Add(mofcsp); Model.OCoorSysPars mocsp = DAL.CoorSysPars.GetOModel(mcs.YSZBXM, mcs.MDZBXM); //加入GDCoorSysXYZ Model.GDCoorSysXYZ mgdcs = new Model.GDCoorSysXYZ(); mgdcs.YSZBXM = mocsp.YSZBXM; mgdcs.MDZBXM = mocsp.MDZBXM; Random r = new Random(); mgdcs.X = r.Next(-4, 3) + r.NextDouble(); double xs = (mocsp.X + mgdcs.X) * 10 - Math.Floor(mocsp.X * 10 + mgdcs.X * 10); xs = 1 - xs; mgdcs.X = mgdcs.X + xs / 10; mgdcs.Y = r.Next(2, 5) + r.NextDouble(); xs = (mocsp.Y + mgdcs.Y) * 10 - Math.Floor(mocsp.Y * 10 + mgdcs.Y * 10); xs = 1 - xs; mgdcs.Y += xs / 10; mgdcs.Z = r.Next(1, 4) + r.NextDouble(); xs = (mocsp.Z + mgdcs.Z) * 10 - Math.Floor(mocsp.Z * 10 + mgdcs.Z * 10); xs = 1 - xs; mgdcs.Z += xs / 10; mgdcs.aa = (double)r.Next(1, 9) / 100.0 + (double)r.Next(1, 9) / 1000.0; xs = (mocsp.aa + mgdcs.aa) * 1000 - Math.Floor(mocsp.aa * 1000 + mgdcs.aa * 1000); xs = 1 - xs; mgdcs.aa += xs / 1000; mgdcs.bb = (double)r.Next(1, 9) / 100.0 + (double)r.Next(1, 9) / 1000.0; xs = (mocsp.bb + mgdcs.bb) * 1000 - Math.Floor(mocsp.bb * 1000 + mgdcs.bb * 1000); xs = 1 - xs; mgdcs.bb += xs / 1000; mgdcs.cc = (double)r.Next(1, 9) / 100.0 + (double)r.Next(1, 9) / 1000.0; xs = (mocsp.cc + mgdcs.cc) * 1000 - Math.Floor(mocsp.cc * 1000 + mgdcs.cc * 1000); xs = 1 - xs; mgdcs.cc += xs / 1000; // mgdcs.aa = 0; mgdcs.bb = 0; mgdcs.cc = 0; ///////////////////////////Not sure/////////////////////////// if (Request["md"] == "0") { mgdcs.aa = 0; mgdcs.bb = 0; mgdcs.cc = 0; mgdcs.X = 0; mgdcs.Y = 0; mgdcs.Z = 0; } DAL.GDCoorSysXYZ.Add(mgdcs); double hudumiao = (180.0 / Math.PI) * 3600; Canshu csk = new Canshu(); csk.dx = mocsp.X; csk.dy = mocsp.Y; csk.dz = mocsp.Z; csk.m0 = mocsp.m / 1000000.0; csk.Qx = mocsp.aa / hudumiao; csk.Qy = mocsp.bb / hudumiao; csk.Qz = mocsp.cc / hudumiao; CoorTrans coortrana = new CoorTrans(); coortrana.SetCanshu(csk); Model.GDCoorSysXYZ mgdc = DAL.GDCoorSysXYZ.GetModel(mcs.YSZBXM, mcs.MDZBXM); coortrana.CalCanshu(mgdc.X, mgdc.Y, mgdc.Z, mgdc.aa / hudumiao, mgdc.bb / hudumiao, mgdc.cc / hudumiao); Model.CoorSysPars gd = new Model.CoorSysPars(); gd.YSZBXM = "GD"; gd.YSRemarkName = "发布坐标系"; gd.MDZBXM = mcs.MDZBXM; gd.MDRemarkName = mcs.MDRemarkName; gd.X = coortrana.cs2.dx; gd.Y = coortrana.cs2.dy; gd.Z = coortrana.cs2.dz; gd.m = coortrana.cs2.m0 * 1000000.0; gd.aa = coortrana.cs2.Qx * hudumiao; gd.bb = coortrana.cs2.Qy * hudumiao; gd.cc = coortrana.cs2.Qz * hudumiao; gd.YSMajorAxis = mcs.YSMajorAxis; gd.YSDAlpha = mcs.YSDAlpha; gd.YSe2 = mcs.YSe2; gd.MDMajorAxis = mcs.MDMajorAxis; gd.MDDAlpha = mcs.MDDAlpha; gd.MDe2 = mcs.MDe2; gd.CMeridian = mcs.CMeridian; gd.ProjElevation = mcs.ProjElevation; gd.OriginNorth = mcs.OriginNorth; gd.OriginEast = mcs.OriginEast; gd.AreaID = mcs.AreaID; DAL.CoorSysPars.Add(gd); Model.SysLog msl = new Model.SysLog(); msl.LogType = 0; msl.LogTime = DateTime.Now; msl.UserName = Convert.ToString(Session["UserName"]); msl.Remark = "添加了" + mcs.YSZBXM + "到" + mcs.MDZBXM + "的转换参数"; DAL.SysLog.Add(msl); result += "添加参数成功"; return(true); } catch (Exception e) { result += e.Message; return(false); } }
/// <summary> /// 根据所处的时间提供真参数,适用于何冰写的坐标转换程序 /// </summary> /// <param name="YSZBXM"></param> /// <param name="MDZBXM"></param> /// <param name="Time"></param> /// <returns></returns> public static Model.OFormerCoorSysPars GetHBModel(string YSZBXM, string MDZBXM, DateTime Time) { string strSql = "select * from FormerCoorSysPars where YSZBXM ='" + YSZBXM + "' and MDZBXM='" + MDZBXM + "'"; Model.OFormerCoorSysPars model = new Model.OFormerCoorSysPars(); DataSet ds = DBHelperSQL.GetDataSet(strSql, connectionString); int Rindex = -1; //增加判断内容 if (YSZBXM == "WGS84") { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i]["IsFormer"].ToString() == "0")//当前正在使用的参数 { Rindex = i; break; } } } else { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i]["IsFormer"].ToString() == "0")//当前正在使用的参数 { DateTime StartTime = Convert.ToDateTime(ds.Tables[0].Rows[i]["StartTime"]); if (Time > StartTime) { Rindex = i; break; } } else//曾用参数 { DateTime StartTime = Convert.ToDateTime(ds.Tables[0].Rows[i]["StartTime"]); DateTime EndTime = Convert.ToDateTime(ds.Tables[0].Rows[i]["EndTime"]); if (Time > StartTime && Time < EndTime) { Rindex = i; break; } } } } if (Rindex == -1)//未找到参数,那么将使用当前参数 { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i]["IsFormer"].ToString() == "0")//当前正在使用的参数 { Rindex = i; } } } model.ID = Convert.ToInt32(ds.Tables[0].Rows[Rindex]["ID"]);; if (ds.Tables[0].Rows.Count > 0) { model.YSZBXM = Convert.ToString(ds.Tables[0].Rows[Rindex]["YSZBXM"]); model.MDZBXM = Convert.ToString(ds.Tables[0].Rows[Rindex]["MDZBXM"]); model.X = Convert.ToDouble(AES.AESDecrypt(ds.Tables[0].Rows[Rindex]["X"].ToString())); model.Y = Convert.ToDouble(AES.AESDecrypt(ds.Tables[0].Rows[Rindex]["Y"].ToString())); model.Z = Convert.ToDouble(AES.AESDecrypt(ds.Tables[0].Rows[Rindex]["Z"].ToString())); model.aa = Convert.ToDouble(AES.AESDecrypt(ds.Tables[0].Rows[Rindex]["aa"].ToString())); model.bb = Convert.ToDouble(AES.AESDecrypt(ds.Tables[0].Rows[Rindex]["bb"].ToString())); model.cc = Convert.ToDouble(AES.AESDecrypt(ds.Tables[0].Rows[Rindex]["cc"].ToString())); model.m = Convert.ToDouble(AES.AESDecrypt(ds.Tables[0].Rows[Rindex]["m"].ToString())); model.X = Math.Round(model.X - 243243.24, 4); model.Y = Math.Round(model.Y - 1983435.23, 4); model.Z = Math.Round(model.Z + 1233234.12, 4); model.aa = Math.Round(model.aa - 76755.99, 10); model.bb = Math.Round(model.bb + 4564543.78, 10); model.cc = Math.Round(model.cc + 321907.65, 10); model.m = Math.Round(model.m - 432487.123, 11); model.YSMajorAxis = Convert.ToDouble(ds.Tables[0].Rows[Rindex]["YSMajorAxis"]); model.YSe2 = Convert.ToDouble(ds.Tables[0].Rows[Rindex]["YSe2"]); model.MDMajorAxis = Convert.ToDouble(ds.Tables[0].Rows[Rindex]["MDMajorAxis"]); model.MDe2 = Convert.ToDouble(ds.Tables[0].Rows[Rindex]["MDe2"]); model.YSRemarkName = Convert.ToString(ds.Tables[0].Rows[Rindex]["YSRemarkName"]); model.MDRemarkName = Convert.ToString(ds.Tables[0].Rows[Rindex]["MDRemarkName"]); model.YSDAlpha = Convert.ToDouble(ds.Tables[0].Rows[Rindex]["YSDAlpha"]); model.YSDAlpha = 1 / model.YSDAlpha; model.MDDAlpha = Convert.ToDouble(ds.Tables[0].Rows[Rindex]["MDDAlpha"]); model.MDDAlpha = 1 / model.MDDAlpha; model.CMeridian = Convert.ToDouble(AES.AESDecrypt(ds.Tables[0].Rows[Rindex]["CMeridian"].ToString())); model.ProjElevation = Convert.ToDouble(AES.AESDecrypt(ds.Tables[0].Rows[Rindex]["ProjElevation"].ToString())); model.IsFormer = Convert.ToInt32(ds.Tables[0].Rows[Rindex]["IsFormer"]); model.StartTime = Convert.ToDateTime(ds.Tables[0].Rows[Rindex]["StartTime"]); model.EndTime = Convert.ToDateTime(ds.Tables[0].Rows[Rindex]["EndTime"]); model.OriginEast = Convert.ToDouble(AES.AESDecrypt(ds.Tables[0].Rows[Rindex]["OriginEast"].ToString())); model.OriginNorth = Convert.ToDouble(AES.AESDecrypt(ds.Tables[0].Rows[Rindex]["OriginNorth"].ToString())); return(model); } else { return(null); } }
/// <summary> /// 根据所处的时间提供参数 /// </summary> /// <param name="YSZBXM"></param> /// <param name="MDZBXM"></param> /// <param name="Time"></param> /// <returns></returns> public static Model.OFormerCoorSysPars GetModel(string YSZBXM, string MDZBXM, DateTime Time) { string strSql = "select * from FormerCoorSysPars where YSZBXM ='" + YSZBXM + "' and MDZBXM='" + MDZBXM + "'"; Model.OFormerCoorSysPars model = new Model.OFormerCoorSysPars(); DataSet ds = DBHelperSQL.GetDataSet(strSql, connectionString); int Rindex = 0; //增加判断内容 for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i]["IsFormer"].ToString() == "0")//当前正在使用的参数 { DateTime StartTime = Convert.ToDateTime(ds.Tables[0].Rows[i]["StartTime"]); if (Time > StartTime) { Rindex = i; break; } } else//曾用参数 { DateTime StartTime = Convert.ToDateTime(ds.Tables[0].Rows[i]["StartTime"]); DateTime EndTime = Convert.ToDateTime(ds.Tables[0].Rows[i]["EndTime"]); if (Time > StartTime && Time < EndTime) { Rindex = i; break; } } } model.ID = Convert.ToInt32(ds.Tables[0].Rows[Rindex]["ID"]);; if (ds.Tables[0].Rows.Count > 0) { model.YSZBXM = Convert.ToString(ds.Tables[0].Rows[Rindex]["YSZBXM"]); model.MDZBXM = Convert.ToString(ds.Tables[0].Rows[Rindex]["MDZBXM"]); model.X = Convert.ToDouble(AES.AESDecrypt(ds.Tables[0].Rows[Rindex]["X"].ToString())); model.Y = Convert.ToDouble(AES.AESDecrypt(ds.Tables[0].Rows[Rindex]["Y"].ToString())); model.Z = Convert.ToDouble(AES.AESDecrypt(ds.Tables[0].Rows[Rindex]["Z"].ToString())); model.aa = Convert.ToDouble(AES.AESDecrypt(ds.Tables[0].Rows[Rindex]["aa"].ToString())); model.bb = Convert.ToDouble(AES.AESDecrypt(ds.Tables[0].Rows[Rindex]["bb"].ToString())); model.cc = Convert.ToDouble(AES.AESDecrypt(ds.Tables[0].Rows[Rindex]["cc"].ToString())); model.m = Convert.ToDouble(AES.AESDecrypt(ds.Tables[0].Rows[Rindex]["m"].ToString())); model.YSMajorAxis = Convert.ToDouble(ds.Tables[0].Rows[Rindex]["YSMajorAxis"]); model.YSe2 = Convert.ToDouble(ds.Tables[0].Rows[Rindex]["YSe2"]); model.MDMajorAxis = Convert.ToDouble(ds.Tables[0].Rows[Rindex]["MDMajorAxis"]); model.MDe2 = Convert.ToDouble(ds.Tables[0].Rows[Rindex]["MDe2"]); model.YSRemarkName = Convert.ToString(ds.Tables[0].Rows[Rindex]["YSRemarkName"]); model.MDRemarkName = Convert.ToString(ds.Tables[0].Rows[Rindex]["MDRemarkName"]); model.YSDAlpha = Convert.ToDouble(ds.Tables[0].Rows[Rindex]["YSDAlpha"]); model.MDDAlpha = Convert.ToDouble(ds.Tables[0].Rows[Rindex]["MDDAlpha"]); model.CMeridian = Convert.ToDouble(AES.AESDecrypt(ds.Tables[0].Rows[Rindex]["CMeridian"].ToString())); model.ProjElevation = Convert.ToDouble(AES.AESDecrypt(ds.Tables[0].Rows[Rindex]["ProjElevation"].ToString())); model.IsFormer = Convert.ToInt32(ds.Tables[0].Rows[Rindex]["IsFormer"]); model.StartTime = Convert.ToDateTime(ds.Tables[0].Rows[Rindex]["StartTime"]); model.EndTime = Convert.ToDateTime(ds.Tables[0].Rows[Rindex]["EndTime"]); model.OriginEast = Convert.ToDouble(AES.AESDecrypt(ds.Tables[0].Rows[Rindex]["OriginEast"].ToString())); model.OriginNorth = Convert.ToDouble(AES.AESDecrypt(ds.Tables[0].Rows[Rindex]["OriginNorth"].ToString())); return(model); } else { return(null); } }