diff --git a/Demo.WindowsMobile/Forms/Transport.cs b/Demo.WindowsMobile/Forms/Transport.cs new file mode 100644 --- /dev/null +++ b/Demo.WindowsMobile/Forms/Transport.cs @@ -0,0 +1,147 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; +using GMap.NET; +using GMap.NET.WindowsForms; +using GMap.NET.WindowsForms.Markers; +using Demo.WindowsForms; +using System.Linq; +using System.IO; + +namespace Demo.WindowsMobile +{ + public partial class Transport : UserControl + { + MainForm Main; + int Count = 0; + + readonly List Bus = new List(); + readonly List Trolley = new List(); + + readonly List BusMarkers = new List(); + readonly List TrolleyMarkers = new List(); + + public Transport(MainForm main) + { + InitializeComponent(); + Main = main; + } + + private void checkBoxRefresh_CheckStateChanged(object sender, EventArgs e) + { + timerRefresh.Enabled = checkBoxRefresh.Checked; + labelstatus.Text = string.Empty; + Count = 0; + } + + private void checkBoxBus_CheckStateChanged(object sender, EventArgs e) + { + if(!checkBoxBus.Checked) + { + foreach(var b in BusMarkers) + { + Main.objects.Markers.Remove(b); + } + } + } + + private void checkBoxTrolley_CheckStateChanged(object sender, EventArgs e) + { + if(!checkBoxTrolley.Checked) + { + foreach(var b in TrolleyMarkers) + { + Main.objects.Markers.Remove(b); + } + } + } + + // update data + private void timerRefresh_Tick(object sender, EventArgs e) + { + timerRefresh.Enabled = false; + + try + { + DateTime tstart = DateTime.Now; + { + if(checkBoxBus.Checked) + { + foreach(var b in BusMarkers) + { + Main.objects.Markers.Remove(b); + } + + Stuff.GetVilniusTransportData(TransportType.Bus, textBoxBus.Text, Bus); + + foreach(var t in Bus) + { + if (textBoxBus.Text.Split(',').Contains(t.Line)) + { + var r = new GMapMarkerTransparent(new PointLatLng(t.Lat, t.Lng)); + { + r.ToolTipMode = MarkerTooltipMode.Always; + r.ToolTipText = "B " + t.Id + Environment.NewLine + t.Line + " @ " + t.Time; + r.Data = t; + } + Main.objects.Markers.Add(r); + BusMarkers.Add(r); + } + } + } + + if(checkBoxTrolley.Checked) + { + foreach(var b in TrolleyMarkers) + { + Main.objects.Markers.Remove(b); + } + + Stuff.GetVilniusTransportData(TransportType.TrolleyBus, textBoxTrolley.Text, Trolley); + + foreach(var t in Trolley) + { + if (textBoxTrolley.Text.Split(',').Contains(t.Line)) + { + var r = new GMapMarkerTransparent(new PointLatLng(t.Lat, t.Lng)); + { + r.ToolTipMode = MarkerTooltipMode.Always; + r.ToolTipText = "T " + t.Id + Environment.NewLine + t.Line + " @ " + t.Time; + r.Data = t; + } + Main.objects.Markers.Add(r); + TrolleyMarkers.Add(r); + } + } + } + } + labelstatus.Text = ++Count + " -> " + DateTime.Now.ToLongTimeString() + ", request: " + (DateTime.Now - tstart).TotalSeconds+ "s"; + } + catch(Exception ex) + { + labelstatus.Text = ex.ToString(); + } + timerRefresh.Enabled = checkBoxRefresh.Checked; + } + + private void button1_Click(object sender, EventArgs e) + { + labelstatus.Text = "Connecting manualy once..."; + labelstatus.Invalidate(); + timerRefresh_Tick(null, null); + Main.ZoomToFitMarkers(); + Main.menuItemGotoMap_Click(null, null); + } + } + + public class GMapMarkerTransparent : GMapMarkerTransparentGoogleGreen + { + public VehicleData Data; + + public GMapMarkerTransparent(PointLatLng p) + : base(p) + { + + } + } +}