private void RenderMap()
        {
            try
            {
                txtLoading.Visibility = Visibility.Collapsed;
                waitCursor.Visibility = Visibility.Collapsed;

                ESRI.ArcGIS.Client.Bing.TileLayer layer = new TileLayer();
                layer.InitializationFailed += new EventHandler<EventArgs>(layer_InitializationFailed);

                if (ImageryRadioButton.Visibility == System.Windows.Visibility.Collapsed)
                {
                    layer.Token = Configuration.GetNewInstance().Settings.MapServiceKey;
                    layer.LayerStyle = TileLayer.LayerType.AerialWithLabels;
                }
                else if (StreetsRadioButton.Visibility == System.Windows.Visibility.Collapsed)
                {
                    layer.Token = Configuration.GetNewInstance().Settings.MapServiceKey;
                    layer.LayerStyle = TileLayer.LayerType.Road;
                }
                else
                {
                    layer.Token = null;
                }

                GraphicsLayer pointLayer = new GraphicsLayer();
                pointLayer.ID = "pointLayer";

                GraphicsLayer zoneLayer = new GraphicsLayer();
                zoneLayer.ID = "zoneLayer";

                GraphicsLayer textLayer = new GraphicsLayer();
                textLayer.ID = "textLayer";

                ContextMenu menu = new ContextMenu();

                MenuItem mnuMarker = new MenuItem();
                mnuMarker.Header = "Add marker";
                mnuMarker.Click += new RoutedEventHandler(mnuMarker_Click);
                menu.Items.Add(mnuMarker);
                MenuItem mnuRadius = new MenuItem();
                mnuRadius.Header = "Add zone";
                mnuRadius.Click += new RoutedEventHandler(mnuRadius_Click);
                menu.Items.Add(mnuRadius);
                MenuItem mnuText = new MenuItem();
                mnuText.Header = "Add label";
                mnuText.Click += new RoutedEventHandler(mnuText_Click);
                menu.Items.Add(mnuText);
                MenuItem mnuClear = new MenuItem();
                mnuClear.Header = "Remove all layers";
                mnuClear.Click += new RoutedEventHandler(mnuClear_Click);
                menu.Items.Add(mnuClear);

                myMap = new Map();
                myMap.Background = Brushes.White;
                myMap.Height = MapContainer.ActualHeight;
                myMap.Width = MapContainer.ActualWidth;
                myMap.WrapAround = true;
                myMap.ContextMenu = menu;
                myMap.Layers.Add(layer);
                myMap.Layers.Add(pointLayer);
                myMap.Layers.Add(textLayer);
                myMap.Layers.Add(zoneLayer);

                //<esri:ArcGISDynamicMapServiceLayer ID="California" Opacity="0.4" VisibleLayers="8,10"
                //    Url="http://maverick.arcgis.com/ArcGIS/rest/services/California/MapServer" />

                //ArcGISDynamicMapServiceLayer govData = new ArcGISDynamicMapServiceLayer();
                //govData.Url = "http://services.nationalmap.gov/ArcGIS/rest/services/govunits/MapServer";
                ////govData.Url = "http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer";
                //govData.VisibleLayers = new int[] { 19,21,22 };
                //myMap.Layers.Add(govData);

                myMap.MouseMove += new MouseEventHandler(myMap_MouseMove);
                myMap.MouseRightButtonDown += new MouseButtonEventHandler(myMap_MouseRightButtonDown);
                myMap.Loaded += new RoutedEventHandler(myMap_Loaded);

                MapContainer.Children.Add(myMap);

                ESRI.ArcGIS.Client.Behaviors.ConstrainExtentBehavior extentBehavior = new ESRI.ArcGIS.Client.Behaviors.ConstrainExtentBehavior();
                extentBehavior.ConstrainedExtent = new Envelope(new MapPoint(int.MinValue, -12000000), new MapPoint(int.MaxValue, 12000000));
                System.Windows.Interactivity.Interaction.GetBehaviors(myMap).Add(extentBehavior);

                nav = new Navigation();
                nav.Margin = new Thickness(5);
                nav.HorizontalAlignment = HorizontalAlignment.Left;
                nav.VerticalAlignment = VerticalAlignment.Top;
                nav.Map = myMap;
                MapContainer.Children.Add(nav);

                slider = new TimeSlider();
                slider.Name = "slider";
                slider.PlaySpeed = new TimeSpan(0, 0, 1);
                slider.Height = 20;
                slider.TimeMode = TimeMode.CumulativeFromStart;
                slider.MinimumValue = DateTime.Now.Subtract(TimeSpan.FromDays(7)).ToUniversalTime();
                slider.MaximumValue = DateTime.Now.ToUniversalTime();
                slider.Value = new TimeExtent(slider.MinimumValue, slider.MinimumValue.AddHours(2));
                slider.Intervals = TimeSlider.CreateTimeStopsByTimeInterval(new TimeExtent(slider.MinimumValue, slider.MaximumValue), new TimeSpan(0, 2, 0, 0));
                slider.Padding = new Thickness(0, 100, 0, 0);
                slider.ValueChanged += new EventHandler<TimeSlider.ValueChangedEventArgs>(slider_ValueChanged);
                areaSeries.Loaded += new RoutedEventHandler(areaSeries_Loaded);
                stkTimeLapse.Children.Add(slider);

                //grdMapDef.Background = Brushes.Black;
                //myMap.Background = Brushes.Black;
                SetBackgroundColor(defaultBackgroundColor);

                AddLayerList();

                if (MapLoaded != null)
                {
                    MapLoaded(this, false);
                }
            }
            catch (Exception ex)
            {
                //
            }
            finally
            {
            }
        }
        private void RenderMap()
        {
            txtLoading.Visibility        = Visibility.Collapsed;
            waitCursor.Visibility        = Visibility.Collapsed;
            LayerTypeSelector.Visibility = Visibility.Visible;

            ESRI.ArcGIS.Client.Bing.TileLayer layer = new TileLayer();
            layer.Token      = "Aua5s8kFcEZMx5lsd8Vkerz3frboU1CwzvOyzX_vgSnzsnbqV7xlQ4WTRUlN19_Q";
            layer.LayerStyle = TileLayer.LayerType.AerialWithLabels;

            GraphicsLayer pointLayer = new GraphicsLayer();

            pointLayer.ID = "pointLayer";

            GraphicsLayer zoneLayer = new GraphicsLayer();

            zoneLayer.ID = "zoneLayer";

            GraphicsLayer textLayer = new GraphicsLayer();

            textLayer.ID = "textLayer";

            GraphicsLayer clusterLayer = new GraphicsLayer();

            clusterLayer.ID = "clusterLayer";

            GraphicsLayer shapeFileLayer = new GraphicsLayer();

            shapeFileLayer.ID = "shapefileGraphicsLayer";

            ContextMenu menu         = new ContextMenu();
            MenuItem    mnuTimeLapse = new MenuItem();

            mnuTimeLapse.Header = "Create Time Lapse...";
            mnuTimeLapse.Click += new RoutedEventHandler(mnuTimeLapse_Click);
            menu.Items.Add(mnuTimeLapse);
            menu.Items.Add(new Separator());
            MenuItem mnuMarker = new MenuItem();

            mnuMarker.Header = "Add marker";
            mnuMarker.Click += new RoutedEventHandler(mnuMarker_Click);
            menu.Items.Add(mnuMarker);
            MenuItem mnuRadius = new MenuItem();

            mnuRadius.Header = "Add zone";
            mnuRadius.Click += new RoutedEventHandler(mnuRadius_Click);
            menu.Items.Add(mnuRadius);
            MenuItem mnuText = new MenuItem();

            mnuText.Header = "Add label";
            mnuText.Click += new RoutedEventHandler(mnuText_Click);
            menu.Items.Add(mnuText);
            MenuItem mnuClear = new MenuItem();

            mnuClear.Header = "Clear graphics";
            mnuClear.Click += new RoutedEventHandler(mnuClear_Click);
            menu.Items.Add(mnuClear);
            menu.Items.Add(new Separator());
            MenuItem mnuSave = new MenuItem();

            mnuSave.Header = "Save map as image...";
            mnuSave.Click += new RoutedEventHandler(mnuSave_Click);
            menu.Items.Add(mnuSave);

            myMap             = new Map();
            myMap.Background  = Brushes.White;
            myMap.Height      = MapContainer.ActualHeight;
            myMap.Width       = MapContainer.ActualWidth;
            myMap.ContextMenu = menu;
            myMap.Layers.Add(layer);
            myMap.Layers.Add(shapeFileLayer);
            myMap.Layers.Add(pointLayer);
            myMap.Layers.Add(textLayer);
            myMap.Layers.Add(zoneLayer);
            myMap.Layers.Add(clusterLayer);
            myMap.MouseMove            += new MouseEventHandler(myMap_MouseMove);
            myMap.MouseRightButtonDown += new MouseButtonEventHandler(myMap_MouseRightButtonDown);
            MapContainer.Children.Add(myMap);

            ESRI.ArcGIS.Client.Behaviors.ConstrainExtentBehavior extentBehavior = new ESRI.ArcGIS.Client.Behaviors.ConstrainExtentBehavior();
            extentBehavior.ConstrainedExtent = new Envelope(new MapPoint(-20000000, -12000000), new MapPoint(20000000, 12000000));
            System.Windows.Interactivity.Interaction.GetBehaviors(myMap).Add(extentBehavior);

            Navigation nav = new Navigation();

            nav.Margin = new Thickness(5);
            nav.HorizontalAlignment = HorizontalAlignment.Left;
            nav.VerticalAlignment   = VerticalAlignment.Top;
            nav.Map = myMap;
            MapContainer.Children.Add(nav);

            slider               = new TimeSlider();
            slider.Name          = "slider";
            slider.PlaySpeed     = new TimeSpan(0, 0, 1);
            slider.Height        = 20;
            slider.TimeMode      = TimeMode.CumulativeFromStart;
            slider.MinimumValue  = DateTime.Now.Subtract(TimeSpan.FromDays(7)).ToUniversalTime();
            slider.MaximumValue  = DateTime.Now.ToUniversalTime();
            slider.Value         = new TimeExtent(slider.MinimumValue, slider.MinimumValue.AddHours(2));
            slider.Intervals     = TimeSlider.CreateTimeStopsByTimeInterval(new TimeExtent(slider.MinimumValue, slider.MaximumValue), new TimeSpan(0, 2, 0, 0));
            slider.Padding       = new Thickness(0, 100, 0, 0);
            slider.ValueChanged += new EventHandler <TimeSlider.ValueChangedEventArgs>(slider_ValueChanged);
            areaSeries.Loaded   += new RoutedEventHandler(areaSeries_Loaded);
            stkTimeLapse.Children.Add(slider);

            //grdMapDef.Background = Brushes.Black;
            //myMap.Background = Brushes.Black;
            SetBackgroundColor(defaultBackgroundColor);

            AddSelectionCriteria();
            AddFormatOptions();
            AddLayerList();

            if (MapLoaded != null)
            {
                MapLoaded(this, new EventArgs());
            }
        }