瀏覽代碼

合并GDOP

wyq 1 年之前
父節點
當前提交
e52bb9c8d5

+ 1 - 1
XzDw.App/UserControl/DXErrEllipseParam.cs

@@ -36,7 +36,7 @@ namespace XdCxRhDW.App.UserControl
             this.txtCapTime.DateTime = TestData.Time;
             this.txtCapTime1.DateTime = TestData.Time;
             this.txtCapTime2.DateTime = TestData.Time;
-            this.txtDfoErr1.EditValue = TestData.DtousErr;
+            this.txtDfoErr1.EditValue = TestData.DfoHzErr;
             this.txtSatLocErr1.EditValue = TestData.SatLocErr;
             this.txtEphVelErr1.EditValue = TestData.EphVelErr;
             this.txtFu1.EditValue = MBfu * 1e-6;

+ 1 - 1
XzDw.App/UserControl/DXGDOPParam.cs

@@ -39,7 +39,7 @@ namespace XdCxRhDW.App.UserControl
             this.txtCapTime1.DateTime = TestData.leoTime;
             this.txtCapTime2.DateTime = TestData.leoTime;
             this.txtCapTime3.DateTime = TestData.leoTime;
-            this.txtDfoErr1.EditValue = TestData.DtousErr;
+            this.txtDfoErr1.EditValue = TestData.DfoHzErr;
             this.txtSatLocErr1.EditValue = TestData.SatLocErr;
             this.txtEphVelErr1.EditValue = TestData.EphVelErr;
             this.txtFu1.EditValue = MBfu * 1e-6;

文件差異過大導致無法顯示
+ 4 - 0
XzXdDw.App/Image/tx.svg


+ 6 - 34
XzXdDw.App/UserControl/CtrlPosSingle.cs

@@ -44,6 +44,7 @@ namespace XzXdDw.App.UserControl
     public partial class CtrlPosSingle : DevExpress.XtraEditors.XtraUserControl
     {
         DtXDParam dtxdctrl = null;
+        DXGDOPParam dxGdopParam = null;
         double MBfu;
         TcpServer tcpServer;
         public CtrlPosSingle()
@@ -136,41 +137,12 @@ namespace XzXdDw.App.UserControl
                     .AddMapMenu("停止加载", SvgHelper.LoadFromFile("Image\\Stop.svg"), (lon, lat) => stoped = true)
                     .AddMapMenu("GDOP分析", SvgHelper.LoadFromFile("Image\\GDOP.svg"), (lon, lat) =>
                     {
-                        var ctrl = new DXGDOPParam(MBfu);
-                        PopupHelper.ShowPopup(ctrl, mapControl1, mapControl1.Width / 4, onHide: hideReason =>
+                        if (dxGdopParam == null)
                         {
-                            if (hideReason == HideReason.Defalut) return;
-                            var model = ctrl.Model;
-                            var (listSat, data) = GdopHelper.GdopSingleSatDRef(
-                            model.TleLeo1, model.CapTime1, model.CapTime2, model.CapTime3, model.DfoErr, model.SatLocErr, model.EphVelErr, model.fu);
-                            if (data == null)
-                            {
-                                return;
-                            }
-                            if (listSat != null)//画卫星
-                            {
-                                foreach (var sat in listSat)
-                                {
-                                    mapControl1.Invoke(new Action(() =>
-                                    {
-                                        string satCode = sat.SatCode == null ? "未知" : sat.SatCode.ToString();
-                                        mapControl1.DrawFixedImg("sat", sat.SatLat, sat.SatLon, DxHelper.SvgHelper.CreateSat(), new Size(32, 32), $"卫星编号:{satCode}\r\n轨道经度:{sat.SatLon}°\r\n轨道纬度:{sat.SatLat}°");
-                                    }));
-                                }
-                            }
-                            foreach (var errLins in data)//画GDOP
-                            {
-                                foreach (var line in errLins.MapLines)
-                                {
-                                    var newLine = SampleDots(line);
-                                    mapControl1.Invoke(new Action(() =>
-                                    {
-                                        var mapLines = newLine.Line.Select(p => (errLins.ErrDistanceKm, p.Lon, p.Lat));
-                                        mapControl1.DrawGdopLine(mapLines);
-                                    }));
-                                }
-                            }
-                        });
+                            dxGdopParam = new DXGDOPParam(MBfu);
+                        }
+                        dxGdopParam.mapControl1 = mapControl1;
+                        PopupHelper.ShowPopup(dxGdopParam, mapControl1, mapControl1.Width / 4);
                     })
 
                     .AddPosMenu<PosRes>("误差椭圆", SvgHelper.LoadFromFile("Image\\误差椭圆.svg"), item =>

+ 18 - 58
XzXdDw.App/UserControl/CtrlPosXd.cs

@@ -33,17 +33,18 @@ using XzXdDw.App.Model;
 
 namespace XzXdDw.App.UserControl
 {
+
     /// <summary>
     /// 星地定位
     /// </summary>
     public partial class CtrlPosXd : DevExpress.XtraEditors.XtraUserControl
     {
         DtXDParam dtxdctrl = null;
+        X2D1GDOPParam x2D1GdopParam = null;
         TcpServer tcpServer;
         public CtrlPosXd()
         {
             InitializeComponent();
-
             tcpServer = new TcpServer();
         }
 
@@ -89,8 +90,9 @@ namespace XzXdDw.App.UserControl
                     .AddMenu("手动定位", SvgHelper.LoadFromFile("Image\\Pos.svg"), XdPos)
                     .AddMenu("绘制时差线", SvgHelper.LoadFromFile("Image\\DrawLine.svg"), DrawDtoLine)
                     .AddMenu("加载仿真数据", SvgHelper.LoadFromFile("Image\\LoadData.svg"), LoadSimulationData)
-                    .AddMenu("绘制误差椭圆", SvgHelper.LoadFromFile("Image\\误差椭圆.svg"),()=> {
-                         var ctrl = new X2D1ErrEllipseParam();
+                    .AddMenu("绘制误差椭圆", SvgHelper.LoadFromFile("Image\\误差椭圆.svg"), () =>
+                    {
+                        var ctrl = new X2D1ErrEllipseParam();
                         PopupHelper.ShowPopup(ctrl, mapControl1, mapControl1.Width / 4, onHide: hideReason =>
                         {
                             if (hideReason == HideReason.Defalut) return;
@@ -128,41 +130,12 @@ namespace XzXdDw.App.UserControl
                     .AddMapMenu("停止加载", SvgHelper.LoadFromFile("Image\\Stop.svg"), (lon, lat) => stoped = true)
                     .AddMapMenu("GDOP分析", SvgHelper.LoadFromFile("Image\\GDOP.svg"), (lon, lat) =>
                     {
-                        var ctrl = new X2D1GDOPParam();
-                        PopupHelper.ShowPopup(ctrl, mapControl1, mapControl1.Width / 4, onHide: hideReason =>
+                        if (x2D1GdopParam == null)
                         {
-                            if (hideReason == HideReason.Defalut) return;
-                            var model = ctrl.Model;
-                            var (listSat, data) = GdopHelper.Gdop2Sat1DRef(new double[] { model.StationLon, model.StationLat },
-                              new double[] { model.RefLon, model.RefLat }, model.TleMain, model.TleAdja, model.CapTime, model.DtousErr, model.SatLocErr);
-                            if (data == null)
-                            {
-                                return;
-                            }
-                            if (listSat != null)//画卫星
-                            {
-                                foreach (var sat in listSat)
-                                {
-                                    mapControl1.Invoke(new Action(() =>
-                                    {
-                                        string satCode = sat.SatCode == null ? "未知" : sat.SatCode.ToString();
-                                        mapControl1.DrawFixedImg("sat", sat.SatLat, sat.SatLon, DxHelper.SvgHelper.CreateSat(), new Size(32, 32), $"卫星编号:{satCode}\r\n轨道经度:{sat.SatLon}°\r\n轨道纬度:{sat.SatLat}°");
-                                    }));
-                                }
-                            }
-                            foreach (var errLins in data)//画GDOP
-                            {
-                                foreach (var line in errLins.MapLines)
-                                {
-                                    var newLine = SampleDots(line);
-                                    mapControl1.Invoke(new Action(() =>
-                                    {
-                                        var mapLines = newLine.Line.Select(p => (errLins.ErrDistanceKm, p.Lon, p.Lat));
-                                        mapControl1.DrawGdopLine(mapLines);
-                                    }));
-                                }
-                            }
-                        });
+                            x2D1GdopParam = new X2D1GDOPParam();
+                        }
+                        x2D1GdopParam.mapControl1 = mapControl1;
+                        PopupHelper.ShowPopup(x2D1GdopParam, mapControl1, mapControl1.Width / 4);
                     })
 
                     .AddPosMenu<XDPosRes>("误差椭圆", SvgHelper.LoadFromFile("Image\\误差椭圆.svg"), item =>
@@ -211,9 +184,9 @@ namespace XzXdDw.App.UserControl
             {
                 return;
             }
-           
-            //"Simulation_Data2023.dat"
+
             string simulationFile = editor.SimulationFile;
+
             stoped = false;
 
             //在列表控件中全选+右键可以删除所有测试结果
@@ -352,7 +325,7 @@ namespace XzXdDw.App.UserControl
                 }
                 var item = gridView1.GetRow(ids[0]) as XDPosRes;
                 List<TxInfo> listTx = new List<TxInfo>();
-                List<Model.SatInfo> listSat = new List<Model.SatInfo>();
+                List<XzXdDw.App.Model.SatInfo> listSat = new List<XzXdDw.App.Model.SatInfo>();
                 CgRes cg;
                 using (RHDWContext db = new RHDWContext())
                 {
@@ -404,7 +377,7 @@ namespace XzXdDw.App.UserControl
             }
         }
 
-        private void DrawErrorEllipse2X1D(double[] MsEph, double[] NsEph, double[] CDBAnt, double[] RefGeod,double DtoErr,double EphErr)
+        private void DrawErrorEllipse2X1D(double[] MsEph, double[] NsEph, double[] CDBAnt, double[] RefGeod, double DtoErr, double EphErr)
         {
             try
             {
@@ -416,7 +389,7 @@ namespace XzXdDw.App.UserControl
                 }
                 var item = gridView1.GetRow(ids[0]) as XDPosRes;
                 List<TxInfo> listTx = new List<TxInfo>();
-                List<Model.SatInfo> listSat = new List<Model.SatInfo>();
+                List<XzXdDw.App.Model.SatInfo> listSat = new List<XzXdDw.App.Model.SatInfo>();
                 using (RHDWContext db = new RHDWContext())
                 {
                     listTx = db.TxInfos.ToList();
@@ -424,13 +397,13 @@ namespace XzXdDw.App.UserControl
                 }
                 var satTx = listTx.Find(p => p.TxType == EnumTxType.MainSat);
                 var satNTx = listTx.Find(p => p.TxType == EnumTxType.AdjaSat);
-                XzXdDw.App.Api.低轨GDOP误差椭圆.ErrorEllipseDTO2X1DOption Option = new XzXdDw.App.Api.低轨GDOP误差椭圆.ErrorEllipseDTO2X1DOption();               
+                XzXdDw.App.Api.低轨GDOP误差椭圆.ErrorEllipseDTO2X1DOption Option = new XzXdDw.App.Api.低轨GDOP误差椭圆.ErrorEllipseDTO2X1DOption();
                 Option.MsEph = MsEph;
                 Option.NsEph = NsEph;
                 Option.CDBAnt = CDBAnt;
                 Option.RefGeod = RefGeod;
                 Option.SelectPoint = new double[3] { item.PosLon, item.PosLat, 0 };
-                Option.DtoErr = DtoErr*1e-6;
+                Option.DtoErr = DtoErr * 1e-6;
                 Option.EphErr = EphErr;
                 var points = XzXdDw.App.Api.低轨GDOP误差椭圆.ErrEllipseHelper.ErrorEllipse2X1D(Option);
                 mapControl1.DrawDtoPonit($"双星[{listSat.FirstOrDefault(m => m.ID == satTx.ID)?.Sat},{listSat.FirstOrDefault(m => m.ID == satNTx.ID)?.Sat}]误差椭圆线", points);
@@ -442,19 +415,6 @@ namespace XzXdDw.App.UserControl
                 XtraMessageBox.Show($"绘制误差椭圆线失败,失败信息:{ex.Message}");
             }
         }
-        public XdCxRhDW.App.DTO.MapLine SampleDots(XdCxRhDW.App.DTO.MapLine line)
-        {
-            var dots = line.Line;
-            if (dots.Count < 30) return line;
-            var tmp = dots.Count / 30;
-            var newLine = new XdCxRhDW.App.DTO.MapLine();
-            for (int i = 0; i < dots.Count; i += tmp)
-            {
-                newLine.Line.Add(dots[i]);
-            }
-            if (!newLine.Line.Contains(dots.Last()))
-                newLine.Line.Add(dots.Last());
-            return newLine;
-        }
+
     }
 }

+ 7 - 48
XzXdDw.App/UserControl/CtrlPosXz.cs

@@ -45,6 +45,7 @@ namespace XzXdDw.App.UserControl
         /// 时差初值 范围计算
         /// </summary>
         DtSXLParam dtsxlctrl = null;
+        XZGDOPParam xzGdopParam=null;
         double MBfu;
         double CKfu;
         private TxInfo refTx;
@@ -155,41 +156,12 @@ namespace XzXdDw.App.UserControl
                     .AddMapMenu("停止加载", SvgHelper.LoadFromFile("Image\\Stop.svg"), (lon, lat) => stoped = true)
                     .AddMapMenu("GDOP分析", SvgHelper.LoadFromFile("Image\\GDOP.svg"), (lon, lat) =>
                     {
-                        var ctrl = new XZGDOPParam(refTx,TestData.leoTime, MBfu, CKfu);
-                        PopupHelper.ShowPopup(ctrl, mapControl1, mapControl1.Width / 4, onHide: hideReason =>
+                        if (xzGdopParam == null)
                         {
-                            if (hideReason == HideReason.Defalut) return;
-                            var model = ctrl.Model;
-                            var (listSat, data) = GdopHelper.GdopLeoTowSatDRef(
-                              new double[] { model.RefLon, model.RefLat }, model.TleLeo1, model.TleLeo2, model.CapTime, model.DtousErr, model.DfoErr, model.SatLocErr, model.EphVelErr, model.fu1, model.fu2);
-                            if (data == null)
-                            {
-                                return;
-                            }
-                            if (listSat != null)//画卫星
-                            {
-                                foreach (var sat in listSat)
-                                {
-                                    mapControl1.Invoke(new Action(() =>
-                                    {
-                                        string satCode = sat.SatCode == null ? "未知" : sat.SatCode.ToString();
-                                        mapControl1.DrawFixedImg("sat", sat.SatLat, sat.SatLon, DxHelper.SvgHelper.CreateSat(), new Size(32, 32), $"卫星编号:{satCode}\r\n轨道经度:{sat.SatLon}°\r\n轨道纬度:{sat.SatLat}°");
-                                    }));
-                                }
-                            }
-                            foreach (var errLins in data)//画GDOP
-                            {
-                                foreach (var line in errLins.MapLines)
-                                {
-                                    var newLine = SampleDots(line);
-                                    mapControl1.Invoke(new Action(() =>
-                                    {
-                                        var mapLines = newLine.Line.Select(p => (errLins.ErrDistanceKm, p.Lon, p.Lat));
-                                        mapControl1.DrawGdopLine(mapLines);
-                                    }));
-                                }
-                            }
-                        });
+                            xzGdopParam = new XZGDOPParam(refTx, TestData.leoTime, MBfu, CKfu);
+                        }
+                        xzGdopParam.mapControl1 = mapControl1;
+                        PopupHelper.ShowPopup(xzGdopParam, mapControl1, mapControl1.Width / 4);
                     })
                     .AddPosMenu<XZPosRes>("误差椭圆", SvgHelper.LoadFromFile("Image\\误差椭圆.svg"), item =>
                     {
@@ -519,19 +491,6 @@ namespace XzXdDw.App.UserControl
                 XtraMessageBox.Show($"绘制误差椭圆线失败,失败信息:{ex.Message}");
             }
         }
-        public XdCxRhDW.App.DTO.MapLine SampleDots(XdCxRhDW.App.DTO.MapLine line)
-        {
-            var dots = line.Line;
-            if (dots.Count < 30) return line;
-            var tmp = dots.Count / 30;
-            var newLine = new XdCxRhDW.App.DTO.MapLine();
-            for (int i = 0; i < dots.Count; i += tmp)
-            {
-                newLine.Line.Add(dots[i]);
-            }
-            if (!newLine.Line.Contains(dots.Last()))
-                newLine.Line.Add(dots.Last());
-            return newLine;
-        }
+       
     }
 }

+ 1 - 1
XzXdDw.App/UserControl/DXErrEllipseParam.cs

@@ -36,7 +36,7 @@ namespace XdCxRhDW.App.UserControl
             this.txtCapTime.DateTime = TestData.Time;
             this.txtCapTime1.DateTime = TestData.Time;
             this.txtCapTime2.DateTime = TestData.Time;
-            this.txtDfoErr1.EditValue = TestData.DtousErr;
+            this.txtDfoErr1.EditValue = TestData.DfoHzErr;
             this.txtSatLocErr1.EditValue = TestData.SatLocErr;
             this.txtEphVelErr1.EditValue = TestData.EphVelErr;
             this.txtFu1.EditValue = MBfu * 1e-6;

+ 54 - 27
XzXdDw.App/UserControl/DXGDOPParam.Designer.cs

@@ -28,6 +28,16 @@
         /// </summary>
         private void InitializeComponent()
         {
+            DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions4 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject13 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject14 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject15 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject16 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions5 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject17 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject18 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject19 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject20 = new DevExpress.Utils.SerializableAppearanceObject();
             DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions1 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject1 = new DevExpress.Utils.SerializableAppearanceObject();
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject2 = new DevExpress.Utils.SerializableAppearanceObject();
@@ -38,16 +48,6 @@
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject6 = new DevExpress.Utils.SerializableAppearanceObject();
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject7 = new DevExpress.Utils.SerializableAppearanceObject();
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject8 = new DevExpress.Utils.SerializableAppearanceObject();
-            DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions3 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
-            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject9 = new DevExpress.Utils.SerializableAppearanceObject();
-            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject10 = new DevExpress.Utils.SerializableAppearanceObject();
-            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject11 = new DevExpress.Utils.SerializableAppearanceObject();
-            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject12 = new DevExpress.Utils.SerializableAppearanceObject();
-            DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions4 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
-            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject13 = new DevExpress.Utils.SerializableAppearanceObject();
-            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject14 = new DevExpress.Utils.SerializableAppearanceObject();
-            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject15 = new DevExpress.Utils.SerializableAppearanceObject();
-            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject16 = new DevExpress.Utils.SerializableAppearanceObject();
             this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
             this.btnOK = new DevExpress.XtraEditors.SimpleButton();
             this.txtTleLeo1 = new DevExpress.XtraEditors.SearchLookUpEdit();
@@ -65,12 +65,14 @@
             this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
             this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
             this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
-            this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
             this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
             this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
             this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
             this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
             this.layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+            this.btnClose = new DevExpress.XtraEditors.SimpleButton();
+            this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
             this.layoutControl1.SuspendLayout();
             ((System.ComponentModel.ISupportInitialize)(this.txtTleLeo1.Properties)).BeginInit();
@@ -91,12 +93,13 @@
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
-            ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
             this.SuspendLayout();
             // 
             // layoutControl1
@@ -110,6 +113,7 @@
             this.layoutControl1.Controls.Add(this.txtCapTime3);
             this.layoutControl1.Controls.Add(this.txtCapTime2);
             this.layoutControl1.Controls.Add(this.txtCapTime1);
+            this.layoutControl1.Controls.Add(this.btnClose);
             this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
             this.layoutControl1.Location = new System.Drawing.Point(0, 0);
             this.layoutControl1.Margin = new System.Windows.Forms.Padding(5);
@@ -167,7 +171,7 @@
             this.txtDfoErr1.Name = "txtDfoErr1";
             this.txtDfoErr1.Properties.AutoHeight = false;
             this.txtDfoErr1.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
-            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "Hz", -1, false, true, false, editorButtonImageOptions1, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject1, serializableAppearanceObject2, serializableAppearanceObject3, serializableAppearanceObject4, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
+            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "Hz", -1, false, true, false, editorButtonImageOptions4, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject13, serializableAppearanceObject14, serializableAppearanceObject15, serializableAppearanceObject16, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
             this.txtDfoErr1.Size = new System.Drawing.Size(489, 34);
             this.txtDfoErr1.StyleController = this.layoutControl1;
             this.txtDfoErr1.TabIndex = 6;
@@ -182,7 +186,7 @@
             this.txtSatLocErr1.Name = "txtSatLocErr1";
             this.txtSatLocErr1.Properties.AutoHeight = false;
             this.txtSatLocErr1.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
-            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "m", -1, false, true, false, editorButtonImageOptions2, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject5, serializableAppearanceObject6, serializableAppearanceObject7, serializableAppearanceObject8, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
+            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "m", -1, false, true, false, editorButtonImageOptions5, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject17, serializableAppearanceObject18, serializableAppearanceObject19, serializableAppearanceObject20, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
             this.txtSatLocErr1.Size = new System.Drawing.Size(489, 34);
             this.txtSatLocErr1.StyleController = this.layoutControl1;
             this.txtSatLocErr1.TabIndex = 6;
@@ -197,7 +201,7 @@
             this.txtEphVelErr1.Name = "txtEphVelErr1";
             this.txtEphVelErr1.Properties.AutoHeight = false;
             this.txtEphVelErr1.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
-            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "m/s", -1, false, true, false, editorButtonImageOptions3, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject9, serializableAppearanceObject10, serializableAppearanceObject11, serializableAppearanceObject12, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
+            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "m/s", -1, false, true, false, editorButtonImageOptions1, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject1, serializableAppearanceObject2, serializableAppearanceObject3, serializableAppearanceObject4, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
             this.txtEphVelErr1.Size = new System.Drawing.Size(489, 34);
             this.txtEphVelErr1.StyleController = this.layoutControl1;
             this.txtEphVelErr1.TabIndex = 6;
@@ -212,7 +216,7 @@
             this.txtFu1.Name = "txtFu1";
             this.txtFu1.Properties.AutoHeight = false;
             this.txtFu1.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
-            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "MHz", -1, false, true, false, editorButtonImageOptions4, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject13, serializableAppearanceObject14, serializableAppearanceObject15, serializableAppearanceObject16, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
+            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "MHz", -1, false, true, false, editorButtonImageOptions2, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject5, serializableAppearanceObject6, serializableAppearanceObject7, serializableAppearanceObject8, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
             this.txtFu1.Size = new System.Drawing.Size(489, 34);
             this.txtFu1.StyleController = this.layoutControl1;
             this.txtFu1.TabIndex = 6;
@@ -297,7 +301,8 @@
             this.layoutControlItem2,
             this.layoutControlItem3,
             this.layoutControlItem6,
-            this.layoutControlItem11});
+            this.layoutControlItem11,
+            this.layoutControlItem7});
             this.Root.Name = "Root";
             this.Root.Size = new System.Drawing.Size(493, 875);
             this.Root.TextVisible = false;
@@ -355,14 +360,6 @@
             this.emptySpaceItem1.Size = new System.Drawing.Size(493, 304);
             this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
             // 
-            // emptySpaceItem2
-            // 
-            this.emptySpaceItem2.AllowHotTrack = false;
-            this.emptySpaceItem2.Location = new System.Drawing.Point(0, 523);
-            this.emptySpaceItem2.Name = "emptySpaceItem2";
-            this.emptySpaceItem2.Size = new System.Drawing.Size(246, 48);
-            this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0);
-            // 
             // layoutControlItem9
             // 
             this.layoutControlItem9.Control = this.txtCapTime1;
@@ -423,6 +420,33 @@
             this.layoutControlItem11.TextLocation = DevExpress.Utils.Locations.Top;
             this.layoutControlItem11.TextSize = new System.Drawing.Size(108, 22);
             // 
+            // emptySpaceItem2
+            // 
+            this.emptySpaceItem2.AllowHotTrack = false;
+            this.emptySpaceItem2.Location = new System.Drawing.Point(0, 523);
+            this.emptySpaceItem2.Name = "emptySpaceItem2";
+            this.emptySpaceItem2.Size = new System.Drawing.Size(246, 12);
+            this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0);
+            // 
+            // btnClose
+            // 
+            this.btnClose.Location = new System.Drawing.Point(2, 537);
+            this.btnClose.Name = "btnClose";
+            this.btnClose.Size = new System.Drawing.Size(242, 32);
+            this.btnClose.StyleController = this.layoutControl1;
+            this.btnClose.TabIndex = 13;
+            this.btnClose.Text = "关闭";
+            this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
+            // 
+            // layoutControlItem7
+            // 
+            this.layoutControlItem7.Control = this.btnClose;
+            this.layoutControlItem7.Location = new System.Drawing.Point(0, 535);
+            this.layoutControlItem7.Name = "layoutControlItem7";
+            this.layoutControlItem7.Size = new System.Drawing.Size(246, 36);
+            this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0);
+            this.layoutControlItem7.TextVisible = false;
+            // 
             // DXGDOPParam
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 22F);
@@ -451,12 +475,13 @@
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
-            ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
             this.ResumeLayout(false);
 
         }
@@ -474,7 +499,6 @@
         private DevExpress.XtraEditors.SimpleButton btnOK;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
         private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
-        private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
         private DevExpress.XtraEditors.ButtonEdit txtEphVelErr1;
@@ -485,5 +509,8 @@
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem11;
         private DevExpress.XtraEditors.DateEdit txtCapTime2;
         private DevExpress.XtraEditors.DateEdit txtCapTime1;
+        private DevExpress.XtraEditors.SimpleButton btnClose;
+        private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
     }
 }

+ 52 - 2
XzXdDw.App/UserControl/DXGDOPParam.cs

@@ -1,4 +1,5 @@
 using DevExpress.XtraEditors;
+using DevExpress.XtraMap;
 using DxHelper;
 using ExtensionsDev;
 using System;
@@ -11,12 +12,14 @@ using System.Text;
 using System.Threading.Tasks;
 using System.Windows.Forms;
 using XzXdDw.App;
+using XzXdDw.App.Api.星地GDOP误差椭圆;
 using XzXdDw.App.Model;
 
 namespace XdCxRhDW.App.UserControl
 {
     public partial class DXGDOPParam : DevExpress.XtraEditors.XtraUserControl
     {
+        public MapControl mapControl1;
         public GDOP单星协同接口 Model => new GDOP单星协同接口()
         {
             TleLeo1 = txtTleLeo1.Text.Trim(),
@@ -26,7 +29,7 @@ namespace XdCxRhDW.App.UserControl
             DfoErr = Convert.ToDouble(txtDfoErr1.Text),
             SatLocErr = Convert.ToDouble(txtSatLocErr1.Text),
             EphVelErr = Convert.ToDouble(txtEphVelErr1.Text),
-            fu = Convert.ToDouble(txtFu1.Text)*1e6,
+            fu = Convert.ToDouble(txtFu1.Text) * 1e6,
         };
         public DXGDOPParam(double MBfu)
         {
@@ -36,12 +39,59 @@ namespace XdCxRhDW.App.UserControl
             this.txtCapTime1.DateTime = TestData.leoTime;
             this.txtCapTime2.DateTime = TestData.leoTime;
             this.txtCapTime3.DateTime = TestData.leoTime;
-            this.txtDfoErr1.EditValue = TestData.DtousErr;
+            this.txtDfoErr1.EditValue = TestData.DfoHzErr;
             this.txtSatLocErr1.EditValue = TestData.SatLocErr;
             this.txtEphVelErr1.EditValue = TestData.EphVelErr;
             this.txtFu1.EditValue = MBfu * 1e-6;
         }
         private void btnOK_Click(object sender, EventArgs e)
+        {
+            mapControl1.ClearMap();
+            var (listSat, data) = GdopHelper.GdopSingleSatDRef(
+                             txtTleLeo1.Text, txtCapTime1.DateTime, txtCapTime2.DateTime, txtCapTime3.DateTime, Convert.ToDouble(txtDfoErr1.Text), Convert.ToDouble(txtSatLocErr1.Text), Convert.ToDouble(txtEphVelErr1.Text), Convert.ToDouble(txtFu1.Text) * 1e6);
+            if (data == null)
+            {
+                return;
+            }
+            if (listSat != null)//画卫星
+            {
+                foreach (var sat in listSat)
+                {
+                    mapControl1.Invoke(new Action(() =>
+                    {
+                        string satCode = sat.SatCode == null ? "未知" : sat.SatCode.ToString();
+                        mapControl1.DrawFixedImg("sat", sat.SatLat, sat.SatLon, DxHelper.SvgHelper.CreateSat(), new Size(32, 32), $"卫星编号:{satCode}\r\n轨道经度:{sat.SatLon}°\r\n轨道纬度:{sat.SatLat}°");
+                    }));
+                }
+            }
+            foreach (var errLins in data)//画GDOP
+            {
+                foreach (var line in errLins.MapLines)
+                {
+                    var newLine = SampleDots(line);
+                    mapControl1.Invoke(new Action(() =>
+                    {
+                        var mapLines = newLine.Line.Select(p => (errLins.ErrDistanceKm, p.Lon, p.Lat));
+                        mapControl1.DrawGdopLine(mapLines);
+                    }));
+                }
+            }
+        }
+        public XdCxRhDW.App.DTO.MapLine SampleDots(XdCxRhDW.App.DTO.MapLine line)
+        {
+            var dots = line.Line;
+            if (dots.Count < 30) return line;
+            var tmp = dots.Count / 30;
+            var newLine = new XdCxRhDW.App.DTO.MapLine();
+            for (int i = 0; i < dots.Count; i += tmp)
+            {
+                newLine.Line.Add(dots[i]);
+            }
+            if (!newLine.Line.Contains(dots.Last()))
+                newLine.Line.Add(dots.Last());
+            return newLine;
+        }
+        private void btnClose_Click(object sender, EventArgs e)
         {
             PopupHelper.HidePopup(this);
         }

+ 60 - 2
XzXdDw.App/UserControl/X2D1GDOPParam.cs

@@ -1,4 +1,5 @@
 using DevExpress.XtraEditors;
+using DevExpress.XtraMap;
 using DxHelper;
 using ExtensionsDev;
 using System;
@@ -12,12 +13,13 @@ using System.Threading.Tasks;
 using System.Windows.Forms;
 using XzXdDw.App;
 using XzXdDw.App.Model;
-
+using XzXdDw.App.Api.星地GDOP误差椭圆;
 namespace XdCxRhDW.App.UserControl
 {
     public partial class X2D1GDOPParam : DevExpress.XtraEditors.XtraUserControl
     {
-        public GDOP星地两星一地接口 Model=> new GDOP星地两星一地接口()
+        public MapControl mapControl1;
+        public GDOP星地两星一地接口 Model => new GDOP星地两星一地接口()
         {
             TleMain = txtTleMain.Text.Trim(),
             TleAdja = txtTleAdja.Text.Trim(),
@@ -53,6 +55,62 @@ namespace XdCxRhDW.App.UserControl
         }
 
         private void btnOK_Click(object sender, EventArgs e)
+        {
+            mapControl1.ClearMap();
+            var (listSat, data) = GdopHelper.Gdop2Sat1DRef(new double[] { Model.StationLon, Model.StationLat },
+                              new double[] { Model.RefLon, Model.RefLat }, Model.TleMain, Model.TleAdja, Model.CapTime, Model.DtousErr, Model.SatLocErr);
+            if (data == null)
+            {
+                return;
+            }
+            if (listSat != null)//画卫星
+            {
+                foreach (var sat in listSat)
+                {
+                    mapControl1.Invoke(new Action(() =>
+                    {
+                        string satCode = sat.SatCode == null ? "未知" : sat.SatCode.ToString();
+                        mapControl1.DrawFixedImg("sat", sat.SatLat, sat.SatLon, DxHelper.SvgHelper.CreateSat(), new Size(32, 32), $"卫星编号:{satCode}\r\n轨道经度:{sat.SatLon}°\r\n轨道纬度:{sat.SatLat}°");
+                    }));
+                }
+            }
+            if ((Model.StationLon >= 180 || Model.StationLon <= 180) && Model.StationLat >= -90 || Model.StationLat <= 90)//画天线
+            {
+                mapControl1.Invoke(new Action(() =>
+                {
+                    mapControl1.DrawFixedImg("cdb", Model.StationLat, Model.StationLon, SvgHelper.LoadFromFile("Image\\tx.svg"), new Size(32, 32), $"超短站经度:{Model.StationLon}°\r\n超短站纬度:{Model.StationLat}°");
+                }));
+            }
+            foreach (var errLins in data)//画GDOP
+            {
+                foreach (var line in errLins.MapLines)
+                {
+                    var newLine = SampleDots(line);
+                    mapControl1.Invoke(new Action(() =>
+                    {
+                        var mapLines = newLine.Line.Select(p => (errLins.ErrDistanceKm, p.Lon, p.Lat));
+                        mapControl1.DrawGdopLine(mapLines);
+                    }));
+                }
+            }
+        }
+
+        public DTO.MapLine SampleDots(DTO.MapLine line)
+        {
+            var dots = line.Line;
+            if (dots.Count < 30) return line;
+            var tmp = dots.Count / 30;
+            var newLine = new DTO.MapLine();
+            for (int i = 0; i < dots.Count; i += tmp)
+            {
+                newLine.Line.Add(dots[i]);
+            }
+            if (!newLine.Line.Contains(dots.Last()))
+                newLine.Line.Add(dots.Last());
+            return newLine;
+        }
+
+        private void btnClose_Click(object sender, EventArgs e)
         {
             PopupHelper.HidePopup(this);
         }

+ 136 - 117
XzXdDw.App/UserControl/XZGDOPParam .Designer.cs

@@ -28,6 +28,11 @@
         /// </summary>
         private void InitializeComponent()
         {
+            DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions6 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject21 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject22 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject23 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject24 = new DevExpress.Utils.SerializableAppearanceObject();
             DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions7 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject25 = new DevExpress.Utils.SerializableAppearanceObject();
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject26 = new DevExpress.Utils.SerializableAppearanceObject();
@@ -53,11 +58,6 @@
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject14 = new DevExpress.Utils.SerializableAppearanceObject();
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject15 = new DevExpress.Utils.SerializableAppearanceObject();
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject16 = new DevExpress.Utils.SerializableAppearanceObject();
-            DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions5 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
-            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject17 = new DevExpress.Utils.SerializableAppearanceObject();
-            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject18 = new DevExpress.Utils.SerializableAppearanceObject();
-            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject19 = new DevExpress.Utils.SerializableAppearanceObject();
-            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject20 = new DevExpress.Utils.SerializableAppearanceObject();
             this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
             this.btnOK = new DevExpress.XtraEditors.SimpleButton();
             this.txtCapTime = new DevExpress.XtraEditors.DateEdit();
@@ -79,13 +79,15 @@
             this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
             this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
             this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
-            this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
             this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
             this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem();
             this.layoutControlItem14 = new DevExpress.XtraLayout.LayoutControlItem();
             this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
             this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
             this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+            this.btnClose = new DevExpress.XtraEditors.SimpleButton();
+            this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
             this.layoutControl1.SuspendLayout();
             ((System.ComponentModel.ISupportInitialize)(this.txtCapTime.Properties)).BeginInit();
@@ -108,13 +110,14 @@
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
-            ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
             this.SuspendLayout();
             // 
             // layoutControl1
@@ -130,22 +133,23 @@
             this.layoutControl1.Controls.Add(this.txtEphVelErr1);
             this.layoutControl1.Controls.Add(this.txtFu1);
             this.layoutControl1.Controls.Add(this.txtFu2);
+            this.layoutControl1.Controls.Add(this.btnClose);
             this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
             this.layoutControl1.Location = new System.Drawing.Point(0, 0);
-            this.layoutControl1.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
+            this.layoutControl1.Margin = new System.Windows.Forms.Padding(6, 5, 6, 5);
             this.layoutControl1.Name = "layoutControl1";
             this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(993, 379, 650, 400);
             this.layoutControl1.Root = this.Root;
-            this.layoutControl1.Size = new System.Drawing.Size(345, 557);
+            this.layoutControl1.Size = new System.Drawing.Size(493, 875);
             this.layoutControl1.TabIndex = 0;
             this.layoutControl1.Text = "layoutControl1";
             // 
             // btnOK
             // 
-            this.btnOK.Location = new System.Drawing.Point(174, 272);
-            this.btnOK.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
+            this.btnOK.Location = new System.Drawing.Point(249, 408);
+            this.btnOK.Margin = new System.Windows.Forms.Padding(6, 5, 6, 5);
             this.btnOK.Name = "btnOK";
-            this.btnOK.Size = new System.Drawing.Size(169, 22);
+            this.btnOK.Size = new System.Drawing.Size(241, 32);
             this.btnOK.StyleController = this.layoutControl1;
             this.btnOK.TabIndex = 12;
             this.btnOK.Text = "确定";
@@ -154,30 +158,28 @@
             // txtCapTime
             // 
             this.txtCapTime.EditValue = null;
-            this.txtCapTime.Location = new System.Drawing.Point(2, 108);
-            this.txtCapTime.Margin = new System.Windows.Forms.Padding(2);
-            this.txtCapTime.MaximumSize = new System.Drawing.Size(0, 22);
-            this.txtCapTime.MinimumSize = new System.Drawing.Size(0, 22);
+            this.txtCapTime.Location = new System.Drawing.Point(2, 161);
+            this.txtCapTime.MaximumSize = new System.Drawing.Size(0, 35);
+            this.txtCapTime.MinimumSize = new System.Drawing.Size(0, 35);
             this.txtCapTime.Name = "txtCapTime";
             this.txtCapTime.Properties.AutoHeight = false;
             this.txtCapTime.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
             new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
             this.txtCapTime.Properties.CalendarTimeProperties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
             new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
-            this.txtCapTime.Size = new System.Drawing.Size(168, 22);
+            this.txtCapTime.Size = new System.Drawing.Size(242, 35);
             this.txtCapTime.StyleController = this.layoutControl1;
             this.txtCapTime.TabIndex = 8;
             // 
             // txtRefLocation1
             // 
             this.txtRefLocation1.EditValue = "";
-            this.txtRefLocation1.Location = new System.Drawing.Point(174, 108);
-            this.txtRefLocation1.Margin = new System.Windows.Forms.Padding(2);
-            this.txtRefLocation1.MaximumSize = new System.Drawing.Size(0, 22);
-            this.txtRefLocation1.MinimumSize = new System.Drawing.Size(0, 22);
+            this.txtRefLocation1.Location = new System.Drawing.Point(248, 161);
+            this.txtRefLocation1.MaximumSize = new System.Drawing.Size(0, 35);
+            this.txtRefLocation1.MinimumSize = new System.Drawing.Size(0, 35);
             this.txtRefLocation1.Name = "txtRefLocation1";
             this.txtRefLocation1.Properties.AutoHeight = false;
-            this.txtRefLocation1.Size = new System.Drawing.Size(169, 22);
+            this.txtRefLocation1.Size = new System.Drawing.Size(243, 35);
             this.txtRefLocation1.StyleController = this.layoutControl1;
             this.txtRefLocation1.TabIndex = 10;
             this.txtRefLocation1.ToolTip = "经度纬度之间用英文逗号隔开";
@@ -185,10 +187,9 @@
             // txtTleLeo1
             // 
             this.txtTleLeo1.EditValue = "";
-            this.txtTleLeo1.Location = new System.Drawing.Point(2, 20);
-            this.txtTleLeo1.Margin = new System.Windows.Forms.Padding(2);
-            this.txtTleLeo1.MaximumSize = new System.Drawing.Size(0, 22);
-            this.txtTleLeo1.MinimumSize = new System.Drawing.Size(0, 22);
+            this.txtTleLeo1.Location = new System.Drawing.Point(2, 29);
+            this.txtTleLeo1.MaximumSize = new System.Drawing.Size(0, 35);
+            this.txtTleLeo1.MinimumSize = new System.Drawing.Size(0, 35);
             this.txtTleLeo1.Name = "txtTleLeo1";
             this.txtTleLeo1.Properties.AutoHeight = false;
             this.txtTleLeo1.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
@@ -196,26 +197,26 @@
             this.txtTleLeo1.Properties.NullText = "";
             this.txtTleLeo1.Properties.PopupSizeable = false;
             this.txtTleLeo1.Properties.PopupView = this.searchLookUpEdit1View;
-            this.txtTleLeo1.Size = new System.Drawing.Size(341, 22);
+            this.txtTleLeo1.Size = new System.Drawing.Size(489, 35);
             this.txtTleLeo1.StyleController = this.layoutControl1;
             this.txtTleLeo1.TabIndex = 4;
             this.txtTleLeo1.ToolTip = "填写卫星的双行根数";
             // 
             // searchLookUpEdit1View
             // 
+            this.searchLookUpEdit1View.DetailHeight = 550;
             this.searchLookUpEdit1View.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus;
             this.searchLookUpEdit1View.Name = "searchLookUpEdit1View";
-            this.searchLookUpEdit1View.OptionsEditForm.PopupEditFormWidth = 430;
+            this.searchLookUpEdit1View.OptionsEditForm.PopupEditFormWidth = 614;
             this.searchLookUpEdit1View.OptionsSelection.EnableAppearanceFocusedCell = false;
             this.searchLookUpEdit1View.OptionsView.ShowGroupPanel = false;
             // 
             // txtTleLeo2
             // 
             this.txtTleLeo2.EditValue = "";
-            this.txtTleLeo2.Location = new System.Drawing.Point(2, 64);
-            this.txtTleLeo2.Margin = new System.Windows.Forms.Padding(2);
-            this.txtTleLeo2.MaximumSize = new System.Drawing.Size(0, 22);
-            this.txtTleLeo2.MinimumSize = new System.Drawing.Size(0, 22);
+            this.txtTleLeo2.Location = new System.Drawing.Point(2, 95);
+            this.txtTleLeo2.MaximumSize = new System.Drawing.Size(0, 35);
+            this.txtTleLeo2.MinimumSize = new System.Drawing.Size(0, 35);
             this.txtTleLeo2.Name = "txtTleLeo2";
             this.txtTleLeo2.Properties.AutoHeight = false;
             this.txtTleLeo2.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
@@ -223,31 +224,31 @@
             this.txtTleLeo2.Properties.NullText = "";
             this.txtTleLeo2.Properties.PopupSizeable = false;
             this.txtTleLeo2.Properties.PopupView = this.gridView1;
-            this.txtTleLeo2.Size = new System.Drawing.Size(341, 22);
+            this.txtTleLeo2.Size = new System.Drawing.Size(489, 35);
             this.txtTleLeo2.StyleController = this.layoutControl1;
             this.txtTleLeo2.TabIndex = 5;
             this.txtTleLeo2.ToolTip = "填写卫星的双行根数";
             // 
             // gridView1
             // 
+            this.gridView1.DetailHeight = 550;
             this.gridView1.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus;
             this.gridView1.Name = "gridView1";
-            this.gridView1.OptionsEditForm.PopupEditFormWidth = 430;
+            this.gridView1.OptionsEditForm.PopupEditFormWidth = 614;
             this.gridView1.OptionsSelection.EnableAppearanceFocusedCell = false;
             this.gridView1.OptionsView.ShowGroupPanel = false;
             // 
             // txtDtousErr1
             // 
             this.txtDtousErr1.EditValue = "";
-            this.txtDtousErr1.Location = new System.Drawing.Point(2, 152);
-            this.txtDtousErr1.Margin = new System.Windows.Forms.Padding(2);
-            this.txtDtousErr1.MaximumSize = new System.Drawing.Size(0, 22);
-            this.txtDtousErr1.MinimumSize = new System.Drawing.Size(0, 22);
+            this.txtDtousErr1.Location = new System.Drawing.Point(2, 227);
+            this.txtDtousErr1.MaximumSize = new System.Drawing.Size(0, 35);
+            this.txtDtousErr1.MinimumSize = new System.Drawing.Size(0, 35);
             this.txtDtousErr1.Name = "txtDtousErr1";
             this.txtDtousErr1.Properties.AutoHeight = false;
             this.txtDtousErr1.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
-            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "us", -1, false, true, false, editorButtonImageOptions7, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject25, serializableAppearanceObject26, serializableAppearanceObject27, serializableAppearanceObject28, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
-            this.txtDtousErr1.Size = new System.Drawing.Size(168, 22);
+            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "us", -1, false, true, false, editorButtonImageOptions6, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject21, serializableAppearanceObject22, serializableAppearanceObject23, serializableAppearanceObject24, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
+            this.txtDtousErr1.Size = new System.Drawing.Size(242, 35);
             this.txtDtousErr1.StyleController = this.layoutControl1;
             this.txtDtousErr1.TabIndex = 6;
             this.txtDtousErr1.ToolTip = "ECEF坐标X";
@@ -255,64 +256,59 @@
             // txtSatLocErr1
             // 
             this.txtSatLocErr1.EditValue = "";
-            this.txtSatLocErr1.Location = new System.Drawing.Point(2, 196);
-            this.txtSatLocErr1.Margin = new System.Windows.Forms.Padding(2);
-            this.txtSatLocErr1.MaximumSize = new System.Drawing.Size(0, 22);
-            this.txtSatLocErr1.MinimumSize = new System.Drawing.Size(0, 22);
+            this.txtSatLocErr1.Location = new System.Drawing.Point(2, 293);
+            this.txtSatLocErr1.MaximumSize = new System.Drawing.Size(0, 35);
+            this.txtSatLocErr1.MinimumSize = new System.Drawing.Size(0, 35);
             this.txtSatLocErr1.Name = "txtSatLocErr1";
             this.txtSatLocErr1.Properties.AutoHeight = false;
             this.txtSatLocErr1.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
-            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "m", -1, false, true, false, editorButtonImageOptions1, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject1, serializableAppearanceObject2, serializableAppearanceObject3, serializableAppearanceObject4, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
-            this.txtSatLocErr1.Size = new System.Drawing.Size(168, 22);
+            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "m", -1, false, true, false, editorButtonImageOptions7, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject25, serializableAppearanceObject26, serializableAppearanceObject27, serializableAppearanceObject28, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
+            this.txtSatLocErr1.Size = new System.Drawing.Size(242, 35);
             this.txtSatLocErr1.StyleController = this.layoutControl1;
             this.txtSatLocErr1.TabIndex = 6;
             this.txtSatLocErr1.ToolTip = "ECEF坐标X";
             // 
             // txtDfoErr1
             // 
-            this.txtDfoErr1.Location = new System.Drawing.Point(174, 152);
-            this.txtDfoErr1.Margin = new System.Windows.Forms.Padding(2);
-            this.txtDfoErr1.MaximumSize = new System.Drawing.Size(0, 22);
-            this.txtDfoErr1.MinimumSize = new System.Drawing.Size(0, 22);
+            this.txtDfoErr1.Location = new System.Drawing.Point(248, 227);
+            this.txtDfoErr1.MaximumSize = new System.Drawing.Size(0, 35);
+            this.txtDfoErr1.MinimumSize = new System.Drawing.Size(0, 35);
             this.txtDfoErr1.Name = "txtDfoErr1";
             this.txtDfoErr1.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
-            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "Hz", -1, false, true, false, editorButtonImageOptions2, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject5, serializableAppearanceObject6, serializableAppearanceObject7, serializableAppearanceObject8, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
-            this.txtDfoErr1.Size = new System.Drawing.Size(169, 22);
+            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "Hz", -1, false, true, false, editorButtonImageOptions1, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject1, serializableAppearanceObject2, serializableAppearanceObject3, serializableAppearanceObject4, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
+            this.txtDfoErr1.Size = new System.Drawing.Size(243, 35);
             this.txtDfoErr1.StyleController = this.layoutControl1;
             this.txtDfoErr1.TabIndex = 13;
             // 
             // txtEphVelErr1
             // 
-            this.txtEphVelErr1.Location = new System.Drawing.Point(174, 196);
-            this.txtEphVelErr1.Margin = new System.Windows.Forms.Padding(2);
-            this.txtEphVelErr1.MaximumSize = new System.Drawing.Size(0, 22);
-            this.txtEphVelErr1.MinimumSize = new System.Drawing.Size(0, 22);
+            this.txtEphVelErr1.Location = new System.Drawing.Point(248, 293);
+            this.txtEphVelErr1.MaximumSize = new System.Drawing.Size(0, 35);
+            this.txtEphVelErr1.MinimumSize = new System.Drawing.Size(0, 35);
             this.txtEphVelErr1.Name = "txtEphVelErr1";
             this.txtEphVelErr1.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
-            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "m/s", -1, false, true, false, editorButtonImageOptions3, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject9, serializableAppearanceObject10, serializableAppearanceObject11, serializableAppearanceObject12, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
-            this.txtEphVelErr1.Size = new System.Drawing.Size(169, 22);
+            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "m/s", -1, false, true, false, editorButtonImageOptions2, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject5, serializableAppearanceObject6, serializableAppearanceObject7, serializableAppearanceObject8, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
+            this.txtEphVelErr1.Size = new System.Drawing.Size(243, 35);
             this.txtEphVelErr1.StyleController = this.layoutControl1;
             this.txtEphVelErr1.TabIndex = 14;
             // 
             // txtFu1
             // 
-            this.txtFu1.Location = new System.Drawing.Point(2, 240);
-            this.txtFu1.Margin = new System.Windows.Forms.Padding(2);
+            this.txtFu1.Location = new System.Drawing.Point(2, 359);
             this.txtFu1.Name = "txtFu1";
             this.txtFu1.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
-            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "MHz", -1, false, true, false, editorButtonImageOptions4, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject13, serializableAppearanceObject14, serializableAppearanceObject15, serializableAppearanceObject16, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
-            this.txtFu1.Size = new System.Drawing.Size(168, 22);
+            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "MHz", -1, false, true, false, editorButtonImageOptions3, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject9, serializableAppearanceObject10, serializableAppearanceObject11, serializableAppearanceObject12, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
+            this.txtFu1.Size = new System.Drawing.Size(242, 34);
             this.txtFu1.StyleController = this.layoutControl1;
             this.txtFu1.TabIndex = 15;
             // 
             // txtFu2
             // 
-            this.txtFu2.Location = new System.Drawing.Point(174, 240);
-            this.txtFu2.Margin = new System.Windows.Forms.Padding(2);
+            this.txtFu2.Location = new System.Drawing.Point(248, 359);
             this.txtFu2.Name = "txtFu2";
             this.txtFu2.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
-            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "MHz", -1, false, true, false, editorButtonImageOptions5, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject17, serializableAppearanceObject18, serializableAppearanceObject19, serializableAppearanceObject20, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
-            this.txtFu2.Size = new System.Drawing.Size(169, 22);
+            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "MHz", -1, false, true, false, editorButtonImageOptions4, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject13, serializableAppearanceObject14, serializableAppearanceObject15, serializableAppearanceObject16, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
+            this.txtFu2.Size = new System.Drawing.Size(243, 34);
             this.txtFu2.StyleController = this.layoutControl1;
             this.txtFu2.TabIndex = 16;
             // 
@@ -324,17 +320,18 @@
             this.layoutControlItem9,
             this.layoutControlItem11,
             this.layoutControlItem5,
-            this.layoutControlItem1,
             this.emptySpaceItem1,
-            this.emptySpaceItem2,
             this.layoutControlItem4,
             this.layoutControlItem10,
             this.layoutControlItem14,
             this.layoutControlItem6,
             this.layoutControlItem7,
-            this.layoutControlItem12});
+            this.layoutControlItem12,
+            this.layoutControlItem1,
+            this.emptySpaceItem2,
+            this.layoutControlItem2});
             this.Root.Name = "Root";
-            this.Root.Size = new System.Drawing.Size(345, 557);
+            this.Root.Size = new System.Drawing.Size(493, 875);
             this.Root.TextVisible = false;
             // 
             // layoutControlItem8
@@ -343,144 +340,163 @@
             this.layoutControlItem8.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
             this.layoutControlItem8.Location = new System.Drawing.Point(0, 0);
             this.layoutControlItem8.Name = "layoutControlItem8";
-            this.layoutControlItem8.Size = new System.Drawing.Size(345, 44);
+            this.layoutControlItem8.Size = new System.Drawing.Size(493, 66);
             this.layoutControlItem8.Text = "主星星历";
             this.layoutControlItem8.TextLocation = DevExpress.Utils.Locations.Top;
-            this.layoutControlItem8.TextSize = new System.Drawing.Size(72, 14);
+            this.layoutControlItem8.TextSize = new System.Drawing.Size(108, 22);
             // 
             // layoutControlItem9
             // 
             this.layoutControlItem9.Control = this.txtTleLeo2;
             this.layoutControlItem9.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
-            this.layoutControlItem9.Location = new System.Drawing.Point(0, 44);
+            this.layoutControlItem9.Location = new System.Drawing.Point(0, 66);
             this.layoutControlItem9.Name = "layoutControlItem9";
-            this.layoutControlItem9.Size = new System.Drawing.Size(345, 44);
+            this.layoutControlItem9.Size = new System.Drawing.Size(493, 66);
             this.layoutControlItem9.Text = "邻星星历";
             this.layoutControlItem9.TextLocation = DevExpress.Utils.Locations.Top;
-            this.layoutControlItem9.TextSize = new System.Drawing.Size(72, 14);
+            this.layoutControlItem9.TextSize = new System.Drawing.Size(108, 22);
             // 
             // layoutControlItem11
             // 
             this.layoutControlItem11.Control = this.txtCapTime;
             this.layoutControlItem11.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
-            this.layoutControlItem11.Location = new System.Drawing.Point(0, 88);
+            this.layoutControlItem11.Location = new System.Drawing.Point(0, 132);
             this.layoutControlItem11.Name = "layoutControlItem11";
-            this.layoutControlItem11.Size = new System.Drawing.Size(172, 44);
+            this.layoutControlItem11.Size = new System.Drawing.Size(246, 66);
             this.layoutControlItem11.Text = "采集时刻";
             this.layoutControlItem11.TextLocation = DevExpress.Utils.Locations.Top;
-            this.layoutControlItem11.TextSize = new System.Drawing.Size(72, 14);
+            this.layoutControlItem11.TextSize = new System.Drawing.Size(108, 22);
             // 
             // layoutControlItem5
             // 
             this.layoutControlItem5.Control = this.txtSatLocErr1;
             this.layoutControlItem5.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
             this.layoutControlItem5.CustomizationFormText = "低轨卫星X";
-            this.layoutControlItem5.Location = new System.Drawing.Point(0, 176);
+            this.layoutControlItem5.Location = new System.Drawing.Point(0, 264);
             this.layoutControlItem5.Name = "layoutControlItem5";
-            this.layoutControlItem5.Size = new System.Drawing.Size(172, 44);
+            this.layoutControlItem5.Size = new System.Drawing.Size(246, 66);
             this.layoutControlItem5.Text = "星历位置误差";
             this.layoutControlItem5.TextLocation = DevExpress.Utils.Locations.Top;
-            this.layoutControlItem5.TextSize = new System.Drawing.Size(72, 14);
+            this.layoutControlItem5.TextSize = new System.Drawing.Size(108, 22);
             // 
             // layoutControlItem1
             // 
             this.layoutControlItem1.Control = this.btnOK;
-            this.layoutControlItem1.Location = new System.Drawing.Point(172, 264);
+            this.layoutControlItem1.Location = new System.Drawing.Point(246, 395);
             this.layoutControlItem1.Name = "layoutControlItem1";
-            this.layoutControlItem1.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 8, 2);
-            this.layoutControlItem1.Size = new System.Drawing.Size(173, 32);
+            this.layoutControlItem1.Padding = new DevExpress.XtraLayout.Utils.Padding(3, 3, 13, 3);
+            this.layoutControlItem1.Size = new System.Drawing.Size(247, 48);
             this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
             this.layoutControlItem1.TextVisible = false;
             // 
             // emptySpaceItem1
             // 
             this.emptySpaceItem1.AllowHotTrack = false;
-            this.emptySpaceItem1.Location = new System.Drawing.Point(0, 296);
+            this.emptySpaceItem1.Location = new System.Drawing.Point(0, 443);
             this.emptySpaceItem1.Name = "emptySpaceItem1";
-            this.emptySpaceItem1.Size = new System.Drawing.Size(345, 261);
+            this.emptySpaceItem1.Size = new System.Drawing.Size(493, 432);
             this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
             // 
-            // emptySpaceItem2
-            // 
-            this.emptySpaceItem2.AllowHotTrack = false;
-            this.emptySpaceItem2.Location = new System.Drawing.Point(0, 264);
-            this.emptySpaceItem2.Name = "emptySpaceItem2";
-            this.emptySpaceItem2.Size = new System.Drawing.Size(172, 32);
-            this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0);
-            // 
             // layoutControlItem4
             // 
             this.layoutControlItem4.Control = this.txtDtousErr1;
             this.layoutControlItem4.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
             this.layoutControlItem4.CustomizationFormText = "低轨卫星X";
-            this.layoutControlItem4.Location = new System.Drawing.Point(0, 132);
+            this.layoutControlItem4.Location = new System.Drawing.Point(0, 198);
             this.layoutControlItem4.Name = "layoutControlItem4";
-            this.layoutControlItem4.Size = new System.Drawing.Size(172, 44);
+            this.layoutControlItem4.Size = new System.Drawing.Size(246, 66);
             this.layoutControlItem4.Text = "时差误差";
             this.layoutControlItem4.TextLocation = DevExpress.Utils.Locations.Top;
-            this.layoutControlItem4.TextSize = new System.Drawing.Size(72, 14);
+            this.layoutControlItem4.TextSize = new System.Drawing.Size(108, 22);
             // 
             // layoutControlItem10
             // 
             this.layoutControlItem10.Control = this.txtFu1;
             this.layoutControlItem10.CustomizationFormText = "目标上行频点";
-            this.layoutControlItem10.Location = new System.Drawing.Point(0, 220);
+            this.layoutControlItem10.Location = new System.Drawing.Point(0, 330);
             this.layoutControlItem10.Name = "layoutControlItem10";
-            this.layoutControlItem10.Size = new System.Drawing.Size(172, 44);
+            this.layoutControlItem10.Size = new System.Drawing.Size(246, 65);
             this.layoutControlItem10.Text = "目标上行频点";
             this.layoutControlItem10.TextLocation = DevExpress.Utils.Locations.Top;
-            this.layoutControlItem10.TextSize = new System.Drawing.Size(72, 14);
+            this.layoutControlItem10.TextSize = new System.Drawing.Size(108, 22);
             // 
             // layoutControlItem14
             // 
             this.layoutControlItem14.Control = this.txtRefLocation1;
             this.layoutControlItem14.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
-            this.layoutControlItem14.Location = new System.Drawing.Point(172, 88);
+            this.layoutControlItem14.Location = new System.Drawing.Point(246, 132);
             this.layoutControlItem14.Name = "layoutControlItem14";
-            this.layoutControlItem14.Size = new System.Drawing.Size(173, 44);
+            this.layoutControlItem14.Size = new System.Drawing.Size(247, 66);
             this.layoutControlItem14.Text = "参考站经纬度";
             this.layoutControlItem14.TextLocation = DevExpress.Utils.Locations.Top;
-            this.layoutControlItem14.TextSize = new System.Drawing.Size(72, 14);
+            this.layoutControlItem14.TextSize = new System.Drawing.Size(108, 22);
             // 
             // layoutControlItem6
             // 
             this.layoutControlItem6.Control = this.txtDfoErr1;
-            this.layoutControlItem6.Location = new System.Drawing.Point(172, 132);
+            this.layoutControlItem6.Location = new System.Drawing.Point(246, 198);
             this.layoutControlItem6.Name = "layoutControlItem6";
-            this.layoutControlItem6.Size = new System.Drawing.Size(173, 44);
+            this.layoutControlItem6.Size = new System.Drawing.Size(247, 66);
             this.layoutControlItem6.Text = "频差误差";
             this.layoutControlItem6.TextLocation = DevExpress.Utils.Locations.Top;
-            this.layoutControlItem6.TextSize = new System.Drawing.Size(72, 14);
+            this.layoutControlItem6.TextSize = new System.Drawing.Size(108, 22);
             // 
             // layoutControlItem7
             // 
             this.layoutControlItem7.Control = this.txtEphVelErr1;
-            this.layoutControlItem7.Location = new System.Drawing.Point(172, 176);
+            this.layoutControlItem7.Location = new System.Drawing.Point(246, 264);
             this.layoutControlItem7.Name = "layoutControlItem7";
-            this.layoutControlItem7.Size = new System.Drawing.Size(173, 44);
+            this.layoutControlItem7.Size = new System.Drawing.Size(247, 66);
             this.layoutControlItem7.Text = "星历速度误差";
             this.layoutControlItem7.TextLocation = DevExpress.Utils.Locations.Top;
-            this.layoutControlItem7.TextSize = new System.Drawing.Size(72, 14);
+            this.layoutControlItem7.TextSize = new System.Drawing.Size(108, 22);
             // 
             // layoutControlItem12
             // 
             this.layoutControlItem12.Control = this.txtFu2;
             this.layoutControlItem12.CustomizationFormText = "参考上行频点";
-            this.layoutControlItem12.Location = new System.Drawing.Point(172, 220);
+            this.layoutControlItem12.Location = new System.Drawing.Point(246, 330);
             this.layoutControlItem12.Name = "layoutControlItem12";
-            this.layoutControlItem12.Size = new System.Drawing.Size(173, 44);
+            this.layoutControlItem12.Size = new System.Drawing.Size(247, 65);
             this.layoutControlItem12.Text = "参考上行频点";
             this.layoutControlItem12.TextLocation = DevExpress.Utils.Locations.Top;
-            this.layoutControlItem12.TextSize = new System.Drawing.Size(72, 14);
+            this.layoutControlItem12.TextSize = new System.Drawing.Size(108, 22);
+            // 
+            // emptySpaceItem2
+            // 
+            this.emptySpaceItem2.AllowHotTrack = false;
+            this.emptySpaceItem2.Location = new System.Drawing.Point(0, 395);
+            this.emptySpaceItem2.Name = "emptySpaceItem2";
+            this.emptySpaceItem2.Size = new System.Drawing.Size(246, 12);
+            this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0);
+            // 
+            // btnClose
+            // 
+            this.btnClose.Location = new System.Drawing.Point(2, 409);
+            this.btnClose.Name = "btnClose";
+            this.btnClose.Size = new System.Drawing.Size(242, 32);
+            this.btnClose.StyleController = this.layoutControl1;
+            this.btnClose.TabIndex = 17;
+            this.btnClose.Text = "关闭";
+            this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
+            // 
+            // layoutControlItem2
+            // 
+            this.layoutControlItem2.Control = this.btnClose;
+            this.layoutControlItem2.Location = new System.Drawing.Point(0, 407);
+            this.layoutControlItem2.Name = "layoutControlItem2";
+            this.layoutControlItem2.Size = new System.Drawing.Size(246, 36);
+            this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+            this.layoutControlItem2.TextVisible = false;
             // 
             // XZGDOPParam
             // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+            this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 22F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             this.Controls.Add(this.layoutControl1);
-            this.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
+            this.Margin = new System.Windows.Forms.Padding(6, 5, 6, 5);
             this.Name = "XZGDOPParam";
-            this.Size = new System.Drawing.Size(345, 557);
+            this.Size = new System.Drawing.Size(493, 875);
             ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
             this.layoutControl1.ResumeLayout(false);
             ((System.ComponentModel.ISupportInitialize)(this.txtCapTime.Properties.CalendarTimeProperties)).EndInit();
@@ -503,13 +519,14 @@
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
-            ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
             this.ResumeLayout(false);
 
         }
@@ -534,7 +551,6 @@
         private DevExpress.XtraEditors.SimpleButton btnOK;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
         private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
-        private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
         private DevExpress.XtraEditors.ButtonEdit txtDfoErr1;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
         private DevExpress.XtraEditors.ButtonEdit txtEphVelErr1;
@@ -543,5 +559,8 @@
         private DevExpress.XtraEditors.ButtonEdit txtFu2;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12;
+        private DevExpress.XtraEditors.SimpleButton btnClose;
+        private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
     }
 }

+ 50 - 0
XzXdDw.App/UserControl/XZGDOPParam .cs

@@ -1,5 +1,6 @@
 using DevExpress.Mvvm.ModuleInjection.Native;
 using DevExpress.XtraEditors;
+using DevExpress.XtraMap;
 using DxHelper;
 using ExtensionsDev;
 using System;
@@ -12,12 +13,14 @@ using System.Text;
 using System.Threading.Tasks;
 using System.Windows.Forms;
 using XzXdDw.App;
+using XzXdDw.App.Api.星地GDOP误差椭圆;
 using XzXdDw.App.Model;
 
 namespace XdCxRhDW.App.UserControl
 {
     public partial class XZGDOPParam : DevExpress.XtraEditors.XtraUserControl
     {
+        public MapControl mapControl1;
         public GDOP星座协同接口 Model => new GDOP星座协同接口()
         {
             TleLeo1 = txtTleLeo1.Text.Trim(),
@@ -55,6 +58,53 @@ namespace XdCxRhDW.App.UserControl
 
 
         private void btnOK_Click(object sender, EventArgs e)
+        {
+            mapControl1.ClearMap();
+            var (listSat, data) = GdopHelper.GdopLeoTowSatDRef(
+                             new double[] { Model.RefLon, Model.RefLat }, Model.TleLeo1, Model.TleLeo2, Model.CapTime, Model.DtousErr, Model.DfoErr, Model.SatLocErr, Model.EphVelErr, Model.fu1, Model.fu2);
+            if (data == null)
+            {
+                return;
+            }
+            if (listSat != null)//画卫星
+            {
+                foreach (var sat in listSat)
+                {
+                    mapControl1.Invoke(new Action(() =>
+                    {
+                        string satCode = sat.SatCode == null ? "未知" : sat.SatCode.ToString();
+                        mapControl1.DrawFixedImg("sat", sat.SatLat, sat.SatLon, DxHelper.SvgHelper.CreateSat(), new Size(32, 32), $"卫星编号:{satCode}\r\n轨道经度:{sat.SatLon}°\r\n轨道纬度:{sat.SatLat}°");
+                    }));
+                }
+            }
+            foreach (var errLins in data)//画GDOP
+            {
+                foreach (var line in errLins.MapLines)
+                {
+                    var newLine = SampleDots(line);
+                    mapControl1.Invoke(new Action(() =>
+                    {
+                        var mapLines = newLine.Line.Select(p => (errLins.ErrDistanceKm, p.Lon, p.Lat));
+                        mapControl1.DrawGdopLine(mapLines);
+                    }));
+                }
+            }
+        }
+        public XdCxRhDW.App.DTO.MapLine SampleDots(XdCxRhDW.App.DTO.MapLine line)
+        {
+            var dots = line.Line;
+            if (dots.Count < 30) return line;
+            var tmp = dots.Count / 30;
+            var newLine = new XdCxRhDW.App.DTO.MapLine();
+            for (int i = 0; i < dots.Count; i += tmp)
+            {
+                newLine.Line.Add(dots[i]);
+            }
+            if (!newLine.Line.Contains(dots.Last()))
+                newLine.Line.Add(dots.Last());
+            return newLine;
+        }
+        private void btnClose_Click(object sender, EventArgs e)
         {
             PopupHelper.HidePopup(this);
         }

+ 3 - 0
XzXdDw.App/XzXdDw.App.csproj

@@ -607,6 +607,9 @@
     <Content Include="Image\Pos.svg">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
+    <Content Include="Image\tx.svg">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
     <Content Include="定位.ico" />
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

部分文件因文件數量過多而無法顯示