Example #1
0
        /// <summary>
        /// 获取接收机标称精度,静态。是否应该写入文件!!!
        /// </summary>
        /// <param name="gnssReveiverType">接收机类型</param>
        /// <param name="version">版本</param>
        /// <returns></returns>
        public static GnssReveiverNominalAccuracy GetNominalAccuracyOfGnssReveiver(GnssReveiverType gnssReveiverType, string version = null)
        {
            var hasVersion = !String.IsNullOrWhiteSpace(version);

            switch (gnssReveiverType)
            {
            case GnssReveiverType.Laica:
                return(new GnssReveiverNominalAccuracy(new LevelVertical(5, 10), new LevelVertical(0.5, 0.5)));

            case GnssReveiverType.Trimle:    //R10 为3mm水平,5700高程10mm
                if (hasVersion)
                {
                    if (version.Contains("R10"))
                    {
                        return(new GnssReveiverNominalAccuracy(new LevelVertical(3, 5), new LevelVertical(0.5, 0.5)));
                    }
                    else if (version.Contains("5700"))
                    {
                        return(new GnssReveiverNominalAccuracy(new LevelVertical(5, 10), new LevelVertical(1, 1)));
                    }
                }
                return(new GnssReveiverNominalAccuracy(new LevelVertical(5, 5), new LevelVertical(0.5, 1)));

            case GnssReveiverType.Ashetech:
                if (hasVersion)
                {
                    if (version.Contains("Z-12") || version.Contains("M-12"))
                    {
                        return(new GnssReveiverNominalAccuracy(new LevelVertical(5, 10), new LevelVertical(1, 1)));
                    }
                }
                return(new GnssReveiverNominalAccuracy(new LevelVertical(5, 10), new LevelVertical(0.5, 0.5)));

            case GnssReveiverType.Topcon:
                return(new GnssReveiverNominalAccuracy(new LevelVertical(3, 5), new LevelVertical(0.5, 0.5)));

            case GnssReveiverType.ZhongHaiDa:
                return(new GnssReveiverNominalAccuracy(new LevelVertical(3, 5), new LevelVertical(0.5, 1)));

            case GnssReveiverType.HuaCe:
                return(new GnssReveiverNominalAccuracy(new LevelVertical(5, 10), new LevelVertical(1, 2)));

            case GnssReveiverType.NanFang:
                return(new GnssReveiverNominalAccuracy(new LevelVertical(3, 5), new LevelVertical(1, 1)));

            default:
                return(new GnssReveiverNominalAccuracy(new LevelVertical(5, 10), new LevelVertical(0.5, 0.5)));
            }
        }
Example #2
0
        /// <summary>
        ///  GNSS 测量精度计算公式
        /// </summary>
        /// <param name="gnssReveiverType">接收机类型</param>
        /// <param name="distanceMeter">基线长度</param>
        /// <param name="version">版本</param>
        /// <returns></returns>
        public static LevelVertical GetReceiverToleranceError(GnssReveiverType gnssReveiverType, double distanceMeter, string version = null)
        {
            GnssReveiverNominalAccuracy accuracy = GetNominalAccuracyOfGnssReveiver(gnssReveiverType, version);

            return(accuracy.GetToleranceErrorMilliMeter(distanceMeter));
        }