Example #1
0
        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;
            }
        }
Example #2
0
 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)
 {
 }
Example #3
0
        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;
                }
            }
        }
Example #4
0
        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++;
            }
        }
Example #5
0
        /// <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();
        }
Example #6
0
        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);
            //}
        }
Example #7
0
        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++;
            }
        }
Example #8
0
        /// <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);
        }
Example #9
0
        /// <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();
        }