/// <summary> /// GNSS网的精度限差, 单位米 /// </summary> /// <param name="gnssGrade">GNSS网等级</param> /// <param name="distanceMeter">基线长度,单位米</param> /// <returns>GNSS网的精度限差, 单位米</returns> public static double GetGnssGradeToleranceMeter(GnssGradeType gnssGrade, double distanceMeter) { double fixedError = 3; double coefOfProportion = 1; switch (gnssGrade) { case GnssGradeType.AA: fixedError = 3; coefOfProportion = 0.01; break; case GnssGradeType.A: fixedError = 5; coefOfProportion = 0.1; break; case GnssGradeType.B: fixedError = 8; coefOfProportion = 1; break; case GnssGradeType.C: fixedError = 10; coefOfProportion = 5; break; case GnssGradeType.D: fixedError = 10; coefOfProportion = 10; break; case GnssGradeType.E: fixedError = 10; coefOfProportion = 20; break; default: break; } var mm = GnssReveiverNominalAccuracy.GetToleranceErrorMilliMeter(fixedError, coefOfProportion, distanceMeter); return(mm * 0.001); //单位转换为米 }
/// <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)); }