فهرست منبع

修改画线为画点

wyq 1 سال پیش
والد
کامیت
227d839301
3فایلهای تغییر یافته به همراه39 افزوده شده و 5 حذف شده
  1. 33 0
      XzXdDw.App/ExtensionsDev/MapControlEx.cs
  2. 2 2
      XzXdDw.App/UserControl/CtrlPosXd.cs
  3. 4 3
      XzXdDw.App/UserControl/CtrlPosXz.cs

+ 33 - 0
XzXdDw.App/ExtensionsDev/MapControlEx.cs

@@ -35,6 +35,7 @@ using System.ComponentModel.DataAnnotations.Schema;
 using XzXdDw.App.Model;
 using DevExpress.XtraCharts.Native;
 using DevExpress.Utils.Extensions;
+using System.Windows.Ink;
 //using RHDW.Model;
 
 /// <summary>
@@ -1450,6 +1451,38 @@ public static class MapControlEx
         if (!polyLine.Points.Any()) return;
         innerData.mMapStorage.Items.Add(polyLine);
     }
+    public static void DrawDtoPonit(this MapControl ctrl, string title, IEnumerable<(double lon, double lat)> lines)
+    {
+        if (lines == null || !lines.Any()) return;
+        var innerData = ctrl.Tag as InnerData;
+
+        List<MapDot> list = new List<MapDot>();
+        var color = ColorHelper.GetColor(title);
+        for (int i = 0; i < lines.Count(); i++)
+        {
+            var p = lines.ElementAt(i);
+            if (p.lon < -180 || p.lon > 180) continue;
+            if (p.lon == 0 && p.lon == 0) continue;
+            var mapItem = new MapDot()
+            {
+                EnableHighlighting = DefaultBoolean.True,
+                EnableSelection = DefaultBoolean.False,
+                CanMove = false,
+                Visible = true,
+                IsHitTestVisible = true,
+                Fill = color,
+                Size = 4,
+                Tag = $"DrawPoint_{title}{lines.ElementAt(i).lon}",
+                Location = new GeoPoint(p.lat, p.lon),
+                ToolTipPattern= $"{title}",
+
+            };
+            list.Add(mapItem);
+        }
+      
+        if (!list.Any()) return;
+        innerData.mMapStorage.Items.AddRange(list);
+    }
     public static void DrawErrEllipse(this MapControl ctrl, double r1, double r2, IEnumerable<(double lon, double lat)> lines)
     {
         if (lines == null || !lines.Any()) return;

+ 2 - 2
XzXdDw.App/UserControl/CtrlPosXd.cs

@@ -374,7 +374,7 @@ namespace XzXdDw.App.UserControl
                 dtoLineXd.PosLon = item.PosLon;
                 dtoLineXd.PosLat = item.PosLat;
                 var xdDtoLine = DrawDtoLineHelper.HandleDtoLineXd(dtoLineXd);
-                mapControl1.DrawDtoLine($"星地[{listSat.FirstOrDefault(m => m.ID == satTx.ID)?.Sat},{listSat.FirstOrDefault(m => m.ID == cdbTx.ID)?.Sat}]时差线", xdDtoLine);
+                mapControl1.DrawDtoPonit($"星地[{listSat.FirstOrDefault(m => m.ID == satTx.ID)?.Sat},{listSat.FirstOrDefault(m => m.ID == cdbTx.ID)?.Sat}]时差线", xdDtoLine);
 
                 DtoLineTwoStartOption twoStartOption = new DtoLineTwoStartOption();
                 twoStartOption.MsEph = new double[] { cg.MainX, cg.MainY, cg.MainZ, 0, 0, 0 };
@@ -387,7 +387,7 @@ namespace XzXdDw.App.UserControl
                 twoStartOption.PosLon = item.PosLon;
                 twoStartOption.PosLat = item.PosLat;
                 var tsDtoLine= DrawDtoLineHelper.HandleDtoLineXDTwoStart(twoStartOption);
-                mapControl1.DrawDtoLine($"双星[{listSat.FirstOrDefault(m => m.ID == satTx.ID)?.Sat},{listSat.FirstOrDefault(m => m.ID == satNTx.ID)?.Sat}]时差线", tsDtoLine);
+                mapControl1.DrawDtoPonit($"双星[{listSat.FirstOrDefault(m => m.ID == satTx.ID)?.Sat},{listSat.FirstOrDefault(m => m.ID == satNTx.ID)?.Sat}]时差线", tsDtoLine);
                
 
             }

+ 4 - 3
XzXdDw.App/UserControl/CtrlPosXz.cs

@@ -84,7 +84,8 @@ namespace XzXdDw.App.UserControl
                     })
                     .AddMenu("加载仿真数据", SvgHelper.LoadFromFile("Image\\LoadData.svg"), LoadTestData)
                      .AddMenu("绘制时差线", SvgHelper.LoadFromFile("Image\\DrawLine.svg"), DrawDtoLine)
-                       .AddMenu("绘制频差线", SvgHelper.LoadFromFile("Image\\DrawLine.svg"), DrawDfoLine)
+                     .AddMenu("绘制频差线", SvgHelper.LoadFromFile("Image\\DrawLine.svg"), DrawDfoLine)
+                     .AddMenu("绘制误差椭圆", SvgHelper.LoadFromFile("Image\\DrawLine.svg"), DrawDfoLine)
                     .AddMenu("停止加载", SvgHelper.LoadFromFile("Image\\Stop.svg"), () => stoped = true);
 
 
@@ -303,7 +304,7 @@ namespace XzXdDw.App.UserControl
                 twoStartOption.RefDto = ref_dto * 1e6;
 
                 var tsDtoLine = DrawDtoLineHelper.HandleDtoLineXZTwoStart(twoStartOption);
-                mapControl1.DrawDtoLine($"双星时差线", tsDtoLine);
+                mapControl1.DrawDtoPonit($"双星时差线", tsDtoLine);
 
 
             }
@@ -349,7 +350,7 @@ namespace XzXdDw.App.UserControl
                 twoStartOption.fu2 = fu2;
 
                 var tsDtoLine = DrawDtoLineHelper.HandleDfoLineXZTwoStart(twoStartOption);
-                mapControl1.DrawDtoLine($"双星频差线", tsDtoLine);
+                mapControl1.DrawDtoPonit($"双星频差线", tsDtoLine);
 
 
             }