예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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);
        }