public CRailwayFirm(CRailwayScene s, int num, int fid, string fname, double x, double y, string firmType, string presentation, string fileName) { mScene = s; mFirmType = firmType; mFirmName = fname; mNumStaff = num; mFirmID = fid; //mSNo = sNo; //mUpdateTime = dt; mPresentation = presentation; mLongitude_Mid = x; mLatitude_Mid = y; //if (fname.StartsWith("11标")) // Console.WriteLine(fname + x + "\t" + y); mLine = CRailwayLineList.getMileagebyGPS(x, y, out mMileage_Mid, out mDis, out misInside); //mDKCode = mLine.mDKCode; double dis; mScene.mMainPath.getPathMileagebyGPS(x, y, out mMainMileage, out dis); mLabelImage = fileName; if (mDis < 8000) { mHotSpot = new CHotSpot(mLine.mDKCode, mMileage_Mid, mLongitude_Mid, mLatitude_Mid, 100, mMainMileage, mDis, "Firm", this); } else { mHotSpot = null; } }
public CContBeam(CRailwayScene s, string SerialNo, int projID, string ProfessionalName, string ProjectName, string SegmentName, string DKCode, double Mileage_Start, double Mileage_Mid, double Mileage_End, DateTime dt, double AvgProgress, double dir, string labelFile) : base(s, SerialNo, projID, ProfessionalName, ProjectName, SegmentName, DKCode, Mileage_Start, Mileage_Mid, Mileage_End, dt, AvgProgress, dir, labelFile) { }
public CRailwayTunnel(CRailwayScene s, string SerialNo, int projID, int parentID, string ProfessionalName, string profCode, string ProjectName, string SegmentName, string MStartDes, string MEndDes, double Mileage_Start, double Mileage_End, DateTime dt, double AvgProgress, double dir, string labelFile, string photourl, DataTable dt1 = null, DataTable dt2 = null) : base(s, SerialNo, projID, parentID, ProfessionalName, profCode, ProjectName, SegmentName, MStartDes, MEndDes, Mileage_Start, Mileage_End, dt, AvgProgress, dir, labelFile, photourl, false, dt1, dt2) { //DatabaseWrapper.PrintDataTable(mds.Tables[0]); //DatabaseWrapper.PrintDataTable(mds.Tables[1]); foreach (CFXProj fx in FXProgress) { //FIXME 隧道里程标记方法特殊,暂时认为在一个链中 if (fx.fxID == 472 || fx.fxID == 475) // 正洞或斜井的开挖 { if (dir < 90) { mMileage_End = mMileage_Start + fx.TotalAmount; } else { mMileage_End = mMileage_Start - fx.TotalAmount; } mPath = new CSubPath(CRailwayLineList.gMileageConnection, mStartDKCode, mMileage_Start, mEndDKCode, mMileage_End, 10); if (!mPath.hasPath) { mIsValid = false; return; } mIsValid = true; mScene.mMainPath.getPathMileageByDKCode(mStartDKCode, mMileage_Start, out mMainMileageS, out mdistanceToMainPath); mScene.mMainPath.getPathMileageByDKCode(mEndDKCode, mMileage_End, out mMainMileageE, out mdistanceToMainPath); mPath.getDKCodebyPathMileage(mPath.mLength * 0.5, out mMidDKCode, out mMileage_Mid); mIsOnMainPath = mScene.mMainPath.getPathMileageByDKCode(mMidDKCode, mMileage_Mid, out mMainMileage, out mdistanceToMainPath); mLength = mPath.mLength; //mMileage_Mid = (mMileage_Start + mMileage_End) / 2; //mLength = fx.TotalAmount; //mIsValid = mScene.mMiddleLines.getGPSbyDKCode(mStartDKCode, mMileage_Mid, out mLongitude_Mid, out mLatitude_Mid, out mAltitude_Mid, out mHeading_Mid); //mIsValid &= mScene.mMiddleLines.getGPSbyDKCode(mStartDKCode, mMileage_Start, out mLongitude_Start, out mLatitude_Start, out mAltitude_Start, out mHeading_Start); //mIsValid &= mScene.mMiddleLines.getGPSbyDKCode(mStartDKCode, mMileage_End, out mLongitude_End, out mLatitude_End, out mAltitude_End, out mHeading_End); //mMainMileage = mScene.mMainPath.getPathMileageByDKCode(mStartDKCode, mMileage_Mid); //mMainMileageS = mScene.mMainPath.getPathMileageByDKCode(mStartDKCode, mMileage_Start); //mMainMileageE = mScene.mMainPath.getPathMileageByDKCode(mStartDKCode, mMileage_End); //if (mIsValid) //{ // if (mSpotList != null) // mSpotList.Clear(); // else // mSpotList = new List<CHotSpot>(); // mSpotList.Add(new CHotSpot(mStartDKCode, mMileage_Start, mLongitude_Start, mLatitude_Start, mAltitude_Start, mMainMileageS, "Tunnel", this)); // mSpotList.Add(new CHotSpot(mStartDKCode, mMileage_Mid, mLongitude_Mid, mLatitude_Mid, mAltitude_Mid, mMainMileage, "Tunnel", this)); // mSpotList.Add(new CHotSpot(mStartDKCode, mMileage_End, mLongitude_End, mLatitude_End, mAltitude_End, mMainMileageE, "Tunnel", this)); //} break; } } }
public CContBeam(CRailwayScene s, string SerialNo, int projID, int parentID, string ProfessionalName, string profCode, string ProjectName, string SegmentName, string MStartDes, string MEndDes, double Mileage_Start, double Mileage_End, DateTime dt, double AvgProgress, double dir, string labelFile, string photourl, DataTable dt1 = null, DataTable dt2 = null) : base(s, SerialNo, projID, parentID, ProfessionalName, profCode, ProjectName, SegmentName, MStartDes, MEndDes, Mileage_Start, Mileage_End, dt, AvgProgress, dir, labelFile, photourl, true, dt1, dt2) { int i; switch (FXProgress.Count) { case 0: for (i = 0; i < 3; i++) { selectedFXid[i] = -1; } break; case 1: selectedFXid[0] = 0; selectedFXid[1] = -1; selectedFXid[2] = -1; break; case 2: selectedFXid[0] = 0; selectedFXid[1] = 1; selectedFXid[2] = -1; break; default: for (i = 0; i < 3; i++) { selectedFXid[i] = i; } break; } // 连续梁预定义关键分项工程 ,节段, 墩-台身 数量, 桩基根数 i = 0; foreach (CFXProj fx in FXProgress) { if (fx.fxID == 470) { selectedFXid[2] = i; } else if (fx.fxID == 468) { selectedFXid[0] = i; } else if (fx.fxID == 69) { selectedFXid[1] = i; } i++; } }
/// <summary> /// 利用dkcode 与 里程初始化,潜在问题,要求在同一个链中,dkcode一致,目前数据库中的里程描述description不正确 /// </summary> /// <param name="s"></param> /// <param name="SerialNo"></param> /// <param name="projID"></param> /// <param name="profName"></param> /// <param name="ProjectName"></param> /// <param name="SegmentName"></param> /// <param name="DKCode"></param> /// <param name="Mileage_Start"></param> /// <param name="Mileage_Mid"></param> /// <param name="Mileage_End"></param> /// <param name="dt"></param> /// <param name="AvgProgress"></param> /// <param name="dir"></param> /// <param name="labelFile"></param> /// <param name="length"></param> public CRailwayProject(CRailwayScene s, string SerialNo, int projID, string profName, string ProjectName, string SegmentName, string DKCode, double Mileage_Start, double Mileage_Mid, double Mileage_End, //string Mileage_Start_Des, string Mileage_Mid_Des, string Mileage_End_Des, DateTime dt, double AvgProgress, double dir, string labelFile) { mScene = s; ProfessionalName = profName; mProjectID = projID; mProjectName = ProjectName; mSegmentName = SegmentName; mSerialNo = SerialNo; mDKCode = DKCode; Mileage_Start_Ds = CRailwayLineList.CombiDKCode(DKCode, Mileage_Start); //Mileage_Mid_Ds = Mileage_Mid_Des; Mileage_End_Ds = CRailwayLineList.CombiDKCode(DKCode, Mileage_End);; ///Doing //DataSet ds = CServerWrapper.findProjHistory(mSerialNo); //if (ds != null) //{ // PrintDataTable(ds.Tables[0]); // PrintDataTable(ds.Tables[1]); //} //else //{ // Console.WriteLine("None Data " + ProjectName); //} ///FIXME, 描述在数据库中不准确,待修正 double tmp; //mScene.mMiddleLines.parseDKCode(Mileage_Start_Des, out mDKCode_Start, out tmp); //mScene.mMiddleLines.parseDKCode(Mileage_Mid_Des, out mDKCode_Mid, out tmp); //mScene.mMiddleLines.parseDKCode(Mileage_End_Des, out mDKCode_End, out tmp); mMileage_Start = Mileage_Start; mMileage_Mid = Mileage_Mid; mMileage_End = Mileage_End; mIsValid = mScene.mMiddleLines.getPosbAndLengthByDKCode(mDKCode, mMileage_Mid, out mLongitude_Mid, out mLatitude_Mid, out mAltitude_Mid, out mHeading_Mid, out tmp); mIsValid &= mScene.mMiddleLines.getPosbAndLengthByDKCode(mDKCode, mMileage_Start, out mLongitude_Start, out mLatitude_Start, out mAltitude_Start, out mHeading_Start, out mGlobalMileage); mIsValid &= mScene.mMiddleLines.getPosbAndLengthByDKCode(mDKCode, mMileage_End, out mLongitude_End, out mLatitude_End, out mAltitude_End, out mHeading_End, out tmp); mUpdateTime = dt; mDirection = dir; mLabelImage = labelFile; mLength = Math.Abs(mMileage_End - mMileage_Start); //FIXME 目前是导入,不同DKCode的线路如何求解 mds = CServerWrapper.findProjHistory(mSerialNo); getFXProgress(); }
public CRailwayBridge(CRailwayScene s, string SerialNo, int projID, string ProfessionalName, string ProjectName, string SegmentName, string DKCode, double Mileage_Start, double Mileage_Mid, double Mileage_End, DateTime dt, double AvgProgress, double dir, string labelFile) : base(s, SerialNo, projID, ProfessionalName, ProjectName, SegmentName, DKCode, Mileage_Start, Mileage_Mid, Mileage_End, dt, AvgProgress, dir, labelFile) { /// FIXME Doing /// //CFXProj fx; //foreach (DataRow dr in mds.Tables[0].Rows) //{ // fx = new CFXProj(); // fx.fxID = Convert.ToInt32(dr["ProjectDictID"]); // fx.fxName = dr["ProjectDictName"].ToString(); // fx.totalAmount = Convert.ToDouble(dr["DesignNum"]); // fx.progress = new Dictionary<string, double>(); // mfx.Add(fx); // DataRow[] drs = mds.Tables[1].Select("ProjectDictID = " + fx.fxID, "ReportDate desc"); // foreach (DataRow dr2 in drs){ // try // { // fx.progress.Add(dr2["ReportDate"].ToString(), Convert.ToDouble(dr2["DictRate"])); // } // catch (Exception e) { // Console.WriteLine(e.Message); // Console.WriteLine(dr2["ReportDate"].ToString()); // } // } // //Console.WriteLine(fx.ToString()); //} //if (ds != null) //{ // DatabaseWrapper.PrintDataTable(ds.Tables[0]); // DatabaseWrapper.PrintDataTable(ds.Tables[1]); //} //else //{ // Console.WriteLine("None Data " + ProjectName); //} }
public CRailwayRoad(CRailwayScene s, string SerialNo, int projID, int parentID, string ProfessionalName, string profCode, string ProjectName, string SegmentName, string MStartDes, string MEndDes, double Mileage_Start, double Mileage_End, DateTime dt, double AvgProgress, double dir, string labelFile, string photourl, DataTable dt1 = null, DataTable dt2 = null) : base(s, SerialNo, projID, parentID, ProfessionalName, profCode, ProjectName, SegmentName, MStartDes, MEndDes, Mileage_Start, Mileage_End, dt, AvgProgress, dir, labelFile, photourl, false, dt1, dt2) { int i; if (FXProgress == null) { return; } switch (FXProgress.Count) { case 0: for (i = 0; i < 3; i++) { selectedFXid[i] = -1; } break; case 1: selectedFXid[0] = 0; selectedFXid[1] = -1; selectedFXid[2] = -1; break; case 2: selectedFXid[0] = 0; selectedFXid[1] = 1; selectedFXid[2] = -1; break; default: for (i = 0; i < 3; i++) { selectedFXid[i] = i; } break; } // 路基预定义关键分项工程 管桩、挖方、填方 i = 0; foreach (CFXProj fx in FXProgress) { if (fx.fxID == 583) { selectedFXid[0] = i; } else if (fx.fxID == 597) { selectedFXid[1] = i; } else if (fx.fxID == 599) { selectedFXid[2] = i; } i++; } }
/// <summary> /// 利用dkcode 与 里程初始化,潜在问题,要求在同一个链中,dkcode一致,目前数据库中的里程描述description不正确 /// </summary> /// <param name="s"></param> /// <param name="SerialNo"></param> /// <param name="projID"></param> /// <param name="profName"></param> /// <param name="ProjectName"></param> /// <param name="SegmentName"></param> /// <param name="DKCode"></param> /// <param name="Mileage_Start"></param> /// <param name="Mileage_Mid"></param> /// <param name="Mileage_End"></param> /// <param name="dt"></param> /// <param name="AvgProgress"></param> /// <param name="dir"></param> /// <param name="labelFile"></param> /// <param name="length"></param> public CRailwayProject(CRailwayScene s, string SerialNo, int projID, int parentID, string profName, string profCode, string ProjectName, string SegmentName, string MStartDes, string MEndDes, double Mileage_Start, double Mileage_End, //string Mileage_Start_Des, string Mileage_Mid_Des, string Mileage_End_Des, DateTime dt, double AvgProgress, double dir, string labelFile, string photoUrl, bool isContBeam = false, DataTable dt1 = null, DataTable dt2 = null) { double tmp; mScene = s; ProfessionalName = profName; mProfessionalCode = profCode; mProjectID = projID; mParentID = parentID; mProjectName = ProjectName; mSegmentName = SegmentName; mSerialNo = SerialNo; mIsValid = CRailwayLineList.parseDKCode(MStartDes, out mStartDKCode, out tmp); // should be Mileage_Start mIsValid &= CRailwayLineList.parseDKCode(MEndDes, out mEndDKCode, out tmp); // should be Mileage_End if (!mIsValid) { ModelInfo.Helper.LogHelper.WriteLog(mProjectName + "里程错误:" + MStartDes + "\t" + MEndDes); } //if (string.IsNullOrEmpty(dkcode2)) // mEndDKCode = mStartDKCode; //else // mEndDKCode = dkcode2; Mileage_Start_Ds = CRailwayLineList.CombiDKCode(mStartDKCode, Mileage_Start); //Mileage_Mid_Ds = Mileage_Mid_Des; Mileage_End_Ds = CRailwayLineList.CombiDKCode(mEndDKCode, Mileage_End);; mMileage_Start = Mileage_Start; mMileage_Mid = 0; mMileage_End = Mileage_End; //mIsValid = mScene.mMiddleLines.getGPSbyDKCode(mStartDKCode, mMileage_Mid, out mLongitude_Mid, out mLatitude_Mid, out mAltitude_Mid, out mHeading_Mid); //mIsValid = mScene.mMiddleLines.getGPSbyDKCode(mStartDKCode, mMileage_Start, out mLongitude_Start, out mLatitude_Start, out mAltitude_Start, out mHeading_Start); //mIsValid &= mScene.mMiddleLines.getGPSbyDKCode(mEndDKCode, mMileage_End, out mLongitude_End, out mLatitude_End, out mAltitude_End, out mHeading_End); mUpdateTime = dt; mDirection = dir; mLabelImage = labelFile; mLength = Math.Abs(mMileage_End - mMileage_Start); //FIXME 目前是导入,不同DKCode的线路如何求解 mPhotoUrl = photoUrl; if (!isContBeam) { //mPath = new CSubPath( mStartDKCode, mMileage_Start, mEndDKCode, mMileage_End, 10); mPath = new CSubPath(CRailwayLineList.gMileageConnection, mStartDKCode, mMileage_Start, mEndDKCode, mMileage_End, 10); if (!mPath.hasPath) { mIsValid = false; //#if DEBUG // Helper.LogHelper.WriteLog(mProjectName +"\t"+ mStartDKCode + mMileage_Start + "\t" + mEndDKCode + mMileage_End); //#endif return; } mIsValid = true; mIsOnMainPath = mScene.mMainPath.getPathMileageByDKCode(mStartDKCode, mMileage_Start, out mMainMileageS, out mdistanceToMainPath); mScene.mMainPath.getPathMileageByDKCode(mEndDKCode, mMileage_End, out mMainMileageE, out mdistanceToMainPath); mPath.getDKCodebyPathMileage(mPath.mLength * 0.5, out mMidDKCode, out mMileage_Mid); mScene.mMainPath.getPathMileageByDKCode(mMidDKCode, mMileage_Mid, out mMainMileage, out mdistanceToMainPath); mLength = Math.Abs(mPath.mLength); } initFXProgress(dt1, dt2); }
/// <summary> /// 按照工点聚类,单位工程显示第一个 /// </summary> /// <returns></returns> public static void clusterConsFromWebByProj(CRailwayScene s, string dbFile, List <ConsLocation> ls, List <CHotSpot> ls2, string fromDate = null, string toDate = null, bool fromLocal = true) { double cx, cy; double tx, ty, tz, td; CRailwayLine rl; double mileage, dis, gm; bool isInside; //string fromD = DateTime.Now.AddDays(-7).ToShortDateString(); //string toD = DateTime.Now.ToShortDateString(); //dt2.Columns.Add("ProjectName", typeof(string)); //dt2.Columns.Add("DwName", typeof(string)); //dt2.Columns.Add("Longitude", typeof(double)); //dt2.Columns.Add("Latitude", typeof(double)); //dt2.Columns.Add("StaffNum", typeof(int)); // 2016-05-06 00:00:00Z //DataTable dt = CServerWrapper.findClusterConsByPDW(DateTime.Now.AddDays(-7).Date.ToString("u")); //DataTable dt = CServerWrapper.findClusterConsByPDW(fromDate, toDate); if (ls == null) { ls = new List <ConsLocation>(); } else { ls.Clear(); } if (ls2 == null) { ls2 = new List <CHotSpot>(); } else { ls2.Clear(); } DataTable dt = null; if (fromLocal) { string localPath = dbFile; dt = DatabaseWrapper.ExecuteDataTable(dbFile, @"SELECT * from ConsInfo ;"); } else if (CServerWrapper.isConnected) { dt = CServerWrapper.findClusterConsByProj(fromDate, toDate); } if (dt == null) { return; } foreach (DataRow dr in dt.Rows) { GPSAdjust.bd_decrypt(Convert.ToDouble(dr["Latitude"]), Convert.ToDouble(dr["Longitude"]), out cy, out cx); rl = CRailwayLineList.getMileagebyGPS(Convert.ToDouble(dr["Longitude"]), Convert.ToDouble(dr["Latitude"]), out mileage, out dis, out isInside); CRailwayLineList.getGPSbyDKCode(rl.mDKCode, mileage, out tx, out ty, out tz, out td); s.mMainPath.getPathMileageByDKCode(rl.mDKCode, mileage, out gm, out dis); //FIXME xyn 加入两次,比较实际坐标和火星坐标的差别 //ConsLocation cl = new ConsLocation("Mars" + dr["ProjectName"].ToString(), dr["DwName"].ToString(), Convert.ToDouble(dr["Longitude"]), Convert.ToDouble(dr["Latitude"]), //tx, ty, // fromDate.Substring(0, 11), toDate.Substring(0, 11), Convert.ToInt32(dr["StaffNum"])); //ls.Add(cl); ConsLocation cl = new ConsLocation(dr["ProjectName"].ToString(), dr["DwName"].ToString(), cx, cy, //Convert.ToDouble(dr["Longitude"]), Convert.ToDouble(dr["Latitude"]), fromDate, toDate, Convert.ToInt32(dr["StaffNum"])); ls.Add(cl); ls2.Add(new CHotSpot(rl.mDKCode, mileage, tx, ty, tz, gm, dis, "Cons", cl)); // ls.Add(new ConsLocation(dr["ProjectName"].ToString(), dr["DwName"].ToString(), Convert.ToDouble(dr["Longitude"]), Convert.ToDouble(dr["Latitude"]), //fromDate.Substring(0, 11), toDate.Substring(0, 11), Convert.ToInt32(dr["StaffNum"]))); } //new StaticCluster().clusterProcess(); }