Beispiel #1
0
        /// <summary>
        /// 比较
        /// </summary>
        /// <param name="netA"></param>
        /// <param name="netB"></param>
        /// <returns></returns>
        public static List <NamedXyzEnu> Compare(BaseLineNet netA, BaseLineNet netB)
        {//提取和转换,有的方向不一致
            List <NamedXyz> netBlines = new List <NamedXyz>();

            foreach (var item in netB)
            {
                var line = netA.GetOrReversed(item.BaseLineName);
                if (line == null)
                {
                    continue;
                }
                var namedXyz = new NamedXyz(line.BaseLineName.Name, line.EstimatedVector);
                netBlines.Add(namedXyz);
            }

            var CoordsB  = netB.GetNamedXyzs();
            var Compared = NamedXyz.Compare(netBlines, CoordsB);

            var CompareResults = new List <NamedXyzEnu>();

            foreach (var localXyz in Compared)
            {
                GnssBaseLineName name = new GnssBaseLineName(localXyz.Name);
                var staXyz            = netA.GetSiteCoord(name.RefName);
                if (staXyz == null)
                {
                    continue;
                }
                var item = NamedXyzEnu.Get(localXyz.Name, localXyz.Value, staXyz);
                CompareResults.Add(item);
            }
            return(CompareResults);
        }