wyq пре 1 година
родитељ
комит
77f4e55502
1 измењених фајлова са 59 додато и 28 уклоњено
  1. 59 28
      XdCxRhDW.App/UserControl/CtrlHome.cs

+ 59 - 28
XdCxRhDW.App/UserControl/CtrlHome.cs

@@ -1130,42 +1130,48 @@ namespace XdCxRhDW.App.UserControl
             {
                 foreach (var item in items)
                 {
+                    double[] res = new double[6];
+                    var StationRes = new StationRes()
+                    {
+                        SatTxLon = item.StationRes.SatTxLon,
+                        SatTxLat = item.StationRes.SatTxLat,
+                        CdbTxLon = item.StationRes.CdbTxLon,
+                        CdbTxLat = item.StationRes.CdbTxLat,
+                        CxLon = item.StationRes.CxLon,
+                        CxLat = item.StationRes.CxLat,
+                        RefLon = item.StationRes.RefLon,
+                        RefLat = item.StationRes.RefLat,
+                    };
+
+                    var mainxlInfo = await XlRepository.GetLatestAsync(item.CgRes.MainCode.Value, item.SigTime);
+                    if (mainxlInfo == null)
+                    {
+                        Serilog.Log.Error($"重新定位异常:卫星:{item.CgRes.MainCode.Value}未找到对应的星历信息,请导入星历");
+                        continue;
+                    }
+                    var maineph = EphHelper.Calc(mainxlInfo.TwoLine, item.SigTime);
+                    var CgRes = new CgRes()
+                    {
+                        SigTime = item.SigTime,
+                        MainX = maineph.X,
+                        MainY = maineph.Y,
+                        MainZ = maineph.Z,
+                        MainVx = maineph.VX,
+                        MainVy = maineph.VY,
+                        MainVz = maineph.VZ,
+                    };
                     switch (item.PosResType)
                     {
                         case EnumPosResType.X1D1CX:
-                            var StationRes = new StationRes()
-                            {
-                                SatTxLon = item.StationRes.SatTxLon,
-                                SatTxLat = item.StationRes.SatTxLat,
-                                CdbTxLon = item.StationRes.CdbTxLon,
-                                CdbTxLat = item.StationRes.CdbTxLat,
-                                CxLon = item.StationRes.CxLon,
-                                CxLat = item.StationRes.CxLat,
-                                RefLon = item.StationRes.RefLon,
-                                RefLat = item.StationRes.RefLat,
-                            };
-                            var mainxlInfo = await XlRepository.GetLatestAsync(item.CgRes.MainCode.Value, item.SigTime);
-                            if (mainxlInfo == null)
-                            {
-                                Serilog.Log.Error($"重新定位异常:卫星:{item.CgRes.MainCode.Value}未找到对应的星历信息,请导入星历");
-                                continue;
-                            }
-                            var maineph = EphHelper.Calc(mainxlInfo.TwoLine, item.SigTime);
-                            var cgRes = new CgRes()
-                            {
-                                SigTime = item.SigTime,
-                                DtoCdb = item.CgRes.DtoCdb,
-                                YbMainDto = item.CgRes.YbMainDto,
-                                MainX = maineph.X,
-                                MainY = maineph.Y,
-                                MainZ = maineph.Z,
-                            };
+
+                            CgRes.DtoCdb = item.CgRes.DtoCdb;
+                            CgRes.YbMainDto = item.CgRes.YbMainDto;
                             var cxRes = new CxRes()
                             {
                                 SigTime = item.SigTime,
                                 Fx = item.CxRes.Fx,
                             };
-                            var res = PosApi.X1D1_Pos(cgRes, StationRes, cxRes);
+                            res = PosApi.X1D1_Pos(CgRes, StationRes, cxRes);
                             item.PosLon = res[0];
                             item.PosLat = res[1];
                             item.MirrLon = res[3];
@@ -1174,6 +1180,31 @@ namespace XdCxRhDW.App.UserControl
                         case EnumPosResType.X2D1:
                         case EnumPosResType.X2D1NoRef:
 
+                            var xlInfo1 = await XlRepository.GetLatestAsync(item.CgRes.Adja1Code.Value, item.SigTime);
+                            if (xlInfo1 == null)
+                            {
+                                Serilog.Log.Error($"重新定位异常:卫星:{item.CgRes.Adja1Code.Value}未找到对应的星历信息,请导入星历");
+                                continue;
+                            }
+                            var eph1 = EphHelper.Calc(xlInfo1.TwoLine, item.SigTime);
+                            CgRes.Dto1 = item.CgRes.Dto1;
+                            CgRes.Dfo1 = item.CgRes.Dfo1;
+                            CgRes.Snr1 = item.CgRes.Snr1;
+                            CgRes.DtoCdb = item.CgRes.DtoCdb;
+                            CgRes.DfoCdb = item.CgRes.DfoCdb;
+                            CgRes.SnrCdb = item.CgRes.SnrCdb;
+                            CgRes.YbMainDto = item.CgRes.YbMainDto;
+                            CgRes.YbAdja1Dto = item.CgRes.YbAdja1Dto;
+                            CgRes.MainCode = item.CgRes.MainCode;
+                            CgRes.Adja1Code = item.CgRes.Adja1Code;
+                            CgRes.Adja1X = eph1.X;
+                            CgRes.Adja1Y = eph1.Y;
+                            CgRes.Adja1Z = eph1.Z;
+                            res = item.PosResType == EnumPosResType.X2D1 ? PosApi.X2D1_Pos(CgRes, StationRes) : PosApi.X2D1_PosNoRef(CgRes, StationRes);
+                            item.PosLon = res[0];
+                            item.PosLat = res[1];
+                            item.MirrLon = res[3];
+                            item.MirrLat = res[4];
                             break;
                         case EnumPosResType.X3:
                         case EnumPosResType.X3NoRef: