/// <summary> /// 解析实时计算行结果。相隔一个字符串为内部,2个为外部。 /// </summary> /// <param name="line"></param> /// <returns></returns> public static RtkpostResultItem Parse(string line) { var item = new RtkpostResultItem(); //line = line.Replace(" ", "\t"); //string[] items = line.Split(new char[] { '\t' }, StringSplitOptions.RemoveEmptyEntries); var dateString = Geo.Utils.StringUtil.SubString(line, 0, 23); var xyzString = Geo.Utils.StringUtil.SubString(line, 24, 44); var typeNum = Geo.Utils.StringUtil.SubString(line, 69, 3).Trim(); var satNum = Geo.Utils.StringUtil.SubString(line, 73, 3).Trim(); var xyzRmsString = Geo.Utils.StringUtil.SubString(line, 77, 26); item.Time = Time.Parse(dateString); item.Xyz = XYZ.Parse(xyzString); item.XyzRms = XYZ.Parse(xyzRmsString); item.RktSolveType = (RktSolveType)int.Parse(typeNum); //Q=1:fix,2:float,3:sbas,4:dgps,5:single,6:ppp item.SatCount = int.Parse(satNum); return(item); }
/// <summary> /// 解析计算结果。 /// </summary> /// <param name="lines">结果行</param> /// <returns></returns> public static RtkpostResult Parse(string[] lines) { var result = new RtkpostResult(); foreach (var item in lines) { if (String.IsNullOrEmpty(item)) { continue; } var line = item.Trim(); if (line.StartsWith("%")) { result.Comments.Add(line); continue; } result.Items.Add(RtkpostResultItem.Parse(line)); } return(result); }