/// <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))); } }
/// <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)); }