public static void InitializeGraphicTracker(object map, object globe)
        {
            m_graphicTracker2D = new GraphicTrackerClass();
            m_graphicTracker2D.Initialize(map);

            m_graphicTracker3D = new GraphicTrackerClass();
            m_graphicTracker3D.Initialize(globe);
        }
        public void Init(IBasicMap mapOrGlobe)
        {
            System.Diagnostics.Trace.WriteLine("Init - Thread ID: " + System.Threading.Thread.CurrentThread.ManagedThreadId.ToString());

            if (mapOrGlobe == null)
            {
                return;
            }

            m_mapOrGlobe = mapOrGlobe;

            try
            {
                //initialize the tables (main table as well as the symbols table)
                InitializeTables();

                //get the location list from a featureclass (US major cities) and synchronize it with the
                //cached information in case it exists.
                if (null == m_locations)
                {
                    InitializeLocations();
                }

                m_point   = new PointClass();
                m_SRWGS84 = CreateGeographicSpatialReference();
                m_point.SpatialReference = m_SRWGS84;

                m_textSymbol         = new TextSymbolClass() as ISimpleTextSymbol;
                m_textSymbol.Font    = ToFontDisp(new Font("Tahoma", 10.0f, FontStyle.Bold));
                m_textSymbol.Size    = 10.0;
                m_textSymbol.Color   = (IColor)ToRGBColor(Color.FromArgb(0, 255, 0));
                m_textSymbol.XOffset = 0.0;
                m_textSymbol.YOffset = 16.0;


                m_graphicTracker = new GraphicTrackerClass();
                m_graphicTracker.Initialize(mapOrGlobe as object);

                if (m_weatherItemTable.Rows.Count > 0)
                {
                    PopulateGraphicTracker();
                }

                m_invokeHelper = new InvokeHelper(this);

                this.OnWeatherItemAdded += new WeatherItemAdded(OnWeatherItemAddedEvent);

                //instantiate the timer for the weather update thread
                m_timer          = new System.Timers.Timer(1000);
                m_timer.Elapsed += new ElapsedEventHandler(OnUpdateTimer);
                //enable the update timer
                m_timer.Enabled = true;
            }
            catch (Exception ex)
            {
                System.Diagnostics.Trace.WriteLine(ex.Message);
            }
        }
 public void Remove()
 {
     this.OnWeatherItemAdded -= new WeatherItemAdded(OnWeatherItemAddedEvent);
     m_invokeHelper           = null;
     m_timer.Enabled          = false;
     // wait for the update thread to exit
     m_updateThread.Join();
     m_graphicTracker.RemoveAll();
     m_graphicTracker = null;
 }
 public void Remove()
 {
   this.OnWeatherItemAdded -= new WeatherItemAdded(OnWeatherItemAddedEvent);
   m_invokeHelper = null;
   m_timer.Enabled = false;
   // wait for the update thread to exit
   m_updateThread.Join();
   m_graphicTracker.RemoveAll();
   m_graphicTracker = null;
 }
    public void Init(IBasicMap mapOrGlobe)
    {
      System.Diagnostics.Trace.WriteLine("Init - Thread ID: " + System.Threading.Thread.CurrentThread.ManagedThreadId.ToString());

      if (mapOrGlobe == null)
        return;

      m_mapOrGlobe = mapOrGlobe;

      try
      {
        //initialize the tables (main table as well as the symbols table)
        InitializeTables();

        //get the location list from a featureclass (US major cities) and synchronize it with the 
        //cached information in case it exists.
        if (null == m_locations)
          InitializeLocations();

        m_point = new PointClass();
        m_SRWGS84 = CreateGeographicSpatialReference();
        m_point.SpatialReference = m_SRWGS84;

        m_textSymbol = new TextSymbolClass() as ISimpleTextSymbol;
        m_textSymbol.Font = ToFontDisp(new Font("Tahoma", 10.0f, FontStyle.Bold));
        m_textSymbol.Size = 10.0;
        m_textSymbol.Color = (IColor)ToRGBColor(Color.FromArgb(0, 255, 0));
        m_textSymbol.XOffset = 0.0;
        m_textSymbol.YOffset = 16.0;
        
        
        m_graphicTracker = new GraphicTrackerClass();
        m_graphicTracker.Initialize(mapOrGlobe as object);

        if (m_weatherItemTable.Rows.Count > 0)
          PopulateGraphicTracker();

        m_invokeHelper = new InvokeHelper(this);

        this.OnWeatherItemAdded += new WeatherItemAdded(OnWeatherItemAddedEvent);

        //instantiate the timer for the weather update thread
        m_timer = new System.Timers.Timer(1000);
        m_timer.Elapsed += new ElapsedEventHandler(OnUpdateTimer);  
        //enable the update timer
        m_timer.Enabled = true;
      }
      catch (Exception ex)
      {
        System.Diagnostics.Trace.WriteLine(ex.Message);
      }
    }