private void Update_PlotTrack_Data()
{
if (this.checkEnableDisplay.Checked == true)
{
// First clear all the data from the previous cycle.
if (DinamicOverlay.Markers.Count > 0)
{
DinamicOverlay.Markers.Clear();
}
// Now get the data since the last cycle and display it on the map
DynamicDisplayBuilder DP = new DynamicDisplayBuilder();
System.Collections.Generic.List<DynamicDisplayBuilder.TargetType> TargetList = new System.Collections.Generic.List<DynamicDisplayBuilder.TargetType>();
// Here hanlde display od live data
if (SharedData.bool_Listen_for_Data == true)
{
DynamicDisplayBuilder.GetDisplayData(false, out TargetList);
if (FirstCycleDisplayEnabled)
{
FirstCycleDisplayEnabled = false;
TargetList.Clear();
}
this.lblNumberofTargets.Text = TargetList.Count.ToString();
bool Build_Local_Display = comboBoxLiveDisplayMode.Text != "Google Earth";
bool Provide_To_Google_Earth = comboBoxLiveDisplayMode.Text != "Local";
Asterix_To_KML_Provider ASTX_TO_KML = new Asterix_To_KML_Provider();
try
{
foreach (DynamicDisplayBuilder.TargetType Target in TargetList)
{
if (Passes_Check_For_Flight_Level_Filter(Target.ModeC))
{
// If SSR code filtering is to be applied
if (this.checkBoxFilterBySSR.Checked == true && (this.textBoxSSRCode.Text.Length == 4))
{
if (Target.ModeA == this.textBoxSSRCode.Text)
{
Target.MyMarker.ToolTipMode = MarkerTooltipMode.Never;
Target.MyMarker.Position = new PointLatLng(Target.Lat, Target.Lon);
BuildDynamicLabelText(Target, ref Target.MyMarker);
SetLabelAttributes(ref Target.MyMarker);
if (Build_Local_Display)
DinamicOverlay.Markers.Add(Target.MyMarker);
if (Provide_To_Google_Earth)
ASTX_TO_KML.AddNewTarget(Target);
}
}
else // No SSR filter so just display all of them
{
Target.MyMarker.ToolTipMode = MarkerTooltipMode.Never;
Target.MyMarker.Position = new PointLatLng(Target.Lat, Target.Lon);
BuildDynamicLabelText(Target, ref Target.MyMarker);
SetLabelAttributes(ref Target.MyMarker);
if (Build_Local_Display)
DinamicOverlay.Markers.Add(Target.MyMarker);
if (Provide_To_Google_Earth)
ASTX_TO_KML.AddNewTarget(Target);
}
}
}
}
catch
{
}
Cursor.Position = new Point(Cursor.Position.X + 1, Cursor.Position.Y);
Cursor.Position = new Point(Cursor.Position.X - 1, Cursor.Position.Y);
// Check if there were any items, if so then tell KML to build the file
if (Provide_To_Google_Earth)
ASTX_TO_KML.BuildKML();
}
else // Here handle display of passive display (buffered data)
{
DynamicDisplayBuilder.GetDisplayData(true, out TargetList);
this.lblNumberofTargets.Text = TargetList.Count.ToString();
foreach (DynamicDisplayBuilder.TargetType Target in TargetList)
{
if (Passes_Check_For_Flight_Level_Filter(Target.ModeC))
{
// If SSR code filtering is to be applied
if (this.checkBoxFilterBySSR.Checked == true && (this.comboBoxSSRFilterBox.Items.Count > 0))
{
if (Target.ModeA == this.comboBoxSSRFilterBox.Items[SSR_Filter_Last_Index].ToString())
{
GMap.NET.WindowsForms.Markers.GMapMarkerCross MyMarker = new GMap.NET.WindowsForms.Markers.GMapMarkerCross(new PointLatLng(Target.Lat, Target.Lon));
MyMarker.ToolTipMode = MarkerTooltipMode.Always;
MyMarker.ToolTipText = BuildPassiveLabelText(Target);
SetLabelAttributes(ref MyMarker);
DinamicOverlay.Markers.Add(MyMarker);
}
}
else // No filter so just display all of them
{
GMap.NET.WindowsForms.Markers.GMapMarkerCross MyMarker = new GMap.NET.WindowsForms.Markers.GMapMarkerCross(new PointLatLng(Target.Lat, Target.Lon));
MyMarker.ToolTipMode = MarkerTooltipMode.Always;
MyMarker.ToolTipText = BuildPassiveLabelText(Target);
SetLabelAttributes(ref MyMarker);
DinamicOverlay.Markers.Add(MyMarker);
}
}
}
}
}
}