コード例 #1
0
ファイル: AutoBaseLineSolver.cs プロジェクト: yxw027/GNSSer
        /// <summary>
        /// 解算
        /// </summary>
        /// <param name="LineManager"></param>
        public void Solve(MutliPeriodBaseLineManager LineManager)
        {
            SitebaseLines = LineManager.AllLineObjs;
            if (ProgressViewer != null)
            {
                ProgressViewer.InitProcess(LineManager.Count);
            }

            InitSolverCount(LineManager);

            //分时段计算 ,时段之间采用串行算法
            foreach (var item in LineManager.KeyValues)
            {
                var sitebaseLines = item.Value.Values;
                var netTimePeriod = item.Key;

                switch (AutoBaseLinSolveType)
                {
                case AutoBaseLinSolveType.单一算法:
                {
                    SolveBaseLine(sitebaseLines, Option, netTimePeriod);
                }
                break;

                case AutoBaseLinSolveType.基线长度采用不同算法:
                {
                    //长基线解算
                    var longOption = Options[GnssSolverType.无电离层双差];
                    //长基线
                    List <SiteObsBaseline> shorts    = item.Value.GetShortLines(MaxShortLineLength);
                    List <SiteObsBaseline> longLines = item.Value.GetLongLines(MaxShortLineLength);

                    if (longLines.Count > 0)
                    {
                        SolveBaseLine(longLines, longOption, netTimePeriod);
                    }
                    //短基线
                    if (shorts.Count > 0)
                    {
                        SolveBaseLine(shorts, Option, netTimePeriod);
                    }
                }
                break;

                default:
                {
                    SolveBaseLine(sitebaseLines, Option, netTimePeriod);
                }
                break;
                }

                ProgressViewer.PerformProcessStep();
            }
            if (ProgressViewer != null)
            {
                ProgressViewer.Full();
            }
        }