|
@@ -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:
|