Beispiel #1
0
        //public CTEKML mTEKml = null;
        //public CTEStation mTEStation = null;
        //public CTEFactory mTEFact = null;
        //public CTENavTrain mTETrain = null;
        //public CTEPier mTEPier = null;
        //public CTEProject mTEProj = null;
        //public CTECons mTECons = null;
        //public CTEMiddleLine mTEMiddleLine = null;
        //public CTEConsPhoto mTEPhotos = null;
        //public CTEFirm mTEFirm = null;

        //public string mIDKml = "KML";
        //public string mIDStation = "Station";
        public CTEScene(CRailwayScene s)
        {
            mSceneData  = s;
            mRWStandard = new CRWTEStandard();

            //mTEItemList.Add(new CTEKML(s, this, mRWStandard));
            //mTEItemList.Add(new CTEStation(s, this, mRWStandard));

            //mTEItemList.Add(new CTENavTrain(s, this, mRWStandard));

            mTEItemList.Add(new CTEProject(s, this, mRWStandard));
            mTEItemList.Add(new CTECons(s, this, mRWStandard));
            //mTEItemList.Add(new CTEMiddleLine(s, this, mRWStandard));
            mTEItemList.Add(new CTEFirm(s, this, mRWStandard));



            //mTEItemList.Add(new CTEConsPhoto(s, mRWStandard));

            //mTEKml = new CTEKML(s, mRWStandard);
            //mTEStation = new CTEStation(s, mRWStandard);
            //mTEFact = new CTEFactory(s, mRWStandard);
            //mTETrain = new CTENavTrain(s, this, mRWStandard);
            //mTEPier = new CTEPier(s, mRWStandard);
            //mTEProj = new CTEProject(s, mRWStandard);
            //mTECons = new CTECons(s, mRWStandard);
            //mTEMiddleLine = new CTEMiddleLine(s, mRWStandard);
            //mTEFirm = new CTEFirm(s, mRWStandard);
            //mTEPhotos = new CTEConsPhoto(s, mRWStandard);
        }
Beispiel #2
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;
                }
            }
        }
Beispiel #3
0
        public GISForm()
        {
            //GlobalSettings.LoadConfig();

            LoginForm login = new LoginForm();

            if (login.ShowDialog() != DialogResult.OK)
            {
                Application.Exit();
            }
            WelcomeFormJQ wf = new WelcomeFormJQ();

            wf.Show(this);

            //GlobalSettings.InitGlobal();

            gRWScene = new CRailwayScene();
            //GlobalVar.gScene = new ModelInformation.CRailwayScene();


            InitializeComponent();
            sgworld = new SGWorld66();
            this.axTE3DWindow1.Text = "新建济青高速铁路";

            //axTE3DWindow1.ProductName = "蒙内标轨铁路";
            axTE3DWindow1.Caption = "新建济青高速铁路";
            //sgworld.Project.set_Settings("RemoveSkylineCopyright", 1);
            //sgworld.Project.set_Settings("DisplaySun", 0);
            if (mTEScene == null)
            {
                mTEScene = new CTEScene(gRWScene);
            }
            mNavTrain = new CTENavTrain(gRWScene);
            //mNavTrain.OnFlyTo += mNavTrain_OnFlyTo;

            gMapControl1.MapProvider     = GMap.NET.MapProviders.OpenCycleMapProvider.Instance;
            gMapControl1.Zoom            = 6D;
            GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.ServerOnly;
            gMapControl1.Position        = new GMap.NET.PointLatLng(36.6, 118.6);
            gMapControl1.Visible         = true;


            //GlobalSettings.gGForm = this;

            showProject();
            addDVG_Event();
            //bar1.Visible = false;
            //bar1.Hide();
            createMenuSG();
            menuSG.Visible = false;
            mainContainer.Panel2Collapsed = true;
            trackTime.Text = curTime.ToLongDateString();


            wf.Close();
        }
Beispiel #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++;
            }
        }
Beispiel #5
0
        public PrjDetail(CRailwayScene s)
        {
            InitializeComponent();
            timer1.Interval = timeSpan;
            timer1.Stop();

            mRWScene = s;
            initCustomComponent();
            //this.Size.Width
        }
Beispiel #6
0
 private void button1_Click(object sender, EventArgs e)
 {
     if (gRWScene == null)
     {
         gRWScene = new CRailwayScene(@"C:\GISData\jiqing\gisDB.db", "JQMIS.CN"); //new CRailwayScene();//
     }
     new CMiddleLineForMax(gRWScene);
     //CRailwayLineList.CreateLinelistFromSqlite(@"C:\GISData\jiqing\gisdb.db");
     //CRailwayLineList.testMainLine();
 }
Beispiel #7
0
        //public delegate void StopAround();
        //public event StopAround ShowFinished = null;


        public CTEScene(CRailwayScene s, System.Windows.Forms.Timer timer)
        {
            mSceneData = s;
            //timerFly = timer;
            //timerFly.Stop();
            //timerFly.Tick += TimerFly_Tick;
            //mRWStandard = new CRWTEStandard();
            sgworld = new SGWorld66();
            CRWTEStandard.Init();
            //CTEFeature.linesPointsLoad("JqPoints1");
            //CTEFeature.linesPointsLoad("JqPoints2");
            //initTEContactLine();
            initTEProjectList();
            initTEFirmList();
            initTEConsList(CGisDataSettings.gLocalDB);
            mTEPiers = new CTEPier(mSceneData, this);
            mTEPiers.TECreate();
            //CTEFirm.NavigationFinished += NotifyShowFinish;
            //CTEPointNav.NavigationFinished += NotifyShowFinish;

            prjInfoForm = new MessageForm();


            //panel1_Paint(p);
            //mTEItemList.Add(new CTEKML(s, this, mRWStandard));
            //mTEItemList.Add(new CTEStation(s, this, mRWStandard));

            //mTEItemList.Add(new CTENavTrain(s, this, mRWStandard));

            //mTEItemList.Add(new CTEProject(s, this, mRWStandard));
            //mTEItemList.Add(new CTECons(s, this, mRWStandard));
            //mTEItemList.Add(new CTEMiddleLine(s, this, mRWStandard));
            //mTEItemList.Add(new CTEFirm(s, this, mRWStandard));



            //mTEItemList.Add(new CTEConsPhoto(s, mRWStandard));

            //mTEKml = new CTEKML(s, mRWStandard);
            //mTEStation = new CTEStation(s, mRWStandard);
            //mTEFact = new CTEFactory(s, mRWStandard);
            //mTETrain = new CTENavTrain(s, this, mRWStandard);
            //mTEPier = new CTEPier(s, mRWStandard);
            //mTEProj = new CTEProject(s, mRWStandard);
            //mTECons = new CTECons(s, mRWStandard);
            //mTEMiddleLine = new CTEMiddleLine(s, mRWStandard);
            //mTEFirm = new CTEFirm(s, mRWStandard);
            //mTEPhotos = new CTEConsPhoto(s, this);
        }
Beispiel #8
0
        //private CRailwayProject mSelectedProject = null;
        //private CRailwayDWProj mSelectedDWP = null;


        public PanelProgress2D(CRailwayScene s)
        {
            InitializeComponent();
            this.SetStyle(ControlStyles.OptimizedDoubleBuffer |
                          ControlStyles.ResizeRedraw |
                          ControlStyles.AllPaintingInWmPaint, true);

            roundPen.StartCap = LineCap.RoundAnchor;
            roundPen.EndCap   = LineCap.RoundAnchor;

            centerFormat.LineAlignment = StringAlignment.Center;  // 更正: 垂直居中
            centerFormat.Alignment     = StringAlignment.Center;  // 水平居中

            mRWScene = s;
        }
Beispiel #9
0
        public CTECons(ConsLocation cl, CRailwayScene s, CTEScene ss)
            : base(s, ss)
        {
            sgworld = new SGWorld66();
            consLoc = cl;
            IPosition66 p = sgworld.Creator.CreatePosition(cl.Longitude, cl.Latitude, 30, AltitudeTypeCode.ATC_TERRAIN_RELATIVE,
                                                           0, -90.0, 0, 0);

            circlePeople = sgworld.Creator.CreateCircle(p, cl.Number * 2 + 200, 0xFF0000FF, 0x00FF00FF, mGroupIDDynamic, cl.ProjName + cl.Number);
            //  circle.de
            circlePeople.LineStyle.Width = -3.0;
            circlePeople.Visibility.MinVisibilityDistance = 2000;
            //circle.SetParam

            labelSign = sgworld.Creator.CreateLabel(p, cl.Number + "", CGisDataSettings.gDataPath + @"Common\Textures\working.gif", CRWTEStandard.mLabelStyleL2, mGroupIDDynamic, "Con|" + cl.ProjName);
            //labelSign.Message.MessageID = sgworld.Creator.CreateMessage(MsgTargetPosition.MTP_POPUP, cl.ToString(), MsgType.TYPE_TEXT, true).ID;
        }
Beispiel #10
0
        public CMiddleLineForMax(CRailwayScene s)
        {
//            OnePrj aprj;
//            int prjIdx = 1;
            StreamWriter sw1 = new StreamWriter("双桥中线建模坐标.txt");
            StreamWriter sw2 = new StreamWriter("双路基中线建模坐标.txt");
            StreamWriter sw3 = new StreamWriter("双隧道中线建模坐标.txt");
            StreamWriter sw4 = new StreamWriter("单桥中线建模坐标.txt");
            StreamWriter sw5 = new StreamWriter("单路基中线建模坐标.txt");
            StreamWriter sw6 = new StreamWriter("单隧道中线建模坐标.txt");

            mRWScene = s;
            foreach (CRailwayProject rp in mRWScene.mBridgeList)
            {
                if (rp.mIsValid && rp.mParentID == 0)
                {
                    exportMiddleLine(rp, sw1, sw4, "bridge");
                }
            }
            foreach (CRailwayProject rp in mRWScene.mRoadList)
            {
                if (rp.mIsValid && rp.mParentID == 0)
                {
                    exportMiddleLine(rp, sw2, sw5, "road");
                }
            }
            foreach (CRailwayProject rp in mRWScene.mTunnelList)
            {
                if (rp.mIsValid)
                {
                    exportMiddleLine(rp, sw3, sw6, "tunnel");
                }
            }
            sw1.Close();
            sw2.Close();
            sw3.Close();
            sw4.Close();
            sw5.Close();
            sw6.Close();
            // 用于产生加载列表,存储到sqlite数据库,手工导出到excel
            DatabaseWrapper.SavePrjectForLoaded(@"C:\GISData\jiqing\gisdb.db", projectList);
        }
Beispiel #11
0
        public CTEConsPhoto(CRailwayScene s, CTEScene ss)
            : base(s, ss)
        {
            //string[] fileName;
            //string[] photoTime;
            //string[] sNo;
            //string[] person;
            //string[] remark;

            //var sgworld = new SGWorld66();
            //if (string.IsNullOrEmpty(mGroupIDStatic))
            //    mGroupIDStatic = sgworld.ProjectTree.CreateGroup("Photo");

            //int num;
            //num = CConsPhoto.findLatestPhotos(5, out fileName, out photoTime, out sNo, out person, out remark);
            ////num = CConsLog.findLast365Cons(out usrName, out projName, out consDate, out x, out y);
            //for (int i = 0; i < num; i++)
            //{
            //    Console.WriteLine("{0} #\t: fileName {1}\t  Date {2}", i,  fileName[i], photoTime[i]);
            //}
        }
Beispiel #12
0
        public CTEFirm(CRailwayFirm f, CRailwayScene s, CTEScene ss)
            : base(s, ss)
        {
            firm    = f;
            sgworld = new SGWorld66();
            if (!string.IsNullOrEmpty(firm.mPresentation))
            {
                var id = sgworld.ProjectTree.FindItem("\\Presentation\\" + firm.mPresentation);
                mPresentation = (IPresentation66)(sgworld.ProjectTree.GetObject(id));

                //if (CGisDataSettings.AppSpeed <= 2)
                //    mPresentation.PlaySpeedFactor = PresentationPlaySpeed.PPS_VERYSLOW;
                //else if (CGisDataSettings.AppSpeed < 5)
                //    mPresentation.PlaySpeedFactor = PresentationPlaySpeed.PPS_SLOW;
                //else if (CGisDataSettings.AppSpeed < 7)
                //    mPresentation.PlaySpeedFactor = PresentationPlaySpeed.PPS_NORMAL;
                //else if (CGisDataSettings.AppSpeed < 9)
                //    mPresentation.PlaySpeedFactor = PresentationPlaySpeed.PPS_FAST;
                //else
                //    mPresentation.PlaySpeedFactor = PresentationPlaySpeed.PPS_VERYFAST;
            }

            ILabelStyle66 cLabelStyle;
            IPosition66   cp = sgworld.Creator.CreatePosition(f.CenterLongitude, f.CenterLatitude, 0, AltitudeTypeCode.ATC_TERRAIN_RELATIVE);

            circlePeople = sgworld.Creator.CreateCircle(cp, f.NumStaff * 2 + 200, 0xFFFFFFFF, 0x00FF00FF, mGroupIDStatic, f.FirmName + " " + f.NumStaff);
            circlePeople.LineStyle.Width = -3.0;
            circlePeople.Visibility.MinVisibilityDistance = 5000;

            if (f.FirmType.Equals("制梁场") || f.FirmType.Equals("项目部") || f.FirmType.Equals("监理单位"))
            {
                cLabelStyle = CRWTEStandard.mLabelStyleL2;
            }
            else
            {
                cLabelStyle = CRWTEStandard.mLabelStyleL1;
            }
            labelSign = sgworld.Creator.CreateLabel(cp, f.FirmName, CGisDataSettings.gDataPath + @"Common\地标图片\" + f.mLabelImage, cLabelStyle, mGroupIDStatic, "Fir|" + f.FirmName);
            labelSign.Message.MessageID = sgworld.Creator.CreateMessage(MsgTargetPosition.MTP_POPUP, f.ToString(), MsgType.TYPE_TEXT, true).ID;
        }
Beispiel #13
0
        List <string> gMobileCommand = new List <string>();  //

        //ImageList imgListCmd = new ImageList(); // 命令导航的二维码图像

        //ImageList imgListPrj = new ImageList();

        public FullScreenForm()
        {
            LoginForm login = new LoginForm();

            if (login.ShowDialog() != DialogResult.OK)
            {
                Environment.Exit(-1);
            }
            WelcomeFormJQ wf = new WelcomeFormJQ();

            wf.Show(this);

            gRWScene = new CRailwayScene(CGisDataSettings.gLocalDB, CGisDataSettings.gCurrentProject.projectUrl);

            Random ran = new Random();

            mInstanceID = ran.Next(100, 999);
            InitializeComponent();
            this.Text = "新建济青高速铁路工程:" + mInstanceID;

            sgworld = new SGWorld66();


            // 初始化二维形象进度
            m2DProgressPanel = new PanelProgress2D(gRWScene);
            mainContainer.Panel2.Controls.Add(m2DProgressPanel);
            m2DProgressPanel.Dock     = System.Windows.Forms.DockStyle.Fill;
            m2DProgressPanel.Location = new System.Drawing.Point(0, 0);
            m2DProgressPanel.Name     = "panel2D";

            //initPrj2DImgList();
            //panelPrjOutline.Hide();

            initScanCmd();
            wf.Close();

            formState.Maximize(this);
        }
Beispiel #14
0
 public CTEObject(CRailwayScene s, CTEScene ss)
 {
     mSceneData = s;
     mTEScene   = ss;
 }
Beispiel #15
0
 public CTEMiddleLine(CRailwayScene s, CTEScene ss, CRWTEStandard t)
     : base(s, ss)
 {
 }
Beispiel #16
0
        public CTEPresentation(CRailwayScene s, CTEScene tes, PanelProgress2D p2, PanelInfo p3, Timer timer, List <CHotSpot> hp = null)//
        {
            mSceneData      = s;
            mTEScene        = tes;
            mNavigationList = hp;
            panel2D         = p2;
            panelInfo       = p3;
            if (mNavigationList == null || mNavigationList.Count <= 1)
            {
                return;
            }
            mNavIndex = mNavigationList.Count - 1;
            //mNavIndex = Math.Max(0, mNavIndex);
            mNavNextIndex = (mNavIndex + 1) % mNavigationList.Count;

            sgworld = new SGWorld66();

            timerWaitingForNext       = timer;
            timerWaitingForNext.Tick += TimerWaitingForNext_Tick;

            if (string.IsNullOrEmpty(mNavObjGroupID))
            {
                mNavObjGroupID = sgworld.ProjectTree.CreateGroup("TrainGroup");
            }
            else
            {
                sgworld.ProjectTree.DeleteItem(mNavObjGroupID);
                mNavObjGroupID = sgworld.ProjectTree.CreateGroup("TrainGroup");
            }

            mPresentationGroupID = sgworld.ProjectTree.FindItem("Presentation");
            if (string.IsNullOrEmpty(mPresentationGroupID))
            {
                mPresentationGroupID = sgworld.ProjectTree.CreateGroup("Presentation");
            }

            mPresentation = sgworld.Creator.CreatePresentation(mPresentationGroupID, "Navigating");

            mPresentation.PlayAlgorithm = PresentationPlayAlgorithm.PPA_SPLINE;
            mPresentation.PlayMode      = PresentationPlayMode.PPM_AUTOMATIC;
            mPresentation.LoopRoute     = true;

            //mPresentation.CaptionHeight = 50;

            //mWorker = (ITerrainModel66)(sgworld.ProjectTree.GetObject(sgworld.ProjectTree.FindItem("worker")));
            //mDynamicWorker =(ITerrainDynamicObject66)(sgworld.ProjectTree.GetObject(sgworld.ProjectTree.FindItem("dynamicCamera")));
            mDynamicTrain[0] = sgworld.Creator.CreateDynamicObject(0, DynamicMotionStyle.MOTION_AIRPLANE, DynamicObjectType.DYNAMIC_3D_MODEL,
                                                                   mModelName[0], 1, AltitudeTypeCode.ATC_TERRAIN_ABSOLUTE, mNavObjGroupID, "TrainObj0");
            mDynamicTrain[1] = sgworld.Creator.CreateDynamicObject(0, DynamicMotionStyle.MOTION_AIRPLANE, DynamicObjectType.DYNAMIC_3D_MODEL,
                                                                   mModelName[1], 1, AltitudeTypeCode.ATC_TERRAIN_ABSOLUTE, mNavObjGroupID, "TrainObj1");
            mDynamicTrain[2] = sgworld.Creator.CreateDynamicObject(0, DynamicMotionStyle.MOTION_AIRPLANE, DynamicObjectType.DYNAMIC_3D_MODEL,
                                                                   mModelName[1], 1, AltitudeTypeCode.ATC_TERRAIN_ABSOLUTE, mNavObjGroupID, "TrainObj2");
            mDynamicTrain[3] = sgworld.Creator.CreateDynamicObject(0, DynamicMotionStyle.MOTION_AIRPLANE, DynamicObjectType.DYNAMIC_3D_MODEL,
                                                                   mModelName[1], 1, AltitudeTypeCode.ATC_TERRAIN_ABSOLUTE, mNavObjGroupID, "TrainObj3");
            mDynamicTrain[4] = sgworld.Creator.CreateDynamicObject(0, DynamicMotionStyle.MOTION_AIRPLANE, DynamicObjectType.DYNAMIC_3D_MODEL,
                                                                   mModelName[2], 1, AltitudeTypeCode.ATC_TERRAIN_ABSOLUTE, mNavObjGroupID, "TrainObj4");
            //mDynamicTrain.Acceleration =
            mVirtualObj = sgworld.Creator.CreateDynamicObject(0, DynamicMotionStyle.MOTION_MANUAL, DynamicObjectType.DYNAMIC_VIRTUAL,
                                                              "", 1, AltitudeTypeCode.ATC_TERRAIN_ABSOLUTE, mNavObjGroupID, "VirtualObj");

            if (!isTEEventRegistered)
            {
                sgworld.OnObjectAction += Sgworld_OnObjectAction;
                sgworld.OnPresentationFlyToReachedDestination += Sgworld_OnPresentationFlyToReachedDestination;
                isTEEventRegistered = true;
            }
        }
Beispiel #17
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++;
            }
        }
Beispiel #18
0
 public void initPrjDetail(CRailwayScene s)
 {
     mRWScene = s;
     initCustomComponent();
     //this.Size.Width
 }
Beispiel #19
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)
            {
                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);
        }
Beispiel #20
0
        //public void mNavTrain_OnFlyTo()
        //{
        //    mNavIndex++;
        //    if (mNavIndex < gRWScene.mHotSpotList.Count)
        //    {
        //        sgworld.Navigate.FlyTo(sgworld.Creator.CreatePosition(gRWScene.mHotSpotList[mNavIndex].CenterLongitude, gRWScene.mHotSpotList[mNavIndex].CenterLatitude, 1000, AltitudeTypeCode.ATC_TERRAIN_RELATIVE), ActionCode.AC_FLYTO);
        //        timerNav.Start();
        //    }
        //    else
        //        timerNav.Stop();
        //}

        //public void GotoNext()  //引发事件方法
        //{
        //    //EventHandler temp = OnFlyTo;

        //    mCount--;

        //    if (mCount <= 0 && mDynamicTrain != null)
        //    {
        //        sgworld.Creator.DeleteObject(mDynamicTrain.ID);
        //        mDynamicTrain = null;
        //        f();
        //        //if(temp != null)
        //        //    temp(this,new EventArgs());

        //    }

        //}

        public CTENavTrain(CRailwayScene s)
        {
            mSceneData = s;
            sgworld    = new SGWorld66();
            //sgworld.ProjectTree.CreateGroup("Train");
        }
Beispiel #21
0
        // .ToString("u")
        //public DateTime fromDate = DateTime.Now.AddDays(-7);
        //public DateTime toDate = DateTime.Now;
        //private CRailwayScene s;
        //private CRWTEStandard t;

        public CTERWItem(CRailwayScene s, CTEScene ss)
        {
            mSceneData = s;
            mTEScene   = ss;
        }
Beispiel #22
0
        // .ToString("u")
        //public DateTime fromDate = DateTime.Now.AddDays(-7);
        //public DateTime toDate = DateTime.Now;
        //private CRailwayScene s;
        //private CRWTEStandard t;

        public CTERWItem(CRailwayScene s, CTEScene ss, CRWTEStandard t)
        {
            mSceneData  = s;
            mTEScene    = ss;
            mTEStandard = t;
        }
Beispiel #23
0
        //CRailwayScene mSceneData;
        //CRailwayProject st = null;
        //List<CRailwayProject> mStList = null;

        public CTEStation(CRailwayScene s, CTEScene ss)
            : base(s, ss)
        {
            //mSceneData = s;
            //mStList = s.mStationList;
        }
Beispiel #24
0
 public CTEKML(CRailwayScene s, CTEScene ss, CRWTEStandard t)
     : base(s, ss, t)
 {
 }
Beispiel #25
0
        public CTEProject(CRailwayProject p, CRailwayScene s, CTEScene ss)
            : base(s, ss)
        {
            proj = p;

            if (!proj.mIsValid)
            {
                return;
            }
            double lat, lon, z, dir;

            //double cx, cy;

            sgworld = new SGWorld66();
            double[] cVerticesArray = null;
            //double[] cVA2 = null;
            int count;

            proj.getSpecialPoint(1, out lon, out lat, out z, out dir);
            //double[] xx,yy,zz,ddir;

            //CoordinateConverter.LatLonOffest(lat, lon, dir, 90, 20, out cy, out cx);

            var cPos2 = sgworld.Creator.CreatePosition(lon, lat, 0, AltitudeTypeCode.ATC_TERRAIN_RELATIVE, 0, -75, 0, 2000);

            //sgworld.Creator.CreateCircle(cPos2, 140, sgworld.Creator.CreateColor(127, 127, 127, 127), sgworld.Creator.CreateColor(127, 127, 127, 127), mGroupIDStatic);
            labelSign = sgworld.Creator.CreateTextLabel(cPos2, proj.ProjectName, CRWTEStandard.mLabelStyleL3, mGroupIDDynamic, "Prj|" + proj.ProjectName);
            //ilabel.Message = sgworld.Creator.CreateMessage();
            labelSign.ImageFileName = CGisDataSettings.gDataPath + @"Common\progress\Pie" + proj.AvgProgress + ".png";
            labelSign.Visibility.MaxVisibilityDistance = 20000;
            labelSign.Style.LineToGround = true;
            //labelSign.Message.MessageID = sgworld.Creator.CreateMessage(MsgTargetPosition.MTP_POPUP, proj.ToString(), MsgType.TYPE_TEXT, true).ID;

            if (proj.mAvgProgress < 0.01)
            {
                return;
            }

            //count = proj.getSubLine(out cVerticesArray);
            double[] xx, yy, zz;
            count          = proj.getMiddleLine(out xx, out yy, out zz);
            cVerticesArray = getVerArray(xx, yy, zz);
            //proj.getMiddleLine(out cVA2);

            if (count > 1)
            {
                polylineDone = sgworld.Creator.CreatePolylineFromArray(cVerticesArray, sgworld.Creator.CreateColor((int)(255 * proj.mAvgProgress), (int)(255 - 255 * proj.mAvgProgress), 0, 255),
                                                                       AltitudeTypeCode.ATC_TERRAIN_ABSOLUTE, mGroupIDDynamic, "Done" + proj.ProjectName);
                //sgworld.Creator.CreatePolylineFromArray(cVA2, sgworld.Creator.CreateColor((int)(255 ), (int)(255 ), 255, 255),
                //    AltitudeTypeCode.ATC_TERRAIN_ABSOLUTE, mGroupIDDynamic, "Middle" + proj.ProjectName);
                polylineDone.Spline = true;
                polylineDone.Visibility.MaxVisibilityDistance = 10000000;
                polylineDone.Visibility.MinVisibilityDistance = 100000;
                if (proj is CContBeam)
                {
                    polylineDone.LineStyle.Width = -5;
                }
                else
                {
                    polylineDone.LineStyle.Width = -2;
                }
            }
            //count = proj.getSubLine(out cVerticesArray);

            //polylineTodo = sgworld.Creator.CreatePolylineFromArray(cVerticesArray, sgworld.Creator.CreateColor(255, 255, 0, 255),
            //    AltitudeTypeCode.ATC_TERRAIN_ABSOLUTE, mGroupIDDynamic, "ToDo" + proj.ProjectName);
            //polylineTodo.Spline = true;
            //polylineTodo.Visibility.MaxVisibilityDistance = 10000000;
            //polylineTodo.Visibility.MinVisibilityDistance = 10;
            //polylineTodo.LineStyle.Width = -2;
        }
Beispiel #26
0
 public CTEProject(CRailwayScene s, CTEScene ss, CRWTEStandard t)
     : base(s, ss, t)
 {
 }
Beispiel #27
0
 public CTEPier(CRailwayScene s, CTEScene ss)
     : base(s, ss)
 {
 }
Beispiel #28
0
 public CTEFactory(CRailwayScene s, CTEScene ss, CRWTEStandard t)
     : base(s, ss, t)
 {
 }
Beispiel #29
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(), 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();
        }
Beispiel #30
0
 public CTEConsPhoto(CRailwayScene s, CTEScene ss, CRWTEStandard t)
     : base(s, ss, t)
 {
 }